Hello,
I am getting this error message when I am using the PHP SDK: "Unrecognized response from AuthorizeNet: ". I don't quite understand why I am getting it. It seems like an error message that should never be possible to throw unless something goes haywire with the network or with Authorize.net servers.
I currently am recieivng it when running the function: createCustomerProfileTransaction on AuthorizeNetCIM. However, this appears to be only happening on 1 of my accounts. I have several clients and most of them this works fine (and uses the same code).
The system that is working properly returns this:
|1|,|1|,|1|,|This transaction has been approved.|,||,|P|
The system that is not working is returning:
|1|||1|||1|||This transaction has been approved.|||||
I have looked over the settings in the account and they appear to be the same and it appears they are both running on Transaction Version 3.1. They are both running on the same version of the SDK and the same code base on my side.
The account that it is NOT working on, is probably 6 years older. So my only guess at the moment is there is something wrong with the account that is not accessible in the interface anymore.
Any ideas what I can do to fix this?
Thanks,
Daniel
Solved! Go to Solution.
08-12-2016 01:13 PM
I am running version 1.8.3.3
With the help of the eTicket I actually think I found a solution. The "Direct Response" actually was configured to have a "|" as the "Default field separator". I changed this to a comma and it resolved the issue.
Sounds like the PHP SDK requires that you have this default field separator set to "," in order for it to work properly.
Thanks for your help,
Daniel
08-13-2016 09:03 AM
I have dived down into the SDK to see what is happening.
I get this when I call "getTransactionResponse" on the AuthorizeNetCIM_Response object. This calls into the AuthorizeNetAIM_Response object. When it makes this call it foces the $delimiter = "," and the $encap_char = "|". In the case where this isn't working, the server is actualyl returning $delimiter = "|" and the $encap_char = "|". If I change the call to AuthorizeNetAIM_Response, and pass in "|" instead of "," for $delimiter, everything "works". However, this will make it not work in my other case where the server is returning the correct value.
This makes me think it is entirely on the Authorize.net servers because this is not parameterized in the code at all. So the SDK is always expecting a certain format, no matter what. Now, this is obviously not a problem across the board, even my other clients appear to be fine. This makes me go back to some weird setting on this specific account that isn't setup properly.
Any ideas?
08-12-2016 02:34 PM
08-13-2016 08:20 AM
I am running version 1.8.3.3
With the help of the eTicket I actually think I found a solution. The "Direct Response" actually was configured to have a "|" as the "Default field separator". I changed this to a comma and it resolved the issue.
Sounds like the PHP SDK requires that you have this default field separator set to "," in order for it to work properly.
Thanks for your help,
Daniel
08-13-2016 09:03 AM