Environment
- WordPress 7.1
- WooCommerce 11.0.1
- WooCommerce Pay360 Gateway (Access PaySuite) 2.5.10
- PHP 8.4 Hosting: Azure App Service (Linux)
What's happening
We use the Pay360 / Access PaySuite gateway on our WooCommerce shop. Occasionally a customer starts checkout, is redirected to Pay360, but doesn't complete payment straight away. WooCommerce then sets the order to Cancelled because the pending-payment time limit is reached. Shortly afterwards (in one case ~12 seconds after the gateway transaction had expired) the customer completes payment, Pay360 reports it as successful, and the funds are taken — leaving us with an order stuck in Cancelled status despite a successful payment.
In the most recent case, the customer switched to PayPal within the Pay360 flow, and the payment completed after the window expired.
To me, this looks like a race between WooCommerce's automatic cancellation of unpaid pending orders and the delayed return/callback from the payment gateway. When the gateway callback finally lands as paid, the order has already been cancelled or maybe there is an issue with the callback so woocommerce is rejecting it?
Is the right fix to extend the stock-hold time, or should I be looking more closely at the callback? The WooCommerce stock-hold time hadn't actually lapsed until some time after the payment, which is why I'm leaning towards a callback issue rather than a simple timeout.
Has anyone experienced this with Pay360 / Access PaySuite specifically? We've contacted Access PaySuite and are awaiting their response.