Hello, recently got this error on auth.net response when trying to void a recurring payment:
2017-08-29 15:48:45,740 DEBUG [AWT-EventQueue-0] (gui.dialog.RefundTenderCreditDialog.cardSwiped()) - Card swipe event, parsed card data: CreditCard [nameOnCard=ANDERSON/CHRISTOPHER T, number=XXXXXXXXXXXX5098, track1=%BXXXXXXXXXXXXXXXX^ANDERSON/CHRISTOPHER T^XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX?, track2=;XXXXXXXXXXXXXXXX=XXXXXXXXXXXXXXXXXXXX?, expireMonth=3, expireYear=25, type=null] 2017-08-29 15:48:45,755 INFO [Thread-38] (gui.dialog.RefundTenderCreditDialog.processRequest()) - Sending authorizer request: DefaultPaymentProcessorRequest [creditCard=CreditCard [nameOnCard=ANDERSON/CHRISTOPHER T, number=XXXXXXXXXXXX5098, track1=%BXXXXXXXXXXXXXXXX^ANDERSON/CHRISTOPHER T^XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX?, track2=;XXXXXXXXXXXXXXXX=XXXXXXXXXXXXXXXXXXXX?, expireMonth=3, expireYear=25, type=VISA] requestType=VOID_REFUND, customerNumber=null, transactionNumber=108585, amount=19.95, initAmount=19.95, authorizationCode=4RWILV, purchaseType=RECURRING_INITIAL_SALE, recordNumber=1501783604, referenceNumber=40006130205, referenceData=null, processData=null, transactionCompleteDate=Tue Aug 29 15:48:05 EDT 2017, token1=null, token2=null, salesDeviceId=1] 2017-08-29 15:48:45,756 INFO [Thread-38] (payment.authorizedotnet.AuthorizeDotNetProcessor.authorize()) - Starting processing: 1504036125756 2017-08-29 15:48:45,756 WARN [Thread-38] (payment.authorizedotnet.AuthorizeDotNetProcessor.validatePaymentAuthorizer()) - Test mode enabled, using test environment. 2017-08-29 15:48:45,762 INFO [Thread-38] (payment.authorizedotnet.AuthorizeDotNetProcessor.getMerchant()) - Using getGatewayServiceId2: 6n5ZeZ9EaH9 getGatewayServicePassword2: ************m6hG 2017-08-29 15:48:45,773 INFO [Thread-38] (payment.authorizedotnet.AuthorizeDotNetProcessor.logTransactionRequest()) - -->[Type=VOID Amount=19.95 CC-type=VISA CC-number=XXXXXXXXXXXX5098 CC-ExpDate=3/25 TransactionID=40006130205 AuthCode=4RWILV] 2017-08-29 15:48:45,773 INFO [Thread-38] (payment.authorizedotnet.AuthorizeDotNetProcessor.getMerchant()) - Using getGatewayServiceId2: 6n5ZeZ9EaH9 getGatewayServicePassword2: ************m6hG 2017-08-29 15:48:46,588 WARN [Thread-38] (authorize.util.XmlUtility.warn()) - Exception Details-> Code:'null', Message:'null' 2017-08-29 15:48:46,589 WARN [Thread-38] (authorize.util.XmlUtility.warn()) - Error decoding from XML, value: '1.0|3|21|An error occurred during processing. Please try again.||P||40006130205|30F81DB854A9A7EC36FFC52B642C1600||||||||||||XXXX5098|Visa||||| ', ErrorMessage: 'null' Caused by: java.lang.NumberFormatException: For input string: "1.0" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.8.0_45] at java.lang.Integer.parseInt(Integer.java:580) ~[?:1.8.0_45] at java.lang.Integer.parseInt(Integer.java:615) ~[?:1.8.0_45] at net.authorize.aim.Result.createResult(Result.java:32) ~[anet-java-sdk-1.9.3.jar:?] at net.authorize.Merchant.postTransaction(Merchant.java:286) ~[anet-java-sdk-1.9.3.jar:?] at com.sonnyscontrols.payment.authorizedotnet.AuthorizeDotNetProcessor.sendRequest(AuthorizeDotNetProcessor.java:245) ~[payapi-1.0.6-RELEASE.jar:?] ... 4 more
This error is random, i could not reproduce this all the time when making a void transaction.
library: java-sdk -1.9.3
trace: our software calls Merchant.postTransaction() -> HttpClient.execute() -> at line 176 XmlUtility.descapeStringForXml() throws exception where looks like the very first parameter (1.0) is expected to be integer when parsing, but actually is a double so the error occures.
If it helps this is a void of initial recurring sale transaciton.
any help is appreciated. also, in my understanding, the void transaciton is actually processed fine, but since could not return a clean response, our software cannot record it as a final void.
08-30-2017 10:39 AM
Correct. Its included for both void and refund request.
09-05-2017 01:33 PM
Thanks for confirming. This might have to wait a while for me to try to duplicate. I'm on the road this week and most of next, so can't make any promises.
In the meantime, since this is happening in production, feel free to open a ticket and see if someone in support can't look into it from our end.
09-06-2017 09:44 AM
Checked again this morning: the first case is immediate void after sell, second refund on a next day.
2017-09-06 17:14:00,846 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.authorize()) - Starting processing: 1504732440846 2017-09-06 17:14:00,846 WARN [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.validatePaymentAuthorizer()) - Test mode enabled, using test environment. 2017-09-06 17:14:00,852 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.getMerchant()) - Using getGatewayServiceId2: 6n5ZeZ9EaH9 getGatewayServicePassword2: ************m6hG 2017-09-06 17:14:00,864 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.logTransactionRequest()) - -->[Type=VOID Amount=16.28 CC-type=MASTER_CARD CC-number=XXXXXXXXXXXX4444 CC-ExpDate=11/19, Request map: {x_test_request=FALSE, x_version=3.1, x_market_type=2, x_allow_partial_Auth=FALSE, x_device_type=10, x_invoice_num=217742}, TransactionID=40006505505 AuthCode=G8UAKA] 2017-09-06 17:14:00,864 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.getMerchant()) - Using getGatewayServiceId2: 6n5ZeZ9EaH9 getGatewayServicePassword2: ************m6hG 2017-09-06 17:14:02,137 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.logResponseRecurring()) - <--[Status=APPROVED ResponseText=This transaction has been approved. ReasonResponseCode=RRC_1_1 AuthorizationCode=G8UAKA TransactionId=40006505505] 2017-09-06 17:14:02,137 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.authorize()) - Finished processing: 1504732442137 2017-09-06 17:14:02,138 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.authorize()) - Total processing time: 1 second 2017-09-06 17:14:03,145 DEBUG [Thread-26] (gui.dialog.RefundTenderCreditDialog.close()) - Closing dialog box
2017-09-07 08:54:57,291 DEBUG [AWT-EventQueue-0] (gui.dialog.RefundTenderCreditDialog.actionPerformed()) - Ok button pressed 2017-09-07 08:54:57,299 INFO [Thread-26] (gui.dialog.RefundTenderCreditDialog.processRequest()) - Sending authorizer request: DefaultPaymentProcessorRequest [creditCard=CreditCard [nameOnCard=null, number=XXXXXXXXXXXX4444, track1=null, track2=null, expireMonth=11, expireYear=19, type=MASTERCARD] requestType=VOID_REFUND, customerNumber=64560, transactionNumber=217741, amount=74.87, initAmount=74.87, authorizationCode=YIGBHA, purchaseType=RECURRING_INITIAL_SALE, recordNumber=1502039707, referenceNumber=40006504572, referenceData=null, processData=null, transactionCompleteDate=Wed Sep 06 17:10:16 EDT 2017, token1=null, token2=null, salesDeviceId=1] 2017-09-07 08:54:57,300 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.authorize()) - Starting processing: 1504788897300 2017-09-07 08:54:57,300 WARN [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.validatePaymentAuthorizer()) - Test mode enabled, using test environment. 2017-09-07 08:54:57,305 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.getMerchant()) - Using getGatewayServiceId2: 6n5ZeZ9EaH9 getGatewayServicePassword2: ************m6hG 2017-09-07 08:54:57,319 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.logTransactionRequest()) - -->[Type=VOID Amount=74.87 CC-type=MASTER_CARD CC-number=XXXXXXXXXXXX4444 CC-ExpDate=11/19, Request map: {x_test_request=FALSE, x_version=3.1, x_market_type=2, x_allow_partial_Auth=FALSE, x_device_type=10, x_invoice_num=217741}, TransactionID=40006504572 AuthCode=YIGBHA] 2017-09-07 08:54:57,319 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.getMerchant()) - Using getGatewayServiceId2: 6n5ZeZ9EaH9 getGatewayServicePassword2: ************m6hG 2017-09-07 08:54:58,414 ERROR [Thread-26] (gui.dialog.RefundTenderCreditDialog.processRequest()) - Error while processing payment authorization request. com.sonnyscontrols.payment.PaymentProcessorException: There was an error communicating with Authorize.NET. Please verify the POS has internet connectivity and if so, then this issue is with Authorize.NET servers. Please contact Authorize.NET (877) 447-3938. at com.sonnyscontrols.payment.authorizedotnet.AuthorizeDotNetProcessor.sendRequest(AuthorizeDotNetProcessor.java:247) ~[classes/:?] at com.sonnyscontrols.payment.authorizedotnet.AuthorizeDotNetProcessor.authorize(AuthorizeDotNetProcessor.java:165) ~[classes/:?] at com.autopilotcontrols.pos.gui.dialog.RefundTenderCreditDialog$ProcessAuthorization.processRequest(RefundTenderCreditDialog.java:729) [classes/:?] at com.autopilotcontrols.pos.gui.dialog.RefundTenderCreditDialog$ProcessAuthorization.run(RefundTenderCreditDialog.java:825) [classes/:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_40] Caused by: java.lang.NumberFormatException: For input string: "1.0" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.8.0_40] at java.lang.Integer.parseInt(Integer.java:580) ~[?:1.8.0_40] at java.lang.Integer.parseInt(Integer.java:615) ~[?:1.8.0_40] at net.authorize.aim.Result.createResult(Result.java:32) ~[anet-java-sdk-1.9.3.jar:?] at net.authorize.Merchant.postTransaction(Merchant.java:286) ~[anet-java-sdk-1.9.3.jar:?] at com.sonnyscontrols.payment.authorizedotnet.AuthorizeDotNetProcessor.sendRequest(AuthorizeDotNetProcessor.java:245) ~[classes/:?] ... 4 more
09-07-2017 06:07 AM
Aaron, hi,
i wrote twice to dev support about this issue but still no response.
Where do i need to create a bug?
09-13-2017 06:02 AM
Hi @autopilot,
Have you actually opened a case with support? If so, send me your case number and I'll escalate it. If not, please call our support to open a case, or log into the Merchant Interface and start an eTicket to open a case from there.
09-13-2017 09:11 AM
OK we will call and opne a ticket becuase we do not have an account at account.authorize.net only test.
Today i tried to test a partial authorization transaction and got a similar xml parsing error:
2017-09-19 10:53:44,644 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.logTransactionRequest()) - -->[Type=AUTH_CAPTURE Amount=462.25 CC-type=VISA CC-number=XXXXXXXXX0027 CC-ExpDate=11/19, Request map: {x_test_request=FALSE, x_version=3.1, x_market_type=2, x_allow_partial_Auth=TRUE, x_device_type=10, x_invoice_num=1505832809329}, TransactionID= AuthCode=]
the response i received:
2017-09-19 10:53:45,442 WARN [Thread-26] (authorize.util.XmlUtility.warn()) - Exception Details-> Code:'null', Message:'null' 2017-09-19 10:53:45,442 WARN [Thread-26] (aim.cardpresent.Result.warn()) - Error de-serializing XML to PrepaidCard: '[PrepaidCard: null]', ErrorMessage: 'null' 2017-09-19 10:53:45,443 INFO [Thread-26] (payment.authorizedotnet.AuthorizeDotNetProcessor.logResponse()) - <--[Status= refTransId=null authCode=4AP1CU transId=40007184638]
Not really sure why PrepaidCard is mentioned here as this transaction was made using 4007000000027 test VIsa card.
when using another card - MasterCard 5424000000000015 - same error occured by status was populated:
2017-09-19 11:13:47,480 INFO [Thread-27] (gui.dialog.TenderCreditDialog.run()) - Sending authorizer request: DefaultPaymentProcessorRequest [creditCard=CreditCard [nameOnCard=null, number=XXXXXXXXXXXX0015, track1=null, track2=null, expireMonth=11, expireYear=19, type=MASTERCARD] requestType=SALE, customerNumber=null, transactionNumber=1505834015965, amount=462.26, initAmount=0.0, authorizationCode=null, purchaseType=ONE_TIME, recordNumber=null, referenceNumber=null, referenceData=null, processData=null, transactionCompleteDate=null, token1=null, token2=null, salesDeviceId=1] 2017-09-19 11:13:47,480 INFO [Thread-27] (payment.authorizedotnet.AuthorizeDotNetProcessor.authorize()) - Starting processing: 1505834027480 2017-09-19 11:13:47,480 WARN [Thread-27] (payment.authorizedotnet.AuthorizeDotNetProcessor.validatePaymentAuthorizer()) - Test mode enabled, using test environment. 2017-09-19 11:13:47,480 INFO [Thread-27] (payment.authorizedotnet.AuthorizeDotNetProcessor.getMerchant()) - Using getGatewayServiceId: 5S8hU6ja getGatewayServicePassword: ************6gAm 2017-09-19 11:13:47,481 INFO [Thread-27] (payment.authorizedotnet.AuthorizeDotNetProcessor.logTransactionRequest()) - -->[Type=AUTH_CAPTURE Amount=462.26 CC-type=MASTER_CARD CC-number=XXXXXXXXXXXX0015 CC-ExpDate=11/19, Request map: {x_test_request=FALSE, x_version=3.1, x_market_type=2, x_allow_partial_Auth=TRUE, x_device_type=10, x_invoice_num=1505834015965}, TransactionID= AuthCode=] 2017-09-19 11:13:47,481 INFO [Thread-27] (payment.authorizedotnet.AuthorizeDotNetProcessor.getMerchant()) - Using getGatewayServiceId: 5S8hU6ja getGatewayServicePassword: ************6gAm 2017-09-19 11:13:48,207 WARN [Thread-27] (authorize.util.XmlUtility.warn()) - Exception Details-> Code:'null', Message:'null' 2017-09-19 11:13:48,207 WARN [Thread-27] (aim.cardpresent.Result.warn()) - Error de-serializing XML to PrepaidCard: '[PrepaidCard: null]', ErrorMessage: 'null' 2017-09-19 11:13:48,207 INFO [Thread-27] (payment.authorizedotnet.AuthorizeDotNetProcessor.logResponse()) - <--[Status=APPROVED ReasonResponseCode=1 ReasonResponseText=This transaction has been approved. ResponseCode=1 ResponseCodeText=This transaction has been approved. refTransId=null authCode=46LBD1 transId=40007184951]
09-19-2017 08:01 AM - edited 09-19-2017 08:16 AM
Another question: as i mentioned, i try to process a parial authorization here but never so far get an appropriate message, it always Approved for all 462.2x amounts. Am i doing sometihng wrong?
09-19-2017 08:26 AM
If you're trying to simulate a decline, use one of the triggers in our Testing Guide. For example, if you want a transaction to be declined in sandbox, send it with a zip code of 46282 or an amount of $70.02.
09-19-2017 10:13 AM
Aaron thanks,
i am not trying to simulate a decline, i am trying to simulate a partial auth case. So follow PARTIAL AUTHORIZATION RESPONSES section on http://developer.authorize.net/hello_world/testing_guide/ but so far for all cases receive approved response like this
2017-09-19 11:13:48,207 INFO [Thread-27] (payment.authorizedotnet.AuthorizeDotNetProcessor.logResponse()) - <--[Status=APPROVED ReasonResponseCode=1 ReasonResponseText=This transaction has been approved. ResponseCode=1 ResponseCodeText=This transaction has been approved. refTransId=null authCode=46LBD1 transId=40007184951]
or no status in response as in he post above.
I simply want to receive a message "there is not enough of balance on the account".
our software includes x_allow_partial_auth = true and Partial Auth setting in the test account is also on.
09-19-2017 10:25 AM - edited 09-19-2017 10:36 AM