mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 09:07:09 +08:00
feat(payment_link): Add support for saved payment method option for payment link (#4373)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -1,8 +1,8 @@
|
||||
use api_models::{admin as admin_types, payments::PaymentLinkStatusWrap};
|
||||
use common_utils::{
|
||||
consts::{
|
||||
DEFAULT_BACKGROUND_COLOR, DEFAULT_DISPLAY_SDK_ONLY, DEFAULT_MERCHANT_LOGO,
|
||||
DEFAULT_PRODUCT_IMG, DEFAULT_SDK_LAYOUT, DEFAULT_SESSION_EXPIRY,
|
||||
DEFAULT_BACKGROUND_COLOR, DEFAULT_DISPLAY_SDK_ONLY, DEFAULT_ENABLE_SAVED_PAYMENT_METHOD,
|
||||
DEFAULT_MERCHANT_LOGO, DEFAULT_PRODUCT_IMG, DEFAULT_SDK_LAYOUT, DEFAULT_SESSION_EXPIRY,
|
||||
},
|
||||
ext_traits::{OptionExt, ValueExt},
|
||||
};
|
||||
@ -87,6 +87,7 @@ pub async fn initiate_payment_link_flow(
|
||||
seller_name: merchant_name_from_merchant_account,
|
||||
sdk_layout: DEFAULT_SDK_LAYOUT.to_owned(),
|
||||
display_sdk_only: DEFAULT_DISPLAY_SDK_ONLY,
|
||||
enabled_saved_payment_method: DEFAULT_ENABLE_SAVED_PAYMENT_METHOD,
|
||||
}
|
||||
};
|
||||
|
||||
@ -215,6 +216,7 @@ pub async fn initiate_payment_link_flow(
|
||||
merchant_description: payment_intent.description,
|
||||
sdk_layout: payment_link_config.sdk_layout.clone(),
|
||||
display_sdk_only: payment_link_config.display_sdk_only,
|
||||
enabled_saved_payment_method: payment_link_config.enabled_saved_payment_method,
|
||||
};
|
||||
|
||||
let js_script = get_js_script(&api_models::payments::PaymentLinkData::PaymentLinkDetails(
|
||||
@ -453,12 +455,24 @@ pub fn get_payment_link_config_based_on_priority(
|
||||
})
|
||||
.unwrap_or(DEFAULT_DISPLAY_SDK_ONLY);
|
||||
|
||||
let enabled_saved_payment_method = payment_create_link_config
|
||||
.as_ref()
|
||||
.and_then(|pc_config| {
|
||||
pc_config.config.enabled_saved_payment_method.or_else(|| {
|
||||
business_config
|
||||
.as_ref()
|
||||
.and_then(|business_config| business_config.enabled_saved_payment_method)
|
||||
})
|
||||
})
|
||||
.unwrap_or(DEFAULT_ENABLE_SAVED_PAYMENT_METHOD);
|
||||
|
||||
let payment_link_config = admin_types::PaymentLinkConfig {
|
||||
theme,
|
||||
logo,
|
||||
seller_name,
|
||||
sdk_layout,
|
||||
display_sdk_only,
|
||||
enabled_saved_payment_method,
|
||||
};
|
||||
|
||||
Ok((payment_link_config, domain_name))
|
||||
@ -536,6 +550,7 @@ pub async fn get_payment_link_status(
|
||||
seller_name: merchant_name_from_merchant_account,
|
||||
sdk_layout: DEFAULT_SDK_LAYOUT.to_owned(),
|
||||
display_sdk_only: DEFAULT_DISPLAY_SDK_ONLY,
|
||||
enabled_saved_payment_method: DEFAULT_ENABLE_SAVED_PAYMENT_METHOD,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -417,9 +417,11 @@ function initializeSDK() {
|
||||
? "accordion"
|
||||
: paymentDetails.sdk_layout;
|
||||
|
||||
var enabledSavedPaymentMethod = paymentDetails.enabledSavedPaymentMethod;
|
||||
|
||||
var unifiedCheckoutOptions = {
|
||||
displaySavedPaymentMethodsCheckbox: false,
|
||||
displaySavedPaymentMethods: false,
|
||||
displaySavedPaymentMethodsCheckbox: enabledSavedPaymentMethod,
|
||||
displaySavedPaymentMethods: enabledSavedPaymentMethod,
|
||||
layout: {
|
||||
type: type, //accordion , tabs, spaced accordion
|
||||
spacedAccordionItems: paymentDetails.sdk_layout === "spaced_accordion",
|
||||
|
||||
Reference in New Issue
Block a user