Cause of problem
The transaction feedback from Ingenico did not reach the shop or wasn't processed correctly.
To resolve this, go through all the points below.
Checklist for Ingenico backoffice
SHA-IN / SHA-OUT
- Values must be alphanumeric (no special characters or umlauts)
- Maximum length: 20 characters
- SHA-IN and SHA-OUT need to be identical everywhere.
- Copy & paste the SHA-IN and SHA-OUT from the Ingenico backoffice into Magento and click "Save" again!
Transaction feedback URLs
- Verify URLs on the tab "Technical information -> Transaction Feedback".
- If you have a HTTP redirection for these URLs, enter the final target URL. The transaction feedback will not follow HTTP redirections!
- The URLs are case-sensitive.
- These URLs must be open to the internet (no blocking firewall rules etc.).
- Example configuration and URLs:
- Check the tab "Error logs" in the Ingenico backoffice for more detailled error messages.
- Check the detailled Postsale log of the transaction. Search for "ONL PS ERROR ..." This is the HTTP Response Code that was sent by the shop server.
- Check the transaction status in the Ingenico backoffice:
- If the status is "2 - declined", Ingenico will not send a feedback to the shop until the number of allowed payment attempts has been made.
- Go to "Tech. information -> Global transaction parameters" and set the number of allowed attempts to "1" to get an immediate feedback.
- You can also set this to "2" to allow one failure and then one more attempt.
Checklist for Magento
- Make sure Ingenico's User Agent is not blocked in the webserver configuration, Firewall, or similar systems.
- User-Agent: "Mozilla/3.0 (compatible; Indy Library)"
- This User Agent might be blocked by default on some systems.
Log file "ops.log"
- Look for two adjacent lines starting with "Hashed String by ...". If the hash values don't match:
- Check if the SHA configuration is 100% correct (same encoding and hash algorithm, SHA-IN and SHA-OUT identical everywhere).
- Check for non-standard parameters in the incoming feedback in the ops.log. Custom GET-parameters (e.g. added via Magento's index.php) can break the validation process!
- Also check the log file for lines containing "Incoming ...". Those indicate if the feedback reached the shop at all.
Other log files
- Check the Magento logs system.log and exception.log for errors occurring when the feedback should come in (note the timestamps).
- Also check the log files of the webserver (Apache, Nginx) and general PHP errors.
- Exceptions outside of the Ingenico module can also break the process for the status update!
Testing the transaction feedback URLs
Open the URLs in a browser. If they are working, you should get one of the following results. Both indicate that this test was ok:
- You see an empty white page and the HTTP Response Code 422 in the browser console, OR
- the message "hash not valid" and HTTP Response Code 500 or 503.
After that test, look if the URLs in the browser address bar have changed.
- If yes, this indicates a redirection.
- Enter the changed URLs from the address bar into the Ingenico backoffice (incl. all slashes).
- Test again with a new payment if the status update works now.
Still not working?
If you get a 404 page or another result than described above, proceed with this:
- Do you get a login box (htaccess authentication)? This must be disabled.
- Does the shop use SSL? If yes, change the URLs to HTTPS accordingly.
- Are the Magento Store Codes enabled? Then add the default Store Code to the URLs.
- Try the following changes:
- Add "index.php" to the URLs, example: http://your_shop_url.com/index.php/ops/api/postBack
- Add a slash "/" at the end of the URLs.
- Are there any redirections on the webserver that might cause problems? Disable them and test again.
- Check the access logs of the webserver (Apache, Nginx, etc.). The feedback is sent within 15 minutes after the payment.