javascript - 在 Stripe 自定义结帐流程后提交表格

标签 javascript forms stripe-payments

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

我很确定代码应该在函数( token )之后。 strip 结帐表单关闭且表单未提交。

我的表格:

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

我的 Strip 结帐:

<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>

最佳答案

这里的想法是在 token 回调中检索卡片 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();
    }
});

关于javascript - 在 Stripe 自定义结帐流程后提交表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29761718/

相关文章:

javascript - 从表单预填充 Stripe Checkout 中的电子邮件

javascript - 从addEventListener()调用函数

javascript - 检查 GridView 中的复选框是否被选中

javascript - window.onunload() 在 Firefox 中不起作用?在 IE 中工作吗?

php - SQL 错误 : SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails

javascript - 获取 Stripe 调用以在 GraphQL 架构中解析

Javascript 空字段验证 - 无法读取未定义的属性 'value'

javascript - Formik + React Form 中的下拉列表和值未更新

javascript - 防止表单以引导表单提交

ios - Stripe Basic PaymentIntent 确认付款错误