Задать пользовательскую сумму оформления чека из параметра GET
Я не могу понять, просто хочу передать на страницу оформления заказа значение в качестве параметра GET
чтобы https://xxxxxx/?setAmount=200000 на страницу с этим скриптом
<form action="custom action" method="POST">
<script
let params = new URLSearchParams(document.location.search.substring(1));
let amount=params.get(setAmount);
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_UUbDY16wDCECOujIs0vQ2vTi"
data-amount=amount;
data-name="Company"
data-description="Widget"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-zip-code="true"
data-currency="eur">
</script>
</form>
Кнопка извлечения показывает, но не получает параметр количества, так что сумма не определена. У меня не было доступа к серверной стороне на сервере, на котором размещен веб-сайт с помощью кнопки, поэтому мне нужно перейти на другой сайт с помощью Podio Globiflow.
1 ответ
Stripe Checkout поддерживает два режима - Простой и Пользовательский. Пользовательский позволяет контролировать всплывающие окна с помощью JavaScript, а не свойств данных, установленных на сервере. Чтобы получить поведение, которое вы ищете, вы можете сделать что-то вроде этого:
$('#customButton').on('click', function(e) {
const params = new URLSearchParams(document.location.search)
const amountInCents = params.get("amount")
const displayAmount = parseFloat(amountInCents / 100).toFixed(2);
// Open Checkout with further options
handler.open({
name: 'Demo Site',
description: 'Custom amount ($' + displayAmount + ')',
amount: amountInCents,
});
e.preventDefault();
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
Стоит отметить, что эта сумма не влияет на то, сколько вы фактически взимаете с Клиента, и предназначена только для демонстрации. Checkout токенизирует данные карты; Заряженная сумма полностью контролируется серверной логикой, как указано в официальных документах Stripe.