有没有办法在条纹结账模式关闭时触发事件?
在Stripe的模式关闭和它们的响应被发送之间大约有0.5-1秒的延迟。为了解决这个问题,我们可以做一些事情,比如禁用所有链接或在页面上放置一个覆盖("cover- all "),只有在处理完毕后才会将其移除。
问题是,如果用户决定关闭条纹模式(而不是尝试处理付款),则无法关闭覆盖。由于同源策略,您不能以模式为目标(例如$('.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;
});发布于 2013-06-15 00:14:42
根据@brian的评论,已确认延迟发生在返回条纹令牌之后和提交表单之前。要解决原始问题,请在返回令牌后根据需要添加overlay和/或禁用元素。
// custom Stripe checkout button with disabling of links/buttons until form is submitted
$('.btn-stripe').click(function(){
var token = function(res){
var $input = $('<input type=hidden name=stripeToken />').val(res.id);
// show processing message, disable links and buttons until form is submitted and reloads
$('a').bind("click", function() { return false; });
$('button').addClass('disabled');
$('.overlay-container').show();
// submit form
$('.form-stripe').append($input).submit();
};
StripeCheckout.open({
key: 'key',
address: false,
amount: 1000,
currency: 'usd',
name: 'Purchase',
description: 'Description',
panelLabel: 'Checkout',
token: token
});
return false;
});发布于 2014-12-24 18:53:34
处理这个问题的最好方法可能是在处理过程中显示一个微调器或其他东西。
Closed是一种由条带提供的选项,用于自定义集成。每当通过单击X按钮提交或关闭表单时,都会调用它。希望这能对你有所帮助。
eg: handler.open({closed : function(){/* some function here*/}})
https://stackoverflow.com/questions/17076287
复制相似问题