Задать пользовательскую сумму оформления чека из параметра 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.

Другие вопросы по тегам