mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-28 20:23:43 +08:00
feat(connector): [Adyen] Add support for Samsung Pay (#1525)
This commit is contained in:
committed by
GitHub
parent
6bc4188ff9
commit
33309daf5c
@ -442,6 +442,7 @@ pub enum PaymentMethodType {
|
|||||||
PayBright,
|
PayBright,
|
||||||
Paypal,
|
Paypal,
|
||||||
Przelewy24,
|
Przelewy24,
|
||||||
|
SamsungPay,
|
||||||
Sepa,
|
Sepa,
|
||||||
Sofort,
|
Sofort,
|
||||||
Swish,
|
Swish,
|
||||||
|
|||||||
@ -845,10 +845,20 @@ pub enum WalletData {
|
|||||||
PaypalRedirect(PaypalRedirection),
|
PaypalRedirect(PaypalRedirection),
|
||||||
/// The wallet data for Paypal
|
/// The wallet data for Paypal
|
||||||
PaypalSdk(PayPalWalletData),
|
PaypalSdk(PayPalWalletData),
|
||||||
|
/// The wallet data for Samsung Pay
|
||||||
|
SamsungPay(Box<SamsungPayWalletData>),
|
||||||
/// The wallet data for WeChat Pay Redirection
|
/// The wallet data for WeChat Pay Redirection
|
||||||
WeChatPayRedirect(Box<WeChatPayRedirection>),
|
WeChatPayRedirect(Box<WeChatPayRedirection>),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Eq, PartialEq, Clone, Debug, serde::Deserialize, serde::Serialize, ToSchema)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
|
pub struct SamsungPayWalletData {
|
||||||
|
/// The encrypted payment token from Samsung
|
||||||
|
#[schema(value_type = String)]
|
||||||
|
pub token: Secret<String>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Debug, serde::Deserialize, serde::Serialize, ToSchema)]
|
#[derive(Eq, PartialEq, Clone, Debug, serde::Deserialize, serde::Serialize, ToSchema)]
|
||||||
#[serde(rename_all = "snake_case")]
|
#[serde(rename_all = "snake_case")]
|
||||||
pub struct GooglePayWalletData {
|
pub struct GooglePayWalletData {
|
||||||
|
|||||||
@ -284,6 +284,7 @@ pub enum AdyenPaymentMethod<'a> {
|
|||||||
#[serde(rename = "sepadirectdebit")]
|
#[serde(rename = "sepadirectdebit")]
|
||||||
SepaDirectDebit(Box<SepaDirectDebitData>),
|
SepaDirectDebit(Box<SepaDirectDebitData>),
|
||||||
BacsDirectDebit(Box<BacsDirectDebitData>),
|
BacsDirectDebit(Box<BacsDirectDebitData>),
|
||||||
|
SamsungPay(Box<SamsungPayPmData>),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
@ -360,6 +361,14 @@ pub struct WalleyData {
|
|||||||
payment_type: PaymentType,
|
payment_type: PaymentType,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Serialize)]
|
||||||
|
pub struct SamsungPayPmData {
|
||||||
|
#[serde(rename = "type")]
|
||||||
|
payment_type: PaymentType,
|
||||||
|
#[serde(rename = "samsungPayToken")]
|
||||||
|
samsung_pay_token: Secret<String>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
pub struct PayBrightData {
|
pub struct PayBrightData {
|
||||||
#[serde(rename = "type")]
|
#[serde(rename = "type")]
|
||||||
@ -690,6 +699,7 @@ pub enum PaymentType {
|
|||||||
SepaDirectDebit,
|
SepaDirectDebit,
|
||||||
#[serde(rename = "directdebit_GB")]
|
#[serde(rename = "directdebit_GB")]
|
||||||
BacsDirectDebit,
|
BacsDirectDebit,
|
||||||
|
Samsungpay,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct AdyenTestBankNames<'a>(&'a str);
|
pub struct AdyenTestBankNames<'a>(&'a str);
|
||||||
@ -1097,6 +1107,13 @@ impl<'a> TryFrom<&api::WalletData> for AdyenPaymentMethod<'a> {
|
|||||||
};
|
};
|
||||||
Ok(AdyenPaymentMethod::WeChatPayWeb(Box::new(data)))
|
Ok(AdyenPaymentMethod::WeChatPayWeb(Box::new(data)))
|
||||||
}
|
}
|
||||||
|
api_models::payments::WalletData::SamsungPay(samsung_data) => {
|
||||||
|
let data = SamsungPayPmData {
|
||||||
|
payment_type: PaymentType::Samsungpay,
|
||||||
|
samsung_pay_token: samsung_data.token.to_owned(),
|
||||||
|
};
|
||||||
|
Ok(AdyenPaymentMethod::SamsungPay(Box::new(data)))
|
||||||
|
}
|
||||||
_ => Err(errors::ConnectorError::NotImplemented("Payment method".to_string()).into()),
|
_ => Err(errors::ConnectorError::NotImplemented("Payment method".to_string()).into()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -222,6 +222,7 @@ Never share your secret api keys. Keep them guarded and secure.
|
|||||||
api_models::payments::ApplepaySessionTokenResponse,
|
api_models::payments::ApplepaySessionTokenResponse,
|
||||||
api_models::payments::SdkNextAction,
|
api_models::payments::SdkNextAction,
|
||||||
api_models::payments::NextActionCall,
|
api_models::payments::NextActionCall,
|
||||||
|
api_models::payments::SamsungPayWalletData,
|
||||||
api_models::payments::GpayTokenizationData,
|
api_models::payments::GpayTokenizationData,
|
||||||
api_models::payments::GooglePayPaymentMethodInfo,
|
api_models::payments::GooglePayPaymentMethodInfo,
|
||||||
api_models::payments::ApplePayWalletData,
|
api_models::payments::ApplePayWalletData,
|
||||||
|
|||||||
@ -701,6 +701,7 @@ pub enum PaymentMethodType {
|
|||||||
PayBright,
|
PayBright,
|
||||||
Paypal,
|
Paypal,
|
||||||
Przelewy24,
|
Przelewy24,
|
||||||
|
SamsungPay,
|
||||||
Sepa,
|
Sepa,
|
||||||
Sofort,
|
Sofort,
|
||||||
Swish,
|
Swish,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user