mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-31 01:57:45 +08:00
fix(samsung_pay): populate payment_method_data in the payment response (#7095)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -829,7 +829,7 @@ pub struct PaymentMethodDataWalletInfo {
|
||||
pub card_network: String,
|
||||
/// The type of payment method
|
||||
#[serde(rename = "type")]
|
||||
pub card_type: String,
|
||||
pub card_type: Option<String>,
|
||||
}
|
||||
|
||||
impl From<payments::additional_info::WalletAdditionalDataForCard> for PaymentMethodDataWalletInfo {
|
||||
|
||||
@ -2601,6 +2601,7 @@ pub enum AdditionalPaymentData {
|
||||
Wallet {
|
||||
apple_pay: Option<ApplepayPaymentMethod>,
|
||||
google_pay: Option<additional_info::WalletAdditionalDataForCard>,
|
||||
samsung_pay: Option<additional_info::WalletAdditionalDataForCard>,
|
||||
},
|
||||
PayLater {
|
||||
klarna_sdk: Option<KlarnaSdkPaymentMethod>,
|
||||
@ -3874,6 +3875,8 @@ pub enum WalletResponseData {
|
||||
ApplePay(Box<additional_info::WalletAdditionalDataForCard>),
|
||||
#[schema(value_type = WalletAdditionalDataForCard)]
|
||||
GooglePay(Box<additional_info::WalletAdditionalDataForCard>),
|
||||
#[schema(value_type = WalletAdditionalDataForCard)]
|
||||
SamsungPay(Box<additional_info::WalletAdditionalDataForCard>),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize, ToSchema)]
|
||||
@ -5410,8 +5413,9 @@ impl From<AdditionalPaymentData> for PaymentMethodDataResponse {
|
||||
AdditionalPaymentData::Wallet {
|
||||
apple_pay,
|
||||
google_pay,
|
||||
} => match (apple_pay, google_pay) {
|
||||
(Some(apple_pay_pm), _) => Self::Wallet(Box::new(WalletResponse {
|
||||
samsung_pay,
|
||||
} => match (apple_pay, google_pay, samsung_pay) {
|
||||
(Some(apple_pay_pm), _, _) => Self::Wallet(Box::new(WalletResponse {
|
||||
details: Some(WalletResponseData::ApplePay(Box::new(
|
||||
additional_info::WalletAdditionalDataForCard {
|
||||
last4: apple_pay_pm
|
||||
@ -5425,13 +5429,16 @@ impl From<AdditionalPaymentData> for PaymentMethodDataResponse {
|
||||
.rev()
|
||||
.collect::<String>(),
|
||||
card_network: apple_pay_pm.network.clone(),
|
||||
card_type: apple_pay_pm.pm_type.clone(),
|
||||
card_type: Some(apple_pay_pm.pm_type.clone()),
|
||||
},
|
||||
))),
|
||||
})),
|
||||
(_, Some(google_pay_pm)) => Self::Wallet(Box::new(WalletResponse {
|
||||
(_, Some(google_pay_pm), _) => Self::Wallet(Box::new(WalletResponse {
|
||||
details: Some(WalletResponseData::GooglePay(Box::new(google_pay_pm))),
|
||||
})),
|
||||
(_, _, Some(samsung_pay_pm)) => Self::Wallet(Box::new(WalletResponse {
|
||||
details: Some(WalletResponseData::SamsungPay(Box::new(samsung_pay_pm))),
|
||||
})),
|
||||
_ => Self::Wallet(Box::new(WalletResponse { details: None })),
|
||||
},
|
||||
AdditionalPaymentData::BankRedirect { bank_name, details } => {
|
||||
|
||||
@ -219,5 +219,5 @@ pub struct WalletAdditionalDataForCard {
|
||||
pub card_network: String,
|
||||
/// The type of payment method
|
||||
#[serde(rename = "type")]
|
||||
pub card_type: String,
|
||||
pub card_type: Option<String>,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user