juspay / juspay/hyperswitch

[FEATURE] : [BRAINTREE] Add Integrity Check Support for Authorize, PSync, Refund and RSync Flows

Open
#9,155 2 comments 0 reactions 1 assignee Claimed by @shashankpatil28 View on GitHub
A-connector-integration E-easy good first issue hacktoberfest Rust S-unassigned
Dominant language
Rust
Stars
43.7k
Forks
5.1k
Avg merge
2d 20h
Merged PRs (30d)
205

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 and `get_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` and `currency`.
- You can take a look at this [PR](https://github.com/juspay/hyperswitch/pull/8075) for reference.

### Implementation Hints

- You can go to `crates/hyperswitch_connectors/src/connectors/braintree.rs` and call the respective integrity check function as stated above in the `handle_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 :

- https://github.com/juspay/hyperswitch/pull/8075
- https://github.com/juspay/hyperswitch/pull/8049

### Pre-Flight

#### Have you spent some time checking if this feature request has been raised before?

- [x] I checked and didn't find a similar issue

#### Have you read the Contributing Guidelines?

- [x] I have read the [Contributing Guidelines](https://github.com/juspay/hyperswitch/blob/main/docs/CONTRIBUTING.md)

### 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](https://github.com/juspay/hyperswitch/wiki/Hacktoberfest-Contribution-Rules).

Refer [here](https://github.com/juspay/hyperswitch/blob/main/docs/TERMS_OF_CONTEST.md) for Terms and conditions for the contest.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.