Hello:
I created an Accept hosted integartion. This integration works fine in sandbox mode, but fails in LIVE mode with the following error:
User authentication failed due to invalid authentication values.
I verified that my transactionKey and api_login_id are correct and that I am using the correct URL.
The settings on the auth.net account are set to LIVE.
What else could be the issue? I see banter about requiring a signature key also, but nothing in the docs.
Below is the code for the request:
<getHostedPaymentPageRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> <merchantAuthentication> <name>{hidden api_login_id}</name> <transactionKey>{hidden transaction key}</transactionKey> </merchantAuthentication> <transactionRequest> <transactionType>authCaptureTransaction</transactionType> <amount>7.94</amount> <order> <invoiceNumber>138437174</invoiceNumber> </order> <billTo> <firstName>MARK</firstName> <lastName>WEXLER</lastName> <company>WHIRLWIND INC</company> <address>9811 ASHBURTON LANE</address> <city>BETHESDA</city> <state>MD</state> <zip>20817</zip> <country>US</country> </billTo> <shipTo> <firstName>MARK</firstName> <lastName>WEXLER</lastName> <company>WHIRLWIND INC</company> <address>9811 ASHBURTON LANE</address> <city>BETHESDA</city> <state>MD</state> <zip>20817</zip> <country>US</country> </shipTo> </transactionRequest> <hostedPaymentSettings> <setting> <settingName>hostedPaymentBillingAddressOptions</settingName> <settingValue>{"show": true, "required":true}</settingValue> </setting> <setting> <settingName>hostedPaymentButtonOptions</settingName> <settingValue>{"text": "Pay"}</settingValue> </setting> <setting> <settingName>hostedPaymentReturnOptions</settingName> <settingValue>{"showReceipt" : false, "url":"https://www.breyerhorses.com/plugins/authnet_iframe_communicator.html","urlText":"Continue","cancelUrl":"https://www.breyerhorses.com/plugins/authnet_response.php?action=cancel","cancelUrlText":"Cancel"}</settingValue> </setting> <setting> <settingName>hostedPaymentShippingAddressOptions</settingName> <settingValue>{"show": false, "required":false}</settingValue> </setting> <setting> <settingName>hostedPaymentStyleOptions</settingName> <settingValue>{"bgColor":"#B00"}</settingValue> </setting> <setting> <settingName>hostedPaymentIFrameCommunicatorUrl</settingName> <settingValue>{"url": "https://www.breyerhorses.com/plugins/authnet_iframe_communicator.html"}</settingValue> </setting> </hostedPaymentSettings> </getHostedPaymentPageRequest>
10-19-2017 07:43 AM
This is crazy. The lack of support from this company is seriously amazing. What could go wrong when you only have to change the login ID, transaction Key, and post URL? Apparently everything...
07-06-2018 10:55 AM
Hi @daskjeeves
Can you provide more details on the issue faced by you ?
please do note to use the correct url for sandbox and prod env as
https://developer.authorize.net/api/reference/index.html#authentication
Thanks
07-06-2018 09:12 PM
Anurag, I took your course a few weeks ago and learning more about PCI compliance was the reason we decided to switch over to Accept Hosted and your form so our backend code doesn't have to touch the data.
The test version works perfectly, everytime. The only thing I do to switch to live is switch the login ID, transaction key, and POST url. Where is the endpoint supposed to go, in a script tag at the bottom of the page? Because I have certainly tried that, and also tried it as the form POST, to no avail.
The documentation just seems to be lacking, and based on a lot of the stuff I am reading even on this forum, it has been for years.
Could you please list every step that needs to be taken to switch from the test version to the live version?
07-09-2018 07:53 AM
Hi @daskjeeves
Thanks for joining the Webinar . We are going to do updates to Accept Hosted Documentation soon to make it clearer .
The urls to be used for step 1 for calling getHostedPaymentPageRequest
Sandbox API Endpoint: https://apitest.authorize.net/xml/v1/request.api
Production API Endpoint: https://api.authorize.net/xml/v1/request.api
For Step 2 where you need to post the hosted token , the urls are as below
Sandbox: https://test.authorize.net/payment/payment
Production: https://accept.authorize.net/payment/payment
if you still having issues please reach out to me on developer_feedback@authorize.net and we will look into it further .
Thanks
Anurag
07-09-2018 10:42 PM - edited 07-09-2018 10:43 PM
I have been trying for nearly a week and had live chats/phone calls with at least 8 authorize.net employees, and still no resolution. It shouldn't be this difficult, especially for the company providing the tool
07-10-2018 09:23 AM
I am having this same problem. Why does this thread end with no solution?
01-02-2019 04:25 AM
Has there still been no resolution? If anyone has found one pleas let me know.
I can't even use the sample merchant verification (PHP) script properly. It also throws a...
ERROR : Invalid response Response : E00007 User authentication failed due to invalid authentication values.
SOMEONE please respond? @administrator ?
04-13-2019 09:26 AM
An E00007 is only caused when the API Login, Transaction Key or corresponding endpoint are incorrect.
This may be simple, but let's walk through and confirm everything:
Sandbox:
<authenticateTestRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> <merchantAuthentication> <name>78BZ5Xprry</name> <transactionKey>8s2F95Q7brhHd7Tn</transactionKey> </merchantAuthentication> </authenticateTestRequest>
If that is successful, then try production
<authenticateTestRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> <merchantAuthentication> <name>*</name> <transactionKey>**</transactionKey> </merchantAuthentication> </authenticateTestRequest>
Richard
04-13-2019 11:01 AM
So then what about a "E_WS_21" error? I'm honestly not concerned about the Merchant Verification Script but rather, the biggest issue I'm having is that error when attempting to fetch a token via Accept.js.
I'm using the hosted form and I'm 1000% sure I'm using proper API Login ID and Public Client Key. Infact, re-generated the client key just to be sure. I essentially lifted the sample codes as described here: https://developer.authorize.net/api/reference/features/acceptjs.html#Using_the_Hosted_Payment_Inform...
However, it works perfectly fine in sandbox and I'm able to fetch a token, thus continue with Nonce.
Here's my exact code for obtaining a token...
<!-- START: Authnet Accept Hosted Form -->
<div class=\"authnetAcceptHostedWrapper\" data-open=\"0\">
<input type=\"hidden\" name=\"dataValue\" id=\"dataValue\" />
<input type=\"hidden\" name=\"dataDescriptor\" id=\"dataDescriptor\" />
<div type=\"button\" class=\"AcceptUI payByAcceptHostedSubmit\" data-progress=\"0\" data-default=\"Click Here to Pay by Credit Card\"
data-billingAddressOptions='{\"show\":true, \"required\":false}'
data-apiLoginID=\"{$apiLoginID}\"
data-clientKey=\"{$apiClientKey}\"
data-acceptUIFormBtnTxt=\"Continue\"
data-acceptUIFormHeaderTxt=\"Secured Payment Information\"
data-responseHandler=\"AuthnetAcceptHostedResponseHandler\">
Click Here to Enter Credit Card Details
</div>
<img class=\"authnetAcceptHostedCCEnteredIcon\" src=\"images/icon_checkmark_1.png\">
<!-- Load this php module's related JS Lib -->
<script src=\"js/module_authorizenet_accept_hosted.js\"></script>
</div>
{$authnet[$this->mode]}
<!-- END: Authnet Accept Hosted Form -->
$authnet[$this->mode] points to "https://js.authorize.net/v3/AcceptUI.js"
That's as strait forward as it gets. Please tell me what I'm doing wrong for Live mode?
04-13-2019 09:28 PM