Here's another fun feature of the Java SDK (anet_java_sdk-1.4.6) - you can't add a businessChecking payment profile currently - you'll get a message like this:
The AccountType must be "businessChecking" not "businesschecking".
To fix this you have to change the source code for the SDK.
In net.authorize.data.echeck.BankAccountType they have:
public enum BankAccountType implements Serializable { CHECKING("CHECKING"), BUSINESSCHECKING("BUSINESSCHECKING"), SAVINGS("SAVINGS"), UNKNOWN("UNKNOWN");
I changed to:
public enum BankAccountType implements Serializable { CHECKING("checking"), BUSINESSCHECKING("businessChecking"), SAVINGS("savings"), UNKNOWN("unknown");
In net.authorize.cim.Transaction.java addPayment method they have:
if(bank_account.getBankAccountType() != null) { Element account_type_el = document.createElement(AuthNetField.ELEMENT_ACCOUNT_TYPE.getFieldName()); account_type_el.appendChild(document.getDocument().createTextNode(bank_account.getBankAccountType().getValue().toLowerCase())); bankacct_el.appendChild(account_type_el); }
I changed to:
if(bank_account.getBankAccountType() != null) { Element account_type_el = document.createElement(AuthNetField.ELEMENT_ACCOUNT_TYPE.getFieldName()); account_type_el.appendChild(document.getDocument().createTextNode(bank_account.getBankAccountType().getValue())); bankacct_el.appendChild(account_type_el); }
This works for my purposes - YMMV. I've reported these issues/fixes to developer@authorize.net but I get no response from them.
10-26-2012 10:16 AM
Thanks gregberger, we'll be sure to pass this information on to the development team.
Richard
10-26-2012 01:20 PM