Discussing APIs and development related to customers, discounts, and order management.
The Shopify Payments App documentation (https://shopify.dev/apps/payments/processing-a-payment#how-the-payments-app-flow-works) states that after the customer completes checkout, it will trigger a request for payment.
The Payment App that I am currently developing is blocked at Step 2:
Shopify sends a backend request to the payments app, specifying the amount and currency to be charged.
Issue: I don't receive any request from Shopify. After I hit "Complete order", I see the screen saying "Your order's being processed. If you're not automatically redirected, refresh this page", and after it refreshes itself it ends up on the checkout screen with the following message "Your payment can’t be processed for technical reasons. Try again or use a different payment method" (please see the attachments).
Additional info:
The Payment App extension is of type "Offsite payment provider", is approved and it has the status "Published".
The Payment App is developed in PHP.
I have configured the Apache Server to force clients to authenticate using certificates for the Payment URLs set in the Payment App extension.
<Location "/secure/area">
# require a client certificate which has to be directly
# signed by our CA certificate in ca.crt
SSLVerifyClient require
SSLVerifyDepth 1
# https://shopify.dev/apps/payments/general-transaction-requirements#shopifys-payments-platform-root-c...
SSLCACertificateFile "conf/ssl.crt/ca.crt"
</Location>
I have contacted Shopify support, and their recommendation is to write on this forum, as they are not technical persons, but they also admit that Shopify developers are not always free to reply to forum posts and are not available via Shopify Support channels like e-mails, chats, or phones.
Does anyone here managed to pass this step, after encountering the same issue?
Thanks.
Did you find a solution? Same problem for me
We have managed to pass this generic error or at least understand where it comes from.
When you encounter the "technical reason" error, first of all check your access log.
As I have mentioned before, the app is created in PHP - the place to look for it should be:
tail -50 /var/log/apache2/access.log
"POST {your payment session endpoint set in the payment app extension} HTTP/1.1" 200 3463 "-" "Faraday v1.9.3"
I've build the app on top of Laravel, which has a redirect directive in .htaccess
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
Because the payment session URL was submitted with a trailing slash and the path was not a folder, apache would respond with 301 instead of 200, which would determine Shopify to throw the error.
This was our particular issue, but basically everything that goes wrong when Shopify makes the request to the payment session URL, it will result in the same message. What will make your life easier is to check the server access logs, server error logs or even better write your custom logs in the app. This request is not visible in browser.
Happy coding with Shopify!
Hi
I am also facing the same situation I have setup exactly what you have mentioned
In my case the only difference is I am unable to setup the SSL part
can you please explain how did you configured the Apache Server to force clients to authenticate using certificates for the Payment URLs set in the Payment App extension
In my case It is getting redirected to my payment page based on the demo Request body which is mentioned on the doc and my app is not receiving any backend request from shopify.
Hi
are you able to find a solution as m also facing same issue.