We have internal error logging that logs Authorize.net AIM error messages when isError() is true. Most of the time this works great but we've started seeing it where getResponseCode(), getResponseSubcode(), getResponseMessage(), and getResponseText() are all blank (again in the error state). I've been unable to track down what could be causing this so I'm reaching out to the community to see if anyone else is seeing this. I know there were issues yesterday and while we got a bunch of these empty responses it also happens when Authorize is NOT having issues (or at least not saying they are having issues).
Unfortunately, for us, we are processing transactions on multiple clients behalf which Authorize is clearly not equiped to do (from a support perspective). Since they don't support anything sane like oAuth the only way Authorize will work with "us" is if the client makes the call (which doesn't work on so many levels).
We are using the PHP SDK and AuthorizeNetAIM.php lists the version as 3.1 (not sure if that's the SDK version). I'm also not sure how to tell the Authorize.net end point version (API side).
05-27-2015 09:09 AM
Are you using the most recent PHP SDK, from https://github.com/AuthorizeNet/sdk-php ?
Also, do you have any network logs or other troubleshooting data? What about a traceroute? (Even if it times out, it can be valuable--we block ICMP traffic so traceroutes and pings will always die just outside our network. But the rest of the trace can rule out issues outside our network, so it's still useful.)
I believe the version you mentioned seeing, refers to the Transaction (Response) Version, the x_version field, and it controls which parameters are returned. It's mostly a depreciated thing as the default for most accounts has been 3.1 for a decade. Our newer XML/SOAP/JSON APIs don't bother setting it--it's on by default and cannot be turned off.
05-28-2015 06:28 AM
Thank you Lilith.
I'm unclear where to find the SDK version number. Can you specify the exact file I can find it in? Without doing a directory diff I'm not sure how to tell if I'm running the exact copy on github.
When we get blank error messages there is no network information available normally that I can find. FWIW I did call Authorize at one point with a specific transaction number and they said as far as they could see there was no error but our code only logs the message when isError() is true.
When Authorize.net was down on the 26th the SDK was throwing the following exception: 'AuthnetAIMException' with message 'Connection error: '... for SOME of the calls.
Honestly, I'm more concerned with when an exception is not generated. Cause either I'm testing isError() incorrectly or sometimes a transaction that ultimately is successful has isError() true at some point.
Thanks again.
05-28-2015 08:11 AM
I did a diff our code directory against the version 1.8.4 of the SDK on github. There ARE minor differences but none of them touching AuthorizeNetAIM.php, AuthorizeNetRequest.php, or AuthorizeNetResponse.php. It looks as though Authorize is saying isError() is true and then processing the transaction.
06-03-2015 03:10 PM