I am developing a webpage that uses the Authorize.net hosted payment form to process the credit cards. The payment form loads fine, but when I fill in the form and hit the "Pay" button, the message "Unexpected error. Please try again."
If I hit "Pay" again it will come back with the message "Finger Print value is not valid."
What is the issue here and how can it be resolved?
thank you.
โ03-03-2017 05:27 AM
Hello @aschuck
Is this occuring in the sanbox or production? Can you post how you are calling Get an Accept Payment Page?
Richard
โ03-03-2017 05:55 AM
This is on production with "test mode" turned on. The same code works fine on a sandbox account. Here is a sample of how it's being used:
$request = new AnetAPI\GetHostedPaymentPageRequest();
$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
$merchantAuthentication->setName($apiLoginId);
$merchantAuthentication->setTransactionKey($transactionKey);
$request->setMerchantAuthentication($merchantAuthentication);
$transactionRequest = new AnetAPI\TransactionRequestType();
$transactionRequest->setTransactionType('authCaptureTransaction');
$transactionRequest->setAmount($amount);
$orderType = new AnetAPI\OrderType();
$orderType->setInvoiceNumber($invoiceNumber);
$transactionRequest->setOrder($orderType);
$request->setTransactionRequest($transactionRequest);
$settingObj = new AnetAPI\SettingType();
$settingObj->setSettingName('hostedPaymentReturnOptions');
$value = json_encode(['url' => $processLink, 'cancelUrl' => $cancelLink], JSON_UNESCAPED_SLASHES);
$settingObj->setSettingValue($value);
$request->addToHostedPaymentSettings($settingObj);
$controller = new AnetController\GetHostedPaymentPageController($request);
$response = $controller->executeWithApiResponse($this->environment);
$token = $response->getToken();
return "
<form method=\"post\" action=\"https://accept.authorize.net/payment/payment\">
<input type=\"hidden\" name=\"token\" value=\"$token\" />
<input type=\"submit\" />
</form>
";
โ03-03-2017 06:34 AM
I suspect the issue is attempting a transaction while in Test Mode. Test Mode instructs the gateway to only validate credentials, it does not actually process the transaction, nothing is stored at the gateway and a transaction ID is always zero.
Can you try this in live mode? Make sure you void the transaction if production.
If you prefer, try the same conditions in the sandbox using test mode to see if you get similar results.
Either way let us know the results so we can report the issue to product development.
Richard
โ03-03-2017 06:44 AM
same issue happends with me.. too.. in sandbox.. its working fine.. when we use live api loginid and transaction key then it throw error
Finger Print value is not valid.
i have tried with production live mode and test mode.. i have checked every setting on authorize.net gateway setting.. i dont find anything wrong or missing in setting but its not solve yet.. i have tried several way..
ACCESS hosted method i am using.. and what ever parameter is mentioned in document which i have passed
and get token correctly and then hosted form appear. then enter credit card information and all then press Pay button then its thorws error
Finger Print value is not valid.
not sure what to do? any guideance or help ...
please .. i have spent a lot of time on this.. its wierd issue.. not much help available on googling too about this issue
thanks in adavance.
VJ
โ04-28-2017 11:29 PM
I too am getting the error "Fingerprint value is invalid".
It just recently started happening in the Production (non-test) environment.
Everything was working okay earlier in the month.
Bert
โ04-30-2017 07:30 PM
I tested this again in the SandBox and it worked fine.
Took the same code (changing the MERCHANT_TRANSACTION_KEY, MERCHANTE_LOGIN_ID) and the following lines of code:
-------- snippet of output from diff command -----------------------------------
< $response = $controller->executeWithApiResponse( \net\authorize\api\constants\ANetEnvironment::SANDBOX);
---
> $response = $controller->ex
ecuteWithApiResponse( \net\authorize\api\constants\ANetEnvironment::PRODUCTION);
116c117
< <form id="send_token" action="https://test.authorize.net/payment/payment" method="post" target="load_payment" >
---
> <form id="send_token" action="https://secure.authorize.net/payment/payment" method="post" target="load_payment" >
118c119
< <form id="send_token" action="https://test.authorize.net/payment/payment" method="post" >
---
> <form id="send_token" action="https://secure.authorize.net/payment/payment" method="post" >
-b
-------------------------------------------------
The production environment gives the error "Finger Print value is invalid".
I even logged onto Authorize.Net to get a new Merchant_Transaction_Key. Same error.
Bert
โ04-30-2017 08:40 PM
I've reported your issue to the product team for analysis.
I'd recommend subscribing to this topic so that you'll be alerted via email if there are updates. To subscribe, click Topic Options at the top of this thread and then select Subscribe. You'll then receive an email once anyone replies to your post.
Thanks,
Richard
โ05-01-2017 08:14 AM
For your production endpoint, could you try using https://accept.authorize.net/payment/payment and see if you get better results?
Richard
โ05-01-2017 08:32 AM
โ05-01-2017 09:04 AM