mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-11-01 02:57:02 +08:00 
			
		
		
		
	feat(router): make the billing country for apple pay as optional field (#3188)
This commit is contained in:
		| @ -3004,7 +3004,7 @@ pub struct SecretInfoToInitiateSdk { | ||||
| pub struct ApplePayPaymentRequest { | ||||
|     /// The code for country | ||||
|     #[schema(value_type = CountryAlpha2, example = "US")] | ||||
|     pub country_code: api_enums::CountryAlpha2, | ||||
|     pub country_code: Option<api_enums::CountryAlpha2>, | ||||
|     /// The code for currency | ||||
|     #[schema(value_type = Currency, example = "USD")] | ||||
|     pub currency_code: api_enums::Currency, | ||||
|  | ||||
| @ -529,7 +529,7 @@ impl TryFrom<types::PaymentsSessionResponseRouterData<BluesnapWalletTokenRespons | ||||
|                                 session_response, | ||||
|                             ), | ||||
|                         payment_request_data: Some(api_models::payments::ApplePayPaymentRequest { | ||||
|                             country_code: item.data.get_billing_country()?, | ||||
|                             country_code: item.data.request.country, | ||||
|                             currency_code: item.data.request.currency, | ||||
|                             total: api_models::payments::AmountInfo { | ||||
|                                 label: payment_request_data.label, | ||||
|  | ||||
| @ -545,6 +545,13 @@ impl<F> | ||||
|             } | ||||
|             _ => { | ||||
|                 let currency_code = item.data.request.get_currency()?; | ||||
|                 let country_code = item | ||||
|                     .data | ||||
|                     .address | ||||
|                     .billing | ||||
|                     .as_ref() | ||||
|                     .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(); | ||||
| @ -559,7 +566,7 @@ impl<F> | ||||
|                                 api_models::payments::ApplePaySessionResponse::NoSessionResponse, | ||||
|                             payment_request_data: Some( | ||||
|                                 api_models::payments::ApplePayPaymentRequest { | ||||
|                                     country_code: item.data.get_billing_country()?, | ||||
|                                     country_code, | ||||
|                                     currency_code, | ||||
|                                     total: api_models::payments::AmountInfo { | ||||
|                                         label: "Apple Pay".to_string(), | ||||
|  | ||||
| @ -1181,7 +1181,7 @@ pub fn get_apple_pay_session<F, T>( | ||||
|                             }, | ||||
|                         ), | ||||
|                     payment_request_data: Some(api_models::payments::ApplePayPaymentRequest { | ||||
|                         country_code: apple_pay_init_result.country_code, | ||||
|                         country_code: Some(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( | ||||
|  | ||||
| @ -371,13 +371,7 @@ fn get_apple_pay_payment_request( | ||||
|     merchant_identifier: &str, | ||||
| ) -> RouterResult<payment_types::ApplePayPaymentRequest> { | ||||
|     let applepay_payment_request = payment_types::ApplePayPaymentRequest { | ||||
|         country_code: session_data | ||||
|             .country | ||||
|             .to_owned() | ||||
|             .get_required_value("country_code") | ||||
|             .change_context(errors::ApiErrorResponse::MissingRequiredField { | ||||
|                 field_name: "country_code", | ||||
|             })?, | ||||
|         country_code: session_data.country, | ||||
|         currency_code: session_data.currency, | ||||
|         total: amount_info, | ||||
|         merchant_capabilities: Some(payment_request_data.merchant_capabilities), | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shankar Singh C
					Shankar Singh C