我已将Stripe Checkout集成到我的网站中,除了一个方面外,一切都很有效。我使用'简单'结帐模式,Stripe为我呈现我的结账按钮。但我认为在文档中没有办法检测用户是否点击了关闭按钮(实际取消了交易 - 见图片)。
有没有办法在'简单'模式下检测到这个(而不是自定义)?
答案 0 :(得分:21)
嗯,你不能有一个回调,但是当条纹从你的DOM中移除iframe时,如果你创建自己的回调呢。
$(document).on("DOMNodeRemoved",".stripe_checkout_app", close);
function close(){
alert("close stripe");
}
所以尽管'封闭'的回调是不可用的,但这个小黑客可以帮助你。
//这个例子用JQuery。
---编辑---
正如@artfulhacker所评论的另一种方法是使用setInterval计时器并检查类.stripe_checkout_app
是否为visible
,可能是这样的:
setInterval(function(){
if(!$('.stripe_checkout_app').is(":visible")){
alert("Stripe modal is hidden");
}
},1000)
答案 1 :(得分:11)
(我在Stripe Checkout工作)
“关闭”回调仅适用于custom integration。
答案 2 :(得分:10)
我找到的最简单的方法就是设置一个经过测试的提交变量。
var submittedForm = false;
var handler = StripeCheckout.configure({
key: '{{ stripe.public_key }}',
allowRememberMe: false,
token: function(response, extradata) {
var token = response.id;
var card = response.card.id;
submittedForm = true;
$('#submit-text').html('Processing, stand by');
//etc functionality to submit back to your own form
}
});
//when actually triggering checkout.js
handler.open({
name: 'myCompanyName',
amount: 1999,
closed: function () {
if(submittedForm == false)
$('#submit-text').html('Start your Trial');
}
}
});
此示例在启动checkout.js时更改“提交”按钮文本。如果它实际处理,那么我们得到一个令牌,设置提交为true。关闭测试这个。如果它是假的,则意味着他们在没有提交的情况下点击了X,因此我们将提交文本设置回来。如果是,则忽略所以"处理"在我们自己的ajax帖子或任何结束时仍然存在。