我正在做一些测试,刚刚在我的网站中发现一个错误。我收集用户的付款信息,但不向他们收费。这使他们可以免费试用。
问题是来自meteor(在客户端)的响应是一个很好的200 OK,并且它不会抛出任何错误。但在客户端,我确实遇到了错误,并且客户没有得到保存。因此,即使没有保存付款信息, meteor 也会接受“付款”并创建帐户。
有人遇到过这种情况吗?任何人都可以让我知道如何解决它,我将不胜感激!
这是客户端代码:
Stripe.card.createToken({
number: cardNumber,
cvc: secCode,
exp_month: expMonth,
exp_year: expYear
}, function(status, response) {
console.log(status, response);
if (response.error){
alert(response.error.message);
throw error
}
else {
stripeToken = response.id;
createTheUser(stripeToken);
}
});
服务器端错误:
Unhandled rejection Error: Your card's security code is incorrect.
最佳答案
当您使用 Stripe.js 创建 token 时Stripe.card.createToken()
函数,Stripe 不会根据银行网络检查卡。它仅检查卡的详细信息是否明显无效(正确的位数、 future 的到期日期等)。
仅当您使用 token create a charge 时才会出现此情况或 customer该卡实际上会被检查,并且可能 raise an error .
避免这种情况的一种方法是使用 Checkout而不是您自己的 Stripe.js 表单。 Checkout 将在卡上运行 $0/$1 授权,如果授权失败,不会返回 token 。
关于javascript - Meteor:剥离不正确的安全代码不会引发客户端错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598240/