feat(router): add merchant_business_country field in apple pay session_token_data (#4236)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
Shankar Singh C
2024-04-15 13:09:35 +05:30
committed by GitHub
parent 2f7faca97e
commit c3c8d09453
9 changed files with 78 additions and 10 deletions

View File

@ -3857,11 +3857,15 @@ pub struct SessionTokenInfo {
pub display_name: String,
pub initiative: String,
pub initiative_context: String,
#[schema(value_type = Option<CountryAlpha2>)]
pub merchant_business_country: Option<api_enums::CountryAlpha2>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, ToSchema)]
pub struct SessionTokenForSimplifiedApplePay {
pub initiative_context: String,
#[schema(value_type = Option<CountryAlpha2>)]
pub merchant_business_country: Option<api_enums::CountryAlpha2>,
}
#[derive(Debug, Clone, Eq, PartialEq, serde::Serialize, ToSchema)]
@ -4029,7 +4033,7 @@ pub struct SecretInfoToInitiateSdk {
pub struct ApplePayPaymentRequest {
/// The code for country
#[schema(value_type = CountryAlpha2, example = "US")]
pub country_code: Option<api_enums::CountryAlpha2>,
pub country_code: api_enums::CountryAlpha2,
/// The code for currency
#[schema(value_type = Currency, example = "USD")]
pub currency_code: api_enums::Currency,

View File

@ -246,6 +246,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[adyen.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -354,6 +355,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[authorizedotnet.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -414,6 +416,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bambora.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -474,6 +477,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bankofamerica.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -551,6 +555,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bluesnap.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -775,6 +780,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[checkout.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -856,6 +862,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[cybersource.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1271,6 +1278,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[nexinets.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1337,6 +1345,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[nmi.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1404,6 +1413,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[noon.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1483,6 +1493,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[nuvei.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1790,6 +1801,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[rapyd.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1944,6 +1956,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[stripe.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -2101,6 +2114,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[trustpay.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -2268,6 +2282,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[worldpay.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]

View File

@ -139,6 +139,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[adyen.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -248,6 +249,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[authorizedotnet.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -322,6 +324,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bluesnap.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -433,6 +436,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bambora.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -494,6 +498,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bankofamerica.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -661,6 +666,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[checkout.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -731,6 +737,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[cybersource.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1127,6 +1134,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[nexinets.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1378,6 +1386,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[rapyd.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1516,6 +1525,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[stripe.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1588,6 +1598,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[trustpay.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1696,6 +1707,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[worldpay.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]

View File

@ -246,6 +246,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[adyen.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -354,6 +355,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[authorizedotnet.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -414,6 +416,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bambora.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -474,6 +477,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bankofamerica.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -551,6 +555,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[bluesnap.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -775,6 +780,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[checkout.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -856,6 +862,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[cybersource.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1271,6 +1278,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[nexinets.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1337,6 +1345,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[nmi.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1404,6 +1413,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[noon.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1483,6 +1493,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[nuvei.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1790,6 +1801,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[rapyd.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -1944,6 +1956,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[stripe.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -2101,6 +2114,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[trustpay.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]
@ -2268,6 +2282,7 @@ merchant_identifier="Apple Merchant Identifier"
display_name="Display Name"
initiative="Domain"
initiative_context="Domain Name"
merchant_business_country="Merchant Business Country"
[worldpay.metadata.apple_pay.payment_request_data]
supported_networks=["visa","masterCard","amex","discover"]
merchant_capabilities=["supports3DS"]

View File

@ -550,7 +550,7 @@ impl TryFrom<types::PaymentsSessionResponseRouterData<BluesnapWalletTokenRespons
session_response,
),
payment_request_data: Some(api_models::payments::ApplePayPaymentRequest {
country_code: item.data.request.country,
country_code: item.data.get_billing_country()?,
currency_code: item.data.request.currency,
total: api_models::payments::AmountInfo {
label: payment_request_data.label,

View File

@ -538,11 +538,6 @@ impl<F>
}
_ => {
let currency_code = item.data.request.get_currency()?;
let country_code = item
.data
.get_optional_billing()
.and_then(|billing| billing.address.as_ref())
.and_then(|address| address.country);
let amount = item.data.request.get_amount()?;
let amount_in_base_unit = utils::to_currency_base_unit(amount, currency_code)?;
let pmd = item.data.request.payment_method_data.to_owned();
@ -557,7 +552,7 @@ impl<F>
api_models::payments::ApplePaySessionResponse::NoSessionResponse,
payment_request_data: Some(
api_models::payments::ApplePayPaymentRequest {
country_code,
country_code: item.data.get_billing_country()?,
currency_code,
total: api_models::payments::AmountInfo {
label: "Apple Pay".to_string(),

View File

@ -1222,7 +1222,7 @@ pub fn get_apple_pay_session<F, T>(
},
),
payment_request_data: Some(api_models::payments::ApplePayPaymentRequest {
country_code: Some(apple_pay_init_result.country_code),
country_code: apple_pay_init_result.country_code,
currency_code: apple_pay_init_result.currency_code,
supported_networks: Some(apple_pay_init_result.supported_networks.clone()),
merchant_capabilities: Some(

View File

@ -169,6 +169,7 @@ async fn create_applepay_session_token(
apple_pay_session_request,
apple_pay_merchant_cert,
apple_pay_merchant_cert_key,
merchant_business_country,
) = match apple_pay_metadata {
payment_types::ApplepaySessionTokenMetadata::ApplePayCombined(
apple_pay_combined_metadata,
@ -185,6 +186,8 @@ async fn create_applepay_session_token(
.clone()
.expose();
let merchant_business_country = session_token_data.merchant_business_country;
let apple_pay_session_request = get_session_request_for_simplified_apple_pay(
merchant_identifier,
session_token_data,
@ -211,6 +214,7 @@ async fn create_applepay_session_token(
apple_pay_session_request,
apple_pay_merchant_cert,
apple_pay_merchant_cert_key,
merchant_business_country,
)
}
payment_types::ApplePayCombinedMetadata::Manual {
@ -219,11 +223,15 @@ async fn create_applepay_session_token(
} => {
let apple_pay_session_request =
get_session_request_for_manual_apple_pay(session_token_data.clone());
let merchant_business_country = session_token_data.merchant_business_country;
(
payment_request_data,
apple_pay_session_request,
session_token_data.certificate.clone(),
session_token_data.certificate_keys,
merchant_business_country,
)
}
},
@ -231,11 +239,16 @@ async fn create_applepay_session_token(
let apple_pay_session_request = get_session_request_for_manual_apple_pay(
apple_pay_metadata.session_token_data.clone(),
);
let merchant_business_country = apple_pay_metadata
.session_token_data
.merchant_business_country;
(
apple_pay_metadata.payment_request_data,
apple_pay_session_request,
apple_pay_metadata.session_token_data.certificate.clone(),
apple_pay_metadata.session_token_data.certificate_keys,
merchant_business_country,
)
}
};
@ -252,6 +265,7 @@ async fn create_applepay_session_token(
payment_request_data,
router_data.request.to_owned(),
apple_pay_session_request.merchant_identifier.as_str(),
merchant_business_country,
)?;
let applepay_session_request = build_apple_pay_session_request(
@ -351,9 +365,14 @@ fn get_apple_pay_payment_request(
payment_request_data: payment_types::PaymentRequestMetadata,
session_data: types::PaymentsSessionData,
merchant_identifier: &str,
merchant_business_country: Option<api_models::enums::CountryAlpha2>,
) -> RouterResult<payment_types::ApplePayPaymentRequest> {
let applepay_payment_request = payment_types::ApplePayPaymentRequest {
country_code: session_data.country,
country_code: merchant_business_country.or(session_data.country).ok_or(
errors::ApiErrorResponse::MissingRequiredField {
field_name: "country_code",
},
)?,
currency_code: session_data.currency,
total: amount_info,
merchant_capabilities: Some(payment_request_data.merchant_capabilities),

View File

@ -17506,6 +17506,14 @@
},
"initiative_context": {
"type": "string"
},
"merchant_business_country": {
"allOf": [
{
"$ref": "#/components/schemas/CountryAlpha2"
}
],
"nullable": true
}
}
},