首页 文章

条纹自定义结帐流程后提交表单

提问于
浏览
1

我正在使用Stripe Custom Checkout . 成功收费后,我正试图让表格自动提交 . 我知道表单有效,但我无法在条带结帐流程后提交表单 .

我很确定代码应该在函数(令牌)之后 . 条带结帐表单关闭,表单未提交 .

我的表格:

<form name="regform" id="regform" action="[[~[[*id]]]]" method="post" class="form">..Lots of data......<input type="submit" name="regform" id="regform" value="Register"> </form>

我的地带结账:

<script src="https://checkout.stripe.com/checkout.js"></script>
<button id="customButton">Purchase</button>
<script>
var handler = StripeCheckout.configure({
key: 'pk_test_zizizizizizizizizzizi',
image: '/images/VR-logo.png',
token: function(token) {
document.getElementById("regform").submit();
// Use the token to create the charge with a server-side script.
// You can access the token ID with `token.id`
}
});

$('#customButton').on('click', function(e) {
  var grtotal;
  grtotal = document.getElementById('total').value;
      // Open Checkout with further options
handler.open({
  name: 'Verticle Runner',
  description: '[[!+fi.pagetitle]]',
  amount: parseInt(grtotal * 100),
  email: "[[+modx.user.id:userinfo=`email`]]"
});
e.preventDefault();
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
  handler.close();
});

</script>

3 回答

  • 5

    这里的想法是在 token 回调中检索卡片令牌,然后从那里提交表单 .

    我们假设你有以下形式:

    <form id="myForm" action="XXXXXX" method="POST">
        <input type="text" id="amount" name="amount"/>
        <input type="hidden" id="stripeToken" name="stripeToken"/>
        <input type="hidden" id="stripeEmail" name="stripeEmail"/>
    </form>
    

    然后您对 StripeCheckout.configure() 的调用可能是这样的:

    var handler = StripeCheckout.configure({
        key: 'pk_test_XXX',
        image: '/square-image.png',
        token: function(token) {
            $("#stripeToken").val(token.id);
            $("#stripeEmail").val(token.email);
            $("#myForm").submit();
        }
    });
    
  • 0

    确保您的提交按钮没有“提交”的名称 . 花了我大约6个小时来计算出那一个 .

  • 1

    我有同样的问题 .

    我的问题是我在表单中有2个按钮 . 其中一个是 type=submit ,另一个没有定义 type . 我修复了它定义 type=button .

相关问题