首页 > 解决方案 > 我如何在 stripe / checkout.js 上集成输入(而不是按钮)?

问题描述

我在一个简单的结帐表单上的遗留代码中间,它与我试图与 Stripe 集成的结帐工作正常;这是有效的遗留代码:

<form method="post" name="submit_order" action="40_SubmitOrder.asp" class="text-center">

<script>
$(document).ready(function() {
 $('input#SubmitOrder').click(function() {
  $(this).val('please wait...');
  });
});
</script>

<input class="btn btn-default default-btn" type="submit" name="SubmitOrder" id="SubmitOrder" value="buy stuff">

..我尝试使用 Stripe 的 checkout.js 对此进行变体作为按钮,但它不起作用:

  <form method="post" name="submit_order" action="40_SubmitOrder.asp" class="text-center">

    <script>
    $(document).ready(function() {
     $('input#SubmitOrder').click(function() {
      $(this).val('please wait...');
      });
    });
    </script>

    <button class="btn btn-default default-btn" type="submit" name="SubmitOrder" id="SubmitOrder">buy stuff</button>            

.. Stripe 弹出窗口看起来不错,但表单未提交。我已经尝试过 form.submit() 的变体,但没有运气。而且我也在尝试在不使用 jquery 的情况下执行此操作(出于遗留原因)。

这是我目前在此表单下方使用的 Stripe JS:

<script src="https://checkout.stripe.com/checkout.js"></script>

<script>
var handler = StripeCheckout.configure({
  key: 'pk_test_mytestkey',
  image: 'https://stripe.com/img/documentation/checkout/marketplace.png',
  locale: 'auto',
  token: function(token) {
    // nothing here yet
  }
});

document.getElementById('SubmitOrder').addEventListener('click', function(e) {
  // Open Checkout with further options:
  handler.open({
    name: 'legacy checkout site',
    description: '2 widgets',
    amount: 2000
  });
   e.preventDefault();
});

// Close Checkout on page navigation:
window.addEventListener('popstate', function() {
  handler.close();
});
</script>

有没有办法做到这一点,而不必对 Stripe API 进行更深入的研究?谢谢!

标签: javascriptformsstripe-payments

解决方案


推荐阅读