Skip to content

pr: [Nightly Fix] - Bug - Fix Stripe SCA Inline Transaction Status Mismatch#54

Open
jewel-claw wants to merge 1 commit into
masterfrom
nightly-fix/stripe-sca-intended-status-mismatch
Open

pr: [Nightly Fix] - Bug - Fix Stripe SCA Inline Transaction Status Mismatch#54
jewel-claw wants to merge 1 commit into
masterfrom
nightly-fix/stripe-sca-intended-status-mismatch

Conversation

@jewel-claw

Copy link
Copy Markdown

Summary

Root cause: Status value mismatch between writer and reader in the Stripe inline SCA (3DS) flow.

StripeInlineHandler writes status = 'intended' (correctly spelled) when a payment requires 3DS authentication. However, Transaction::getLatestIntentedTransaction() and Subscription::getIntentedSubscriptions() both query WHERE status = 'intented' (the typo used everywhere else in the codebase).

Effect: After a customer completes the 3DS challenge and returns to the site, the SCA recovery handler calls getLatestIntentedTransaction() to find the pending transaction. Because the status was stored as 'intended' but queried as 'intented', no record is ever found — the payment remains permanently stuck in pending state and is never resolved to paid.

Fix: Changed StripeInlineHandler to write 'intented' (matching the queries) for consistency. The typo exists in DB schema definitions, StripeHostedHandler, and both model methods — aligning the writer is the minimal-risk fix.

…smatch

StripeInlineHandler wrote status 'intended' (correct spelling) when an SCA
3DS action was required, but Transaction::getLatestIntentedTransaction() and
Subscription::getIntentedSubscriptions() both query for 'intented' (the typo
used consistently everywhere else).

This mismatch meant that after a customer completed the 3DS challenge and
returned to the site, the inline Stripe SCA recovery flow could never find
the pending transaction — leaving the payment permanently stuck in 'pending'
state instead of resolving to 'paid'.

Fix: align StripeInlineHandler to write 'intented' to match the query methods.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant