package com.softwaremill.common.paypal.process; public class PayPalParameters { private static final String PAYPAL_CREDIT_PREFIX = "paypal-"; private static final String PAYPALREFUND_CREDIT_PREFIX = "paypalrefund-"; private String itemName; private String itemNumber; private String paymentStatus; private String paymentAmount; private String paymentCurrency; private String txnId; private String receiverEmail; private String payerEmail; private String userId; private String option; private String parentTxnId; private String invoice; public static PayPalParameters create(RequestParameters requestParameters) { PayPalParameters parameters = new PayPalParameters(); parameters.itemName = requestParameters.getParameter(RequestParameters.Parameter.item_name); parameters.itemNumber = requestParameters.getParameter(RequestParameters.Parameter.item_number); parameters.paymentStatus = requestParameters.getParameter(RequestParameters.Parameter.payment_status); parameters.paymentAmount = requestParameters.getParameter(RequestParameters.Parameter.mc_gross); parameters.paymentCurrency = requestParameters.getParameter(RequestParameters.Parameter.mc_currency); parameters.txnId = requestParameters.getParameter(RequestParameters.Parameter.txn_id); parameters.receiverEmail = requestParameters.getParameter(RequestParameters.Parameter.receiver_email); parameters.payerEmail = requestParameters.getParameter(RequestParameters.Parameter.payer_email); parameters.userId = requestParameters.getParameter(RequestParameters.Parameter.custom); parameters.option = requestParameters.getParameter(RequestParameters.Parameter.option_selection1); parameters.parentTxnId = requestParameters.getParameter(RequestParameters.Parameter.parent_txn_id); parameters.invoice = requestParameters.getParameter(RequestParameters.Parameter.invoice); return parameters; } private PayPalParameters() { } public String getItemName() { return itemName; } public String getItemNumber() { return itemNumber; } public String getPaymentStatus() { return paymentStatus; } public String getPaymentAmount() { return paymentAmount; } public String getPaymentCurrency() { return paymentCurrency; } public String getTxnId() { return txnId; } public String getReceiverEmail() { return receiverEmail; } public String getPayerEmail() { return payerEmail; } public String getUserId() { return userId; } public String getOption() { return option; } public String getParentTxnId() { return parentTxnId; } public boolean isCompleted() { return "Completed".equals(paymentStatus); } public String getPaymentId() { return PAYPAL_CREDIT_PREFIX + txnId; } public boolean isRefunded() { return "Refunded".equals(paymentStatus); } public String getRefundPaymentId() { return PAYPALREFUND_CREDIT_PREFIX + txnId; } public String getParentPaymentId() { return PAYPAL_CREDIT_PREFIX + parentTxnId; } public String getInvoice() { return invoice; } @Override public String toString() { return "PayPalParameters{" + "itemName='" + itemName + '\'' + ", itemNumber='" + itemNumber + '\'' + ", paymentStatus='" + paymentStatus + '\'' + ", paymentAmount='" + paymentAmount + '\'' + ", paymentCurrency='" + paymentCurrency + '\'' + ", txnId='" + txnId + '\'' + ", receiverEmail='" + receiverEmail + '\'' + ", payerEmail='" + payerEmail + '\'' + ", userId='" + userId + '\'' + ", option='" + option + '\'' + ", invoice='" + invoice + '\'' + '}'; } }