@Override public void populateCustomerPaymentToken(PaymentResponseDTO responseDTO, CustomerPayment customerPayment) { if (responseDTO.getPaymentToken() != null) { customerPayment.setPaymentToken(responseDTO.getPaymentToken()); } else if (responseDTO.getResponseMap().containsKey(PaymentAdditionalFieldType.TOKEN.getType())) { //handle legacy additional fields map customerPayment.setPaymentToken(responseDTO.getResponseMap().get(PaymentAdditionalFieldType.TOKEN.getType())); } else if (responseDTO.getCreditCard() != null) { //handle higher PCI level compliance scenarios customerPayment.setPaymentToken(responseDTO.getCreditCard().getCreditCardNum()); } }
@Override public void populateCustomerPaymentToken(CustomerPayment customerPayment, PaymentTransaction transaction) { if (transaction.getAdditionalFields().containsKey(PaymentAdditionalFieldType.TOKEN.getType())) { customerPayment.setPaymentToken(transaction.getAdditionalFields().get(PaymentAdditionalFieldType.TOKEN.getType())); } }
@Override public <G extends CustomerPayment> CreateResponse<G> createOrRetrieveCopyInstance(MultiTenantCopyContext context) throws CloneNotSupportedException { CreateResponse<G> createResponse = context.createOrRetrieveCopyInstance(this); if (createResponse.isAlreadyPopulated()) { return createResponse; } CustomerPayment cloned = createResponse.getClone(); // dont clone cloned.setCustomer(customer); cloned.setBillingAddress(billingAddress.createOrRetrieveCopyInstance(context).getClone()); cloned.setIsDefault(isDefault); cloned.setPaymentToken(paymentToken); for (Map.Entry<String, String> entry : additionalFields.entrySet()) { cloned.getAdditionalFields().put(entry.getKey(), entry.getValue()); } return createResponse; }