feat(klarna): wallet payment through klarna (#182)

This commit is contained in:
Narayan Bhat
2022-12-23 00:59:18 +05:30
committed by GitHub
parent 5477cc98ff
commit 06a3c38bd4
14 changed files with 351 additions and 53 deletions

View File

@ -14,6 +14,11 @@ pub enum PaymentOp {
Confirm,
}
#[derive(Default, Debug, serde::Deserialize, serde::Serialize, Clone)]
pub struct Metadata {
pub order_details: OrderDetails,
}
#[derive(Default, Debug, serde::Deserialize, serde::Serialize, Clone)]
#[serde(deny_unknown_fields)]
pub struct PaymentsRequest {
@ -210,10 +215,30 @@ pub struct CCard {
pub card_cvc: Secret<String>,
}
#[derive(Default, Eq, PartialEq, Clone, Debug, serde::Deserialize, serde::Serialize)]
pub struct PayLaterData {
pub billing_email: String,
pub country: String,
#[derive(Eq, PartialEq, Clone, Debug, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "snake_case")]
pub enum KlarnaRedirectIssuer {
Stripe,
}
#[derive(Eq, PartialEq, Clone, Debug, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "snake_case")]
pub enum KlarnaSdkIssuer {
Klarna,
}
#[derive(Eq, PartialEq, Clone, Debug, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "snake_case")]
pub enum PayLaterData {
KlarnaRedirect {
issuer_name: KlarnaRedirectIssuer,
billing_email: String,
billing_country: String,
},
KlarnaSdk {
issuer_name: KlarnaSdkIssuer,
token: String,
},
}
#[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
@ -704,7 +729,22 @@ pub struct PaymentsRetrieveRequest {
pub connector: Option<String>,
}
#[derive(Default, Debug, serde::Deserialize, Clone)]
#[derive(Debug, serde::Deserialize, Clone)]
#[serde(rename_all = "snake_case")]
pub enum SupportedWallets {
Paypal,
ApplePay,
Klarna,
Gpay,
}
#[derive(Debug, Default, serde::Deserialize, serde::Serialize, Clone)]
pub struct OrderDetails {
pub product_name: String,
pub quantity: u16,
}
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)]
pub struct PaymentsSessionRequest {
pub payment_id: String,
pub client_secret: String,