【发布时间】:2013-06-09 04:51:12
【问题描述】:
有什么方法可以在 Stripe Checkout 模式关闭时触发事件?
在 Stripe 的模态关闭和响应交付之间大约有 0.5-1 秒的延迟。在那个时候,用户可能会点击离开页面等。为了解决这个问题,我们可以做一些事情,比如禁用所有链接或在页面上放置一个覆盖(“覆盖所有”),只有在 Stripe 完成处理后才会删除.
问题在于,如果该人决定关闭 Stripe 模式(而不是尝试处理付款),则无法关闭该覆盖。由于相同的来源政策,您无法定位模式(例如 $('.stripe-app'))。
还有其他的想法吗?
我的代码如下,改编自https://stripe.com/docs/checkout。
// custom Stripe checkout button with custom overlay to avoid UI confusion during payment processing
$('.btn-stripe').click(function(){
var token = function(res){
var $input = $('<input type=hidden name=stripeToken />').val(res.id);
$('.form-stripe').append($input).submit();
};
StripeCheckout.open({
key: STRIPE_KEY,
address: false,
amount: STRIPE_AMT,
currency: 'usd',
name: 'Purchase',
description: STRIPE_DESC,
panelLabel: 'Checkout',
token: token
});
$('.cover-all').show();
return false;
});
【问题讨论】:
-
那里不应该有延迟。我们在模式关闭之前调用您的令牌回调。您可以在收到此回调后禁用您的提交按钮。您确定延迟不在于您提交表单吗?
-
我们看到了同样的问题,但没有看到上面 Brian 提到的行为 - 对我们来说,在 Stripe 模态完成关闭后调用令牌函数,这大约需要 1 秒,所以我们'没有很好的方法来禁用按钮。也许我们设置错了?
标签: javascript jquery stripe-payments