-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Open
Labels
E-easyEffort: Should be easy to implement and would make a good first PREffort: Should be easy to implement and would make a good first PRS-unassignedStatus: This issue has no one assigned to address itStatus: This issue has no one assigned to address itgood first issueGood for newcomersGood for newcomershacktoberfestIssues that are up for grabs for Hacktoberfest participantsIssues that are up for grabs for Hacktoberfest participants
Description
Feature Description/Summary
Integrity check is a scenario where there is a discrepancy between the amount sent in the request and the amount received from the connector, which is checked during response handling.
Context
Integrity checks in a payments flow are critical for ensuring data consistency, correctness, and security when dealing with amounts between Hyperswitch and connectors like Adyen, Stripe, Razorpay, etc.
Starter Tasks
- In the
handle_response
function of Authorize/PSync/Refund/RSync, you will have to call the respective functions -get_authorise_integrity_object
for Authorize,get_sync_integrity_object
for Payments Sync,get_refund_integrity_object
for Refund and RSync andget_capture_integrity_object
for Capture. - You would have to call these functions from
crates/hyperswitch_connectors/src/utils.rs
. - These functions expect
amount_convertor
,amount
andcurrency
. - You can take a look at this PR for reference.
Implementation Hints
- You can go to
crates/hyperswitch_connectors/src/connectors/prophetpay.rs
and call the respective integrity check function as stated above in thehandle_response
function
Acceptance Criteria
- Request and Response body added for each of the flows where integrity check is applied.
- All the required GitHub checks passing
- Formatted the code using
cargo +nightly fmt --all
How to Test it
- Hardcode the amount or currency field that is being passed to the connector different from the one you are passing in the request body
- This way you would be able to reproduce the integrity checks error message while testing.
Mentor Contact
- Tag @bsayak03 [Sayak Bhattacharya] in the comments if you have any doubts/queries
Resources
Here are a few sample PRs :
- feat(connector): [FISERV] Added Integrity Check support for all Payment & Refund Flows #8075
- feat(connector): [XENDIT] Added Integrity Check for Authorize, Capture, Refund & RSync flows #8049
Pre-Flight
Have you spent some time checking if this feature request has been raised before?
- I checked and didn't find a similar issue
Have you read the Contributing Guidelines?
- I have read the Contributing Guidelines
Submission Process:
- Ask the maintainers for assignment of the issue, you can request for assignment by commenting on the issue itself.
- Once assigned, submit a pull request (PR).
- Maintainers will review and provide feedback, if any.
- Maintainers can unassign issues due to inactivity, read more here.
Refer here for Terms and conditions for the contest.
Metadata
Metadata
Assignees
Labels
E-easyEffort: Should be easy to implement and would make a good first PREffort: Should be easy to implement and would make a good first PRS-unassignedStatus: This issue has no one assigned to address itStatus: This issue has no one assigned to address itgood first issueGood for newcomersGood for newcomershacktoberfestIssues that are up for grabs for Hacktoberfest participantsIssues that are up for grabs for Hacktoberfest participants