Thought I'd post this so perhaps someone else doesn't have to suffer thru it. If you're using the Java SDK (anet_java_sdk-1.4.6) and attempting to get the payment profiles associated with a customer profile you'll only get the Credit Card ones currently. Here's some partial code for the request:
net.authorize.cim.Transaction transaction = merchant.createCIMTransaction(TransactionType.GET_CUSTOMER_PROFILE);
transaction.setCustomerProfileId(customerProfileId);
Result<Transaction> result = (Result<Transaction>)merchant.postTransaction(transaction);
Iterator itr = result.getCustomerPaymentProfileList().iterator();
private void importPaymentInfo(Element root_el, PaymentProfile paymentProfile) { NodeList payment_list = root_el.getElementsByTagName(AuthNetField.ELEMENT_PAYMENT.getFieldName()); if(payment_list.getLength() == 0) { return; } Element payment_el = (Element)payment_list.item(0); NodeList credit_card_list = payment_el.getElementsByTagName(AuthNetField.ELEMENT_CREDIT_CARD.getFieldName()); if(credit_card_list.getLength() != 0) { Element credit_card_el = (Element)credit_card_list.item(0); CreditCard creditCard = CreditCard.createCreditCard(); creditCard.setMaskedCreditCardNumber(getElementText(credit_card_el, AuthNetField.ELEMENT_CREDIT_CARD_NUMBER.getFieldName())); creditCard.setExpirationDate(getElementText(credit_card_el, AuthNetField.ELEMENT_CREDIT_CARD_EXPIRY.getFieldName())); paymentProfile.addPayment(Payment.createPayment(creditCard)); } NodeList bank_account_list = payment_el.getElementsByTagName(AuthNetField.ELEMENT_BANK_ACCOUNT.getFieldName()); if(bank_account_list.getLength() != 0) { Element bank_account_el = (Element)bank_account_list.item(0); BankAccount bankAccount = BankAccount.createBankAccount(); bankAccount.setBankAccountType(BankAccountType.findByValue( getElementText(bank_account_el, AuthNetField.ELEMENT_ACCOUNT_TYPE.getFieldName()))); bankAccount.setRoutingNumber(getElementText(bank_account_el, AuthNetField.ELEMENT_ROUTING_NUMBER.getFieldName())); bankAccount.setBankAccountNumber(getElementText(bank_account_el, AuthNetField.ELEMENT_ACCOUNT_NUMBER.getFieldName())); bankAccount.setBankAccountName(getElementText(bank_account_el, AuthNetField.ELEMENT_NAME_ON_ACCOUNT.getFieldName())); bankAccount.setBankName(getElementText(bank_account_el, AuthNetField.ELEMENT_BANK_NAME.getFieldName())); paymentProfile.addPayment(Payment.createPayment(bankAccount)); } }
It may not show up that well in the code but I added the last line
paymentProfile.addPayment(Payment.createPayment(bankAccount));
10-26-2012 10:04 AM
Hi regberger,
Thank you for posting this. We will make sure to pass this to our developers for further review.
Thanks,
Joy
10-29-2012 03:38 PM