feat(connector): [FISERVEMEA] Integrate cards#5672
Conversation
|
Review changes with SemanticDiff. Analyzed 12 of 23 files. Overall, the semantic diff is 13% smaller than the GitHub diff. File Information
|
| merchant_transaction_id: item | ||
| .router_data | ||
| .connector_request_reference_id | ||
| .clone(), | ||
| transaction_amount: FiservemeaTransactionAmount { | ||
| total: item.amount.clone(), | ||
| currency: item.router_data.request.currency, | ||
| }, | ||
| order: FiservemeaOrder { | ||
| order_id: item.router_data.connector_request_reference_id.clone(), | ||
| }, |
There was a problem hiding this comment.
Either merchant_transaction_id or order we should pass merchant_order_reference_id, if its available else pass connector_request_reference_id
| complete: item.router_data.request.is_auto_capture()?, | ||
| expiry_date: FiservemeaExpiryDate { | ||
| month: req_card.card_exp_month, | ||
| year: req_card.card_exp_year, |
There was a problem hiding this comment.
Does it accepts both 2 digit and 4 digit year?
There was a problem hiding this comment.
It only accepts 2 digit expiry year and this bug is fixed.
| None => Err(errors::ConnectorError::MissingRequiredField { | ||
| field_name: "transactionResult", | ||
| }), |
There was a problem hiding this comment.
This will trigger 4xx and mark payment as failure, please check and remove this error
There was a problem hiding this comment.
These payments will be marked as pending if no status is returned from connector.
| if transaction_type == FiservemeaTransactionType::Preauth { | ||
| Ok(common_enums::AttemptStatus::Authorized) | ||
| } else if transaction_type == FiservemeaTransactionType::Void { | ||
| Ok(common_enums::AttemptStatus::Voided) | ||
| } else if matches!( | ||
| transaction_type, | ||
| FiservemeaTransactionType::Sale | FiservemeaTransactionType::Postauth | ||
| ) { | ||
| Ok(common_enums::AttemptStatus::Charged) | ||
| } else { | ||
| Ok(common_enums::AttemptStatus::Failure) | ||
| } |
There was a problem hiding this comment.
match statement will be more clean
SamraatBansal
left a comment
There was a problem hiding this comment.
- Connector Configs are missing for the dashboard
- Add Cypress Test Cases
| [fiservemea.connector_webhook_details] | ||
| merchant_secret="Source verification key" |
There was a problem hiding this comment.
Webhooks are not implemented no need of this field
| [fiservemea.connector_webhook_details] | ||
| merchant_secret="Source verification key" |
There was a problem hiding this comment.
Webhooks are not implemented remove this field
| [fiservemea.connector_webhook_details] | ||
| merchant_secret="Source verification key" |
| let fiservemea::FiservemeaAuthType { | ||
| api_key, | ||
| secret_key, | ||
| .. |
There was a problem hiding this comment.
There are only 2 fields in the struct, no need for default ..
| Err(errors::ConnectorError::NotImplemented("get_url method".to_string()).into()) | ||
| let connector_payment_id = req | ||
| .request | ||
| .connector_transaction_id |
There was a problem hiding this comment.
Can we sync using our reference id, in case of timeouts it will cause issues.
There was a problem hiding this comment.
No we cannot sync with our reference id
| connectors: &Connectors, | ||
| ) -> CustomResult<String, errors::ConnectorError> { | ||
| Err(errors::ConnectorError::NotImplemented("get_url method".to_string()).into()) | ||
| let connector_payment_id = req.request.get_connector_refund_id()?; |
There was a problem hiding this comment.
Can we sync using our reference?
There was a problem hiding this comment.
No we cannot sync with our reference id
4a60a85
* 'main' of github.com:juspay/hyperswitch: feat(connector): [FISERVEMEA] Integrate cards (#5672) ci(cypress): Add routing testcases (#5571) fix(router): skip external three_ds flow for recurring payments (#5730) refactor(customer_v2): fixed customer_v2 create panic issue (#5699) feat(user_roles): support switch for new hierarchy (#5692) refactor(router): add domain type for merchant_connector_account id (#5685) refactor(cypress_tests): handle api keys check in api key list call (#5719) feat(connector): [NEXIXPAY] Add template code (#5684) refactor(connector): [itau] refactor error reason and code mapping for itau (#5718) fix(core): fix merchant connector account create for v2 (#5716) chore(version): 2024.08.28.0 fix(routing): fix routing routes to deserialise correctly (#5724) feat(euclid): add a new variant in payment type i.e ppt_mandate (#5681) feat(core): Add mTLS certificates for each request (#5636)
Type of Change
Description
Integrate card payments for new connector Fiserv-EMEA
https://docs.fiserv.dev/
Additional Changes
Motivation and Context
#5671
How did you test it?
Following flows need to be tested for card payments for new connector FiservEMEA:
Request:
Response:
Request:
Response:
Request:
Response:
Request:
Response:
Cypress Test Cases also added for Non-3DS Cards:

Checklist
cargo +nightly fmt --allcargo clippy