fix(router): fix token fetch logic in complete authorize flow for three ds payments #4052
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.
Type of Change
Description
This PR fixes the issue where token data fetch from Redis was failing for 3DS payments going through the complete authorize flow. The issue being that the payment method was being taken from the request, where it may not be present. The solution was to add the payment method stored in the payment attempt as a fallback.
Additional Changes
Motivation and Context
Certain connectors confirm their payments through the Complete Authorize flow when it comes to 3DS. To ensure that the token data fetch for this flow doesn't fail, we should be using the payment attempt as the fallback ground of truth for any missing data. This PR adds this fallback.
How did you test it?
3DS Payments with Cybersource (failing before, passing now)

Payment Confirmation:
Payment Redirection (Succeeding):

Checklist
cargo +nightly fmt --all
cargo clippy