When using the Stripe as a base payment gateway for Mobilepay, the current OrderPaymentIntentSubscriber::onOrderPreSave() cancels payment intents too aggressively.
Specifically, if the original payment method is empty, the code checks the intent status and only prevents cancellation for these statuses:
However, a PaymentIntent with status requires_confirmation is not included, and as a result, such intents are incorrectly added to the cancel list and removed from the order ($order->unsetData('stripe_intent')).
This causes valid payment intents that are waiting for client-side confirmation to be cancelled prematurely, breaking the checkout flow.
Update the status checks in OrderPaymentIntentSubscriber::onOrderPreSave() to also treat requires_confirmation as a valid intent status that should not be cancelled.
This would align with the expected Stripe workflow where an intent can remain in requires_confirmation until itβs confirmed client-side.
Update the status checks in OrderPaymentIntentSubscriber::onOrderPreSave() to also treat requires_confirmation as a valid intent status that should not be cancelled.
This would align with the expected Stripe workflow where an intent can remain in requires_confirmation until itβs confirmed client-side.
Active
2.1
Code
Not all content is available!
It's likely this issue predates Contrib.social: some issue and comment data are missing.
No activities found.