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