Skip to content

Commit

Permalink
chore: Add samsung pay payment method support for cybersource (#6424)
Browse files Browse the repository at this point in the history
  • Loading branch information
JeevaRamu0104 authored Oct 24, 2024
1 parent 842c4a2 commit ecaf700
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 29 deletions.
2 changes: 1 addition & 1 deletion crates/connector_configs/src/common_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ pub enum InputType {
#[serde_with::skip_serializing_none]
#[derive(Debug, Deserialize, serde::Serialize, Clone)]
#[serde(rename_all = "snake_case")]
pub struct MetaDataInupt {
pub struct InputData {
pub name: String,
pub label: String,
pub placeholder: String,
Expand Down
63 changes: 35 additions & 28 deletions crates/connector_configs/src/connector.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use serde::Deserialize;
#[cfg(any(feature = "sandbox", feature = "development", feature = "production"))]
use toml;

use crate::common_config::{CardProvider, MetaDataInupt, Provider, ZenApplePay};
use crate::common_config::{CardProvider, InputData, Provider, ZenApplePay};

#[derive(Default, Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Classic {
Expand Down Expand Up @@ -83,38 +83,44 @@ pub enum KlarnaEndpoint {
#[serde_with::skip_serializing_none]
#[derive(Debug, Deserialize, serde::Serialize, Clone)]
pub struct ConfigMerchantAdditionalDetails {
pub open_banking_recipient_data: Option<MetaDataInupt>,
pub account_data: Option<MetaDataInupt>,
pub iban: Option<Vec<MetaDataInupt>>,
pub bacs: Option<Vec<MetaDataInupt>>,
pub connector_recipient_id: Option<MetaDataInupt>,
pub wallet_id: Option<MetaDataInupt>,
pub open_banking_recipient_data: Option<InputData>,
pub account_data: Option<InputData>,
pub iban: Option<Vec<InputData>>,
pub bacs: Option<Vec<InputData>>,
pub connector_recipient_id: Option<InputData>,
pub wallet_id: Option<InputData>,
}

#[serde_with::skip_serializing_none]
#[derive(Debug, Deserialize, serde::Serialize, Clone)]
pub struct ConfigMetadata {
pub merchant_config_currency: Option<MetaDataInupt>,
pub merchant_account_id: Option<MetaDataInupt>,
pub account_name: Option<MetaDataInupt>,
pub terminal_id: Option<MetaDataInupt>,
pub google_pay: Option<Vec<MetaDataInupt>>,
pub apple_pay: Option<Vec<MetaDataInupt>>,
pub merchant_id: Option<MetaDataInupt>,
pub endpoint_prefix: Option<MetaDataInupt>,
pub mcc: Option<MetaDataInupt>,
pub merchant_country_code: Option<MetaDataInupt>,
pub merchant_name: Option<MetaDataInupt>,
pub acquirer_bin: Option<MetaDataInupt>,
pub acquirer_merchant_id: Option<MetaDataInupt>,
pub acquirer_country_code: Option<MetaDataInupt>,
pub three_ds_requestor_name: Option<MetaDataInupt>,
pub three_ds_requestor_id: Option<MetaDataInupt>,
pub pull_mechanism_for_external_3ds_enabled: Option<MetaDataInupt>,
pub klarna_region: Option<MetaDataInupt>,
pub source_balance_account: Option<MetaDataInupt>,
pub brand_id: Option<MetaDataInupt>,
pub destination_account_number: Option<MetaDataInupt>,
pub merchant_config_currency: Option<InputData>,
pub merchant_account_id: Option<InputData>,
pub account_name: Option<InputData>,
pub terminal_id: Option<InputData>,
pub google_pay: Option<Vec<InputData>>,
pub apple_pay: Option<Vec<InputData>>,
pub merchant_id: Option<InputData>,
pub endpoint_prefix: Option<InputData>,
pub mcc: Option<InputData>,
pub merchant_country_code: Option<InputData>,
pub merchant_name: Option<InputData>,
pub acquirer_bin: Option<InputData>,
pub acquirer_merchant_id: Option<InputData>,
pub acquirer_country_code: Option<InputData>,
pub three_ds_requestor_name: Option<InputData>,
pub three_ds_requestor_id: Option<InputData>,
pub pull_mechanism_for_external_3ds_enabled: Option<InputData>,
pub klarna_region: Option<InputData>,
pub source_balance_account: Option<InputData>,
pub brand_id: Option<InputData>,
pub destination_account_number: Option<InputData>,
}

#[serde_with::skip_serializing_none]
#[derive(Debug, Deserialize, serde::Serialize, Clone)]
pub struct ConnectorWalletDetailsConfig {
pub samsung_pay: Option<Vec<InputData>>,
}

#[serde_with::skip_serializing_none]
Expand All @@ -123,6 +129,7 @@ pub struct ConnectorTomlConfig {
pub connector_auth: Option<ConnectorAuthType>,
pub connector_webhook_details: Option<api_models::admin::MerchantConnectorWebhookDetails>,
pub metadata: Option<Box<ConfigMetadata>>,
pub connector_wallets_details: Option<Box<ConnectorWalletDetailsConfig>>,
pub additional_merchant_data: Option<Box<ConfigMerchantAdditionalDetails>>,
pub credit: Option<Vec<CardProvider>>,
pub debit: Option<Vec<CardProvider>>,
Expand Down
29 changes: 29 additions & 0 deletions crates/connector_configs/toml/development.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1215,6 +1215,8 @@ merchant_secret="Source verification key"
payment_method_type = "google_pay"
[[cybersource.wallet]]
payment_method_type = "paze"
[[cybersource.wallet]]
payment_method_type = "samsung_pay"
[cybersource.connector_auth.SignatureKey]
api_key="Key"
key1="Merchant ID"
Expand Down Expand Up @@ -1296,6 +1298,33 @@ placeholder="Enter Google Pay Merchant Key"
required=true
type="Text"

[[cybersource.connector_wallets_details.samsung_pay]]
name="service_id"
label="Samsung Pay Service Id"
placeholder="Enter Samsung Pay Service Id"
required=true
type="Text"
[[cybersource.connector_wallets_details.samsung_pay]]
name="merchant_display_name"
label="Display Name"
placeholder="Enter Display Name"
required=true
type="Text"
[[cybersource.connector_wallets_details.samsung_pay]]
name="merchant_business_country"
label="Merchant Business Country"
placeholder="Enter Merchant Business Country"
required=true
type="Select"
options=[]
[[cybersource.connector_wallets_details.samsung_pay]]
name="allowed_brands"
label="Allowed Brands"
placeholder="Enter Allowed Brands"
required=true
type="MultiSelect"
options=["visa","masterCard","amex","discover"]

[cybersource.metadata.acquirer_bin]
name="acquirer_bin"
label="Acquirer Bin"
Expand Down

0 comments on commit ecaf700

Please sign in to comment.