diff --git a/crates/api_models/src/payments.rs b/crates/api_models/src/payments.rs index 90dd1f22e9..ef5f9afa80 100644 --- a/crates/api_models/src/payments.rs +++ b/crates/api_models/src/payments.rs @@ -981,6 +981,8 @@ pub enum WalletData { SamsungPay(Box), /// Wallet data for Twint Redirection TwintRedirect {}, + /// Wallet data for Vipps Redirection + VippsRedirect {}, /// The wallet data for WeChat Pay Redirection WeChatPayRedirect(Box), /// The wallet data for WeChat Pay diff --git a/crates/common_enums/src/enums.rs b/crates/common_enums/src/enums.rs index a05089d4b8..23456f53ea 100644 --- a/crates/common_enums/src/enums.rs +++ b/crates/common_enums/src/enums.rs @@ -593,6 +593,7 @@ pub enum PaymentMethodType { Trustly, Twint, UpiCollect, + Vipps, Walley, WeChatPay, } diff --git a/crates/common_enums/src/transformers.rs b/crates/common_enums/src/transformers.rs index 1218e983bc..4d2e1b2e58 100644 --- a/crates/common_enums/src/transformers.rs +++ b/crates/common_enums/src/transformers.rs @@ -1577,6 +1577,7 @@ impl From for PaymentMethod { PaymentMethodType::Trustly => Self::BankRedirect, PaymentMethodType::Twint => Self::Wallet, PaymentMethodType::UpiCollect => Self::Upi, + PaymentMethodType::Vipps => Self::Wallet, PaymentMethodType::Walley => Self::PayLater, PaymentMethodType::WeChatPay => Self::Wallet, } diff --git a/crates/router/src/connector/adyen/transformers.rs b/crates/router/src/connector/adyen/transformers.rs index 7a43f6f314..4ec7c616e9 100644 --- a/crates/router/src/connector/adyen/transformers.rs +++ b/crates/router/src/connector/adyen/transformers.rs @@ -310,6 +310,7 @@ pub enum AdyenPaymentMethod<'a> { BacsDirectDebit(Box), SamsungPay(Box), Twint(Box), + Vipps(Box), } #[derive(Debug, Clone, Serialize)] @@ -674,6 +675,12 @@ pub struct TwintWalletData { payment_type: PaymentType, } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct VippsWalletData { + #[serde(rename = "type")] + payment_type: PaymentType, +} + #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AdyenPayLaterData { #[serde(rename = "type")] @@ -754,6 +761,7 @@ pub enum PaymentType { BacsDirectDebit, Samsungpay, Twint, + Vipps, } pub struct AdyenTestBankNames<'a>(&'a str); @@ -1242,6 +1250,12 @@ impl<'a> TryFrom<&api::WalletData> for AdyenPaymentMethod<'a> { }; Ok(AdyenPaymentMethod::Twint(Box::new(data))) } + api_models::payments::WalletData::VippsRedirect { .. } => { + let data = VippsWalletData { + payment_type: PaymentType::Vipps, + }; + Ok(AdyenPaymentMethod::Vipps(Box::new(data))) + } _ => Err(errors::ConnectorError::NotImplemented("Payment method".to_string()).into()), } } diff --git a/crates/router/src/types/transformers.rs b/crates/router/src/types/transformers.rs index 4335aece5c..0ca51fe51d 100644 --- a/crates/router/src/types/transformers.rs +++ b/crates/router/src/types/transformers.rs @@ -175,6 +175,7 @@ impl ForeignFrom for api_enums::PaymentMethod { | api_enums::PaymentMethodType::MobilePay | api_enums::PaymentMethodType::SamsungPay | api_enums::PaymentMethodType::Twint + | api_enums::PaymentMethodType::Vipps | api_enums::PaymentMethodType::WeChatPay | api_enums::PaymentMethodType::GoPay | api_enums::PaymentMethodType::Gcash diff --git a/openapi/openapi_spec.json b/openapi/openapi_spec.json index 911279bbf9..d1dfb1550b 100644 --- a/openapi/openapi_spec.json +++ b/openapi/openapi_spec.json @@ -6839,6 +6839,7 @@ "trustly", "twint", "upi_collect", + "vipps", "walley", "we_chat_pay" ] @@ -9090,6 +9091,18 @@ } } }, + { + "type": "object", + "required": [ + "vipps_redirect" + ], + "properties": { + "vipps_redirect": { + "type": "object", + "description": "Wallet data for Vipps Redirection" + } + } + }, { "type": "object", "required": [