-
Notifications
You must be signed in to change notification settings - Fork 3.9k
fix(connector): [Worldpay] handle multiple ddc submission for CompleteAuthorize #8741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(connector): [Worldpay] handle multiple ddc submission for CompleteAuthorize #8741
Conversation
…ze flow and handle multiple ddc submission on client side
Changed Files
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
other than that, lgtm.
cypress-tests/cypress/e2e/spec/Payment/00030-DDCRaceCondition.cy.js
Outdated
Show resolved
Hide resolved
e774368
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
other than that, lgtm.
cypress-tests/cypress/e2e/spec/Payment/00030-DDCRaceCondition.cy.js
Outdated
Show resolved
Hide resolved
}, | ||
}, | ||
}), | ||
DDCConfig: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: these can be imported from commons?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As per the discussions - the script for DDC is usually very different for different connectors.
Keeping them in Worldpay
instead to ensure changing Commons does not affect this connector.
…acilitapay-webhooks * 'main' of github.com:juspay/hyperswitch: fix(connector): [Worldpay] handle multiple ddc submission for CompleteAuthorize (#8741) feat(connector): [Adyen] receive incoming webhooks for pix expiry (#8720) feat(connector): [FISERV] Added GooglePay Payment Method - Connector Decryption Flow (#8658) feat(connector): [BLUECODE] Added Template Code (#8756) chore(version): 2025.07.29.0
…rver * 'main' of github.com:juspay/hyperswitch: (25 commits) chore: `xof` currency to cybersource cards (#8799) chore(version): 2025.08.01.0 feat(core): Implement UCS based upi for paytm and phonepe (#8732) feat(connector): [katapult]add template code for katapult (#8783) feat(router): introduce `feature` and `feature_data` to gsm (#7771) feat(connector): [cybersource] add changes for field CybersourceConsumerAuthInformation (#8768) feat(authentication): added authentication sync api (#8596) feat(connector): [facilitapay] fix refunds, add webhook and void support (#8778) feat(connector): [payload] add recurring payments (#8597) chore(version): 2025.07.31.0 feat(connector): [Flexiti]Add support for flexiti connector (#8743) chore(router): events enhancement for kafka (#8780) ci(cypress): Making a mandate payment with large customer user agents (#8790) fix(openapi): update create_platform endpoint in api-reference docs (#8782) chore(version): 2025.07.30.0 fix(connector): [GLOBALPAY] Added Tokenization Flow for CITs (#8568) feat(routing): Add api-refs for new decision engine endpoints (#8709) fix: replace xtrim with xdel to support older redis version (#8515) fix(connector): [Worldpay] handle multiple ddc submission for CompleteAuthorize (#8741) feat(connector): [Adyen] receive incoming webhooks for pix expiry (#8720) ...
Type of Change
Description
Fixes race condition in Worldpay 3DS Device Data Collection (DDC) flow causing
bodyDoesNotMatchSchema
errors.Changes made:
ddcProcessed
flag to prevent duplicate submissions on client-sidecollectionReference
submissions when payment is inAuthenticationPending
state@media (max-width: 600px)
)Additional Changes
Motivation and Context
Race condition caused intermittent 3DS payment failures when DDC took > 8 seconds.
How did you test it?
1. DDC race case in isolation
2. All test cases for Worldpay
Note
Checklist
cargo +nightly fmt --all
cargo clippy