Cause of problem
The transaction feedback from Ingenico did not reach the shop or wasn't processed correctly.
Without the transaction feedback, the confirmation emails from Magento will also not be sent.
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 the URLs on the tab "Technical information -> Transaction Feedback" (see screenshots below).
- If there are HTTP redirections for these URLs, enter the final URL. Redirections will not be followed!
- The URLs are case-sensitive.
- The shop must be reachable from the internet (not running in an inaccessible network, no blocking firewall).
- Example configuration and URLs:
Example for postBack URL
Example for directLinkPostBack URL
- Check the tab "Error logs" in the Ingenico backoffice for error messages.
- Look into the Postsale Log of the transaction. Search for "ONL PS ERROR ..." This is the HTTP Response Code that was sent by the shop.
- 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 server
- Make sure Ingenico's User Agent is not blocked in the server configuration, firewall, Fail2Ban, etc.
- User-Agent: "Mozilla/3.0 (compatible; Indy Library)". This might be blocked by default on some servers!
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% identical at Ingenico and in Magento (same encoding, SHA algorithm, SHA-IN and SHA-OUT identical).
- 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!
- 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.
- Note: exceptions outside of the Ingenico module can also break the process for the status update.
Testing the transaction feedback URLs
Open the API URLs in a browser. If they are working, you should see:
- an empty white page in the browser, and
- the HTTP Response Code 422 in the browser console.
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 tested the URLs and got 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.