feat(connector): [Worldpayraft] enable UCS card flows, NTID MIT and PSync skip - #14348
Open
shuklatushar226 wants to merge 1 commit into
Open
shuklatushar226 wants to merge 1 commit into
shuklatushar226 wants to merge 1 commit into
Conversation
…Sync skip GRACE run worldpayraft-9b192d Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012uc68Hoy1Bzj6am8h9ndTy
Changed Files
|
14 tasks
Contributor
|
Review finding (inline review-comment API was unavailable in this run, so this is recorded here with the exact added-line location):
|
This branch has not been deployed
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.
Depends on juspay/hyperswitch-prism#2341
Why
Worldpayraft (Worldpay Native RAFT) Authorize, Capture, Void, Refund, SetupMandate (incl. $0 auth), RepeatPayment (connector mandate and NTID), external 3DS and payment webhooks are implemented in UCS (juspay/hyperswitch-prism#2341). Hyperswitch needs the changes below to route them correctly: without them it calls a UCS PSync that the connector cannot serve, it cannot use NTID-based MITs, and the NTID proxy path builds a direct connector request for a UCS-routed payment.
config/development.toml— ucs_psync_disabled_connectors (development.toml:1635; also config.example.toml:1509, deployments/env_specific.toml:479, integration_test.toml:1078, production.toml:1090, sandbox.toml:1097)config/development.toml— [network_transaction_id_supported_connectors] connector_list (development.toml:1370; docker_compose.toml:1262; config.example.toml:1466; deployments/integration_test.toml:326, production.toml:330, sandbox.toml:333)cypress-tests/cypress/e2e/configs/Payment/Worldpayraft.js— new file + registration in cypress-tests/cypress/e2e/configs/Payment/Utils.js connector mapcrates/router/src/core/payments.rs— proxy_for_call_connector_service: build_flow_specific_connector_request (hs base payments.rs:7333-7341)The Cypress config (
Worldpayraft.js,Utils.js) adds worldpayraft toMANDATES_USING_NTID_PROXYandEXTERNAL_THREE_DS. 3DS-challenge, PSync-dependent and RSync steps areTRIGGER_SKIP, because Native RAFT has no 3DS or inquiry call.Merge order
Required human checks
juspay/hyperswitchissue to this PR — CI job "Verify PR contains one or more linked issues" fails without one; GRACE opens nonepayments.rsguard (P-hs-07): it mirrors the existingcall_connector_serviceguard at payments.rs:5971-5983Validation
hs-wt: cargo +nightly fmt --all && cargo check -p hyperswitch_connectors --features v1,frm,payouts (+ router --features v1)Note
Alpha connector: there are no Worldpay RAFT credentials. The end-to-end runs below went HS → UCS → a documentation-derived mock of the RAFT API, not Worldpay.
E2E through this change (HS → UCS → mock), evidence in juspay/hyperswitch-prism#2341:
mock__requests.jsonl.L808mock__requests.jsonl.L811mock__requests.jsonl.L815mock__requests.jsonl.L819,mock__requests.jsonl.L822mock__requests.jsonl.L997mock__requests.jsonl.L1000,mock__requests.jsonl.L1002test__results__r4__checks__eventservice-handleevent-payment-succeededmock__requests.jsonl.L990🤖 Generated with Claude Code
https://claude.ai/code/session_012uc68Hoy1Bzj6am8h9ndTy