pr: [Nightly Fix] - Bug - Fix Stripe SCA Inline Transaction Status Mismatch#54
Open
jewel-claw wants to merge 1 commit into
Open
pr: [Nightly Fix] - Bug - Fix Stripe SCA Inline Transaction Status Mismatch#54jewel-claw wants to merge 1 commit into
jewel-claw wants to merge 1 commit into
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Root cause: Status value mismatch between writer and reader in the Stripe inline SCA (3DS) flow.
StripeInlineHandlerwritesstatus = 'intended'(correctly spelled) when a payment requires 3DS authentication. However,Transaction::getLatestIntentedTransaction()andSubscription::getIntentedSubscriptions()both queryWHERE 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 inpendingstate and is never resolved topaid.Fix: Changed
StripeInlineHandlerto 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.