-
Notifications
You must be signed in to change notification settings - Fork 3.9k
feat(external_services): Fixed Url for Unified Connector Service gRPC Client #8587
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
Merged
+11
−19
Conversation
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
Changed Files
|
SanchithHegde
previously approved these changes
Jul 9, 2025
Aprabhat19
previously approved these changes
Jul 10, 2025
1db57f4
SanchithHegde
approved these changes
Aug 1, 2025
Aprabhat19
approved these changes
Aug 4, 2025
pixincreate
added a commit
that referenced
this pull request
Aug 6, 2025
…ordea-sepa * 'main' of github.com:juspay/hyperswitch: (89 commits) feat(router): [worldpayvantiv] add dispute list sync and implement dispute (#8830) feat(core): Add support for Void after Capture (#8839) fix(wasm): [FISERV] Added GooglePay Payment Method Type (#8832) feat(connector): [Barclaycard] Add Google Pay Payment Method (#8786) chore(version): 2025.08.06.0 feat(core): Added additional authentication fields for 3ds external authentication (#8758) refactor(core): propagate network_transaction_id in response of payment (#8829) fix(core): add fix for stopping multiple event locking idempotent logs (#8034) feat(connector): [AUTHORIZEDOTNET] create connector customer flow added (#8774) feat(core): Add L2_L3 Data Support (#8828) feat(connector): [NMI] Add mandates flow (#8652) fix(connector): [Wise] send uuid as connector_transaction_id (#8836) feat(core): populate UCS status_code in response headers (#8788) feat(external_services): Fixed Url for Unified Connector Service gRPC Client (#8587) chore: reorder v2 migrations folders (#8671) fix(router): Take merchant ID from headers in API Key - Revoke (v2) (#8808) fix(connector): (payload) currency auth key wasm changes (#8825) feat(payment-methods): add filtering logic for payment method list v2 (#8606) feat(router): add support for apple pay pre-decrypted token in the payments confirm call (#8815) chore(version): 2025.08.05.0 ...
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.
Type of Change
Description
Changed the Unified Connector Service gRPC Client config to accept the entire base url instead of host and port.
What is Unified Connector Service?
The Unified Connector Service is a gRPC-based microservice that acts as an intermediary layer between Hyperswitch and payment connectors. Here are its key characteristics:
Core Purpose:
Supported Operations:
payment_authorize
)payment_get
)Technical Architecture:
How Hyperswitch Routes Traffic to UCS
The routing to UCS follows a sophisticated decision-making process:
1. Decision Logic (
should_call_unified_connector_service
)Hyperswitch determines whether to use UCS based on:
UCS_ROLLOUT_PERCENT_<merchant_id>_<connector>_<payment_method>_<flow>
2. Routing Flow Integration
The UCS routing is integrated at multiple levels:
Payment Operations Core:
Both V1 and V2 Flows:
payments_operation_core
anddecide_unified_connector_service_call
payments_operation_core
,internal_payments_operation_core
, andconnector_service_decider
3. Request Processing
When UCS is selected:
Authentication Setup:
ConnectorAuthMetadata
with connector credentialsgRPC Communication:
Response Handling:
4. Configuration Management
UCS routing is controlled through:
5. Fallback Mechanism
If UCS is not available or the rollout percentage doesn't select it, Hyperswitch falls back to direct connector integration.
Additional Changes
Motivation and Context
It was decided to give the entire base URL (inclusive of http/https, domain name, and optional port number) in the config.
This would allow us to use all sorts of URLs like these:
How did you test it?
Happy Case (Adyen)
Payment (Through Hyperswitch)
-Request
-Response
Payment (Through Unified Connector Service)
-Request
-Response
Failure Case (Adyen)
Payment (Through Hyperswitch)
-Request
-Response
Payment (Through Unified Connector Service)
-Request
-Response
Checklist
cargo +nightly fmt --all
cargo clippy