Hi,
As you requested, I am not sending a solution, but I am reporting the problem
I found two serious issues with Stripe payment handling in J2Commerce.
1. Delayed webhook and incorrect order status
Order 17915727687103 was created on October 9 at 21:06. The customer successfully paid 85 PLN via Stripe (Google Pay) at 21:07.
However, J2Commerce did not recognize the payment and automatically cancelled the order on October 10 at 02:00.
On October 12, I manually changed the order status from Cancelled to Confirmed and then to Shipped.
At 15:44, almost three days after the payment, the Stripe webhook (charge.succeeded) was processed, reverting the already shipped order back to Confirmed and sending duplicate confirmation emails.
2. Missing pending payment handling
J2Commerce does not properly handle payments that take longer to complete. When a customer starts a Stripe payment and confirmation is delayed, J2Commerce may redirect them back to the cart with a failed payment message, even though the payment is still being processed. Instead, the order should remain in Pending Payment status until Stripe confirms the final result. The webhook should then automatically update the order when payment succeeds or fails. A delayed payment should never be treated as failed simply because confirmation takes longer than expected.
Please investigate both issues and ensure that webhook processing is idempotent, does not overwrite already shipped orders, and properly handles pending payments.
best,
KK