mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 09:07:09 +08:00
feat(payment_link): expose configurations for payment links (#7742)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -139,6 +139,9 @@ pub async fn form_payment_link_data(
|
||||
sdk_ui_rules: None,
|
||||
payment_link_ui_rules: None,
|
||||
enable_button_only_on_form_ready: DEFAULT_ENABLE_BUTTON_ONLY_ON_FORM_READY,
|
||||
payment_form_header_text: None,
|
||||
payment_form_label_type: None,
|
||||
show_card_terms: None,
|
||||
}
|
||||
};
|
||||
|
||||
@ -296,6 +299,9 @@ pub async fn form_payment_link_data(
|
||||
payment_link_ui_rules: payment_link_config.payment_link_ui_rules.clone(),
|
||||
status: payment_intent.status,
|
||||
enable_button_only_on_form_ready: payment_link_config.enable_button_only_on_form_ready,
|
||||
payment_form_header_text: payment_link_config.payment_form_header_text.clone(),
|
||||
payment_form_label_type: payment_link_config.payment_form_label_type,
|
||||
show_card_terms: payment_link_config.show_card_terms,
|
||||
};
|
||||
|
||||
Ok((
|
||||
@ -356,6 +362,9 @@ pub async fn initiate_secure_payment_link_flow(
|
||||
payment_link_ui_rules: payment_link_config.payment_link_ui_rules,
|
||||
enable_button_only_on_form_ready: payment_link_config
|
||||
.enable_button_only_on_form_ready,
|
||||
payment_form_header_text: payment_link_config.payment_form_header_text,
|
||||
payment_form_label_type: payment_link_config.payment_form_label_type,
|
||||
show_card_terms: payment_link_config.show_card_terms,
|
||||
};
|
||||
let js_script = format!(
|
||||
"window.__PAYMENT_DETAILS = {}",
|
||||
@ -674,6 +683,9 @@ pub fn get_payment_link_config_based_on_priority(
|
||||
payment_button_text_colour,
|
||||
sdk_ui_rules,
|
||||
payment_link_ui_rules,
|
||||
payment_form_header_text,
|
||||
payment_form_label_type,
|
||||
show_card_terms,
|
||||
) = get_payment_link_config_value!(
|
||||
payment_create_link_config,
|
||||
business_theme_configs,
|
||||
@ -688,6 +700,9 @@ pub fn get_payment_link_config_based_on_priority(
|
||||
(payment_button_text_colour),
|
||||
(sdk_ui_rules),
|
||||
(payment_link_ui_rules),
|
||||
(payment_form_header_text),
|
||||
(payment_form_label_type),
|
||||
(show_card_terms),
|
||||
);
|
||||
|
||||
let payment_link_config =
|
||||
@ -716,6 +731,9 @@ pub fn get_payment_link_config_based_on_priority(
|
||||
sdk_ui_rules,
|
||||
payment_link_ui_rules,
|
||||
enable_button_only_on_form_ready,
|
||||
payment_form_header_text,
|
||||
payment_form_label_type,
|
||||
show_card_terms,
|
||||
};
|
||||
|
||||
Ok((payment_link_config, domain_name))
|
||||
@ -827,6 +845,9 @@ pub async fn get_payment_link_status(
|
||||
sdk_ui_rules: None,
|
||||
payment_link_ui_rules: None,
|
||||
enable_button_only_on_form_ready: DEFAULT_ENABLE_BUTTON_ONLY_ON_FORM_READY,
|
||||
payment_form_header_text: None,
|
||||
payment_form_label_type: None,
|
||||
show_card_terms: None,
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ function initializeSDK() {
|
||||
var paymentDetails = window.__PAYMENT_DETAILS;
|
||||
var clientSecret = paymentDetails.client_secret;
|
||||
var sdkUiRules = paymentDetails.sdk_ui_rules;
|
||||
var labelType = paymentDetails.payment_form_label_type;
|
||||
var appearance = {
|
||||
variables: {
|
||||
colorPrimary: paymentDetails.theme || "rgb(0, 109, 249)",
|
||||
@ -25,9 +26,12 @@ function initializeSDK() {
|
||||
colorBackground: "rgb(255, 255, 255)",
|
||||
},
|
||||
};
|
||||
if (sdkUiRules !== null && typeof sdkUiRules === "object" && Object.getPrototypeOf(sdkUiRules) === Object.prototype) {
|
||||
if (isObject(sdkUiRules)) {
|
||||
appearance.rules = sdkUiRules;
|
||||
}
|
||||
if (labelType !== null && typeof labelType === "string") {
|
||||
appearance.labels = labelType;
|
||||
}
|
||||
// @ts-ignore
|
||||
hyper = window.Hyper(pub_key, {
|
||||
isPreloadEnabled: false,
|
||||
@ -70,11 +74,18 @@ function initializeSDK() {
|
||||
hideCardNicknameField: hideCardNicknameField,
|
||||
customMessageForCardTerms: paymentDetails.custom_message_for_card_terms,
|
||||
};
|
||||
// @ts-ignore
|
||||
var showCardTerms = paymentDetails.show_card_terms;
|
||||
if (showCardTerms !== null && typeof showCardTerms === "string") {
|
||||
unifiedCheckoutOptions.terms = {
|
||||
card: showCardTerms
|
||||
};
|
||||
}
|
||||
var paymentMethodsHeaderText = paymentDetails.payment_form_header_text;
|
||||
if (paymentMethodsHeaderText !== null && typeof paymentMethodsHeaderText === "string") {
|
||||
unifiedCheckoutOptions.paymentMethodsHeaderText = paymentMethodsHeaderText;
|
||||
}
|
||||
unifiedCheckout = widgets.create("payment", unifiedCheckoutOptions);
|
||||
// @ts-ignore
|
||||
mountUnifiedCheckout("#unified-checkout");
|
||||
// @ts-ignore
|
||||
showSDK(paymentDetails.display_sdk_only, paymentDetails.enable_button_only_on_form_ready);
|
||||
|
||||
let shimmer = document.getElementById("payment-details-shimmer");
|
||||
|
||||
@ -33,6 +33,7 @@ if (!isFramed) {
|
||||
var paymentDetails = window.__PAYMENT_DETAILS;
|
||||
var clientSecret = paymentDetails.client_secret;
|
||||
var sdkUiRules = paymentDetails.sdk_ui_rules;
|
||||
var labelType = paymentDetails.payment_form_label_type;
|
||||
var appearance = {
|
||||
variables: {
|
||||
colorPrimary: paymentDetails.theme || "rgb(0, 109, 249)",
|
||||
@ -46,9 +47,12 @@ if (!isFramed) {
|
||||
colorBackground: "rgb(255, 255, 255)",
|
||||
},
|
||||
};
|
||||
if (sdkUiRules !== null && typeof sdkUiRules === "object" && Object.getPrototypeOf(sdkUiRules) === Object.prototype) {
|
||||
if (isObject(sdkUiRules)) {
|
||||
appearance.rules = sdkUiRules;
|
||||
}
|
||||
if (labelType !== null && typeof labelType === "string") {
|
||||
appearance.labels = labelType;
|
||||
}
|
||||
// @ts-ignore
|
||||
hyper = window.Hyper(pub_key, {
|
||||
isPreloadEnabled: false,
|
||||
@ -93,11 +97,19 @@ if (!isFramed) {
|
||||
showCardFormByDefault: paymentDetails.show_card_form_by_default,
|
||||
customMessageForCardTerms: paymentDetails.custom_message_for_card_terms,
|
||||
};
|
||||
// @ts-ignore
|
||||
var showCardTerms = paymentDetails.show_card_terms;
|
||||
if (showCardTerms !== null && typeof showCardTerms === "string") {
|
||||
unifiedCheckoutOptions.terms = {
|
||||
card: showCardTerms
|
||||
};
|
||||
}
|
||||
var paymentMethodsHeaderText = paymentDetails.payment_form_header_text;
|
||||
if (paymentMethodsHeaderText !== null && typeof paymentMethodsHeaderText === "string") {
|
||||
unifiedCheckoutOptions.paymentMethodsHeaderText = paymentMethodsHeaderText;
|
||||
}
|
||||
|
||||
unifiedCheckout = widgets.create("payment", unifiedCheckoutOptions);
|
||||
// @ts-ignore
|
||||
mountUnifiedCheckout("#unified-checkout");
|
||||
// @ts-ignore
|
||||
showSDK(paymentDetails.display_sdk_only, paymentDetails.enable_button_only_on_form_ready);
|
||||
|
||||
let shimmer = document.getElementById("payment-details-shimmer");
|
||||
|
||||
@ -4529,6 +4529,9 @@ impl ForeignFrom<api_models::admin::PaymentLinkConfigRequest>
|
||||
sdk_ui_rules: config.sdk_ui_rules,
|
||||
payment_link_ui_rules: config.payment_link_ui_rules,
|
||||
enable_button_only_on_form_ready: config.enable_button_only_on_form_ready,
|
||||
payment_form_header_text: config.payment_form_header_text,
|
||||
payment_form_label_type: config.payment_form_label_type,
|
||||
show_card_terms: config.show_card_terms,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4600,6 +4603,9 @@ impl ForeignFrom<diesel_models::PaymentLinkConfigRequestForPayments>
|
||||
sdk_ui_rules: config.sdk_ui_rules,
|
||||
payment_link_ui_rules: config.payment_link_ui_rules,
|
||||
enable_button_only_on_form_ready: config.enable_button_only_on_form_ready,
|
||||
payment_form_header_text: config.payment_form_header_text,
|
||||
payment_form_label_type: config.payment_form_label_type,
|
||||
show_card_terms: config.show_card_terms,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -152,7 +152,7 @@ pub async fn customers_list(
|
||||
let flow = Flow::CustomersList;
|
||||
let payload = query.into_inner();
|
||||
|
||||
api::server_wrap(
|
||||
Box::pin(api::server_wrap(
|
||||
flow,
|
||||
state,
|
||||
&req,
|
||||
@ -174,7 +174,7 @@ pub async fn customers_list(
|
||||
req.headers(),
|
||||
),
|
||||
api_locking::LockAction::NotApplicable,
|
||||
)
|
||||
))
|
||||
.await
|
||||
}
|
||||
#[cfg(all(any(feature = "v1", feature = "v2"), not(feature = "customer_v2")))]
|
||||
|
||||
@ -2188,6 +2188,9 @@ impl ForeignFrom<api_models::admin::PaymentLinkConfigRequest>
|
||||
sdk_ui_rules: item.sdk_ui_rules,
|
||||
payment_link_ui_rules: item.payment_link_ui_rules,
|
||||
enable_button_only_on_form_ready: item.enable_button_only_on_form_ready,
|
||||
payment_form_header_text: item.payment_form_header_text,
|
||||
payment_form_label_type: item.payment_form_label_type,
|
||||
show_card_terms: item.show_card_terms,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2219,6 +2222,9 @@ impl ForeignFrom<diesel_models::business_profile::PaymentLinkConfigRequest>
|
||||
sdk_ui_rules: item.sdk_ui_rules,
|
||||
payment_link_ui_rules: item.payment_link_ui_rules,
|
||||
enable_button_only_on_form_ready: item.enable_button_only_on_form_ready,
|
||||
payment_form_header_text: item.payment_form_header_text,
|
||||
payment_form_label_type: item.payment_form_label_type,
|
||||
show_card_terms: item.show_card_terms,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user