流星:条带不正确的安全代码不会抛出客户端错误

Meteor: Stripe incorrect security code doesn't throw client error

本文关键字:错误 客户端 代码 安全 不正确 流星      更新时间:2023-09-26

我正在做一些测试,刚刚在我的网站上发现了一个错误。我收集用户的付款信息,但我不收取他们。这给了他们免费试用的机会。

问题是来自meteor(在客户端)的响应是一个不错的200 OK,并且它没有抛出任何错误。但在客户端,我确实得到了一个错误,客户没有被保存。因此,流星接受"付款"并创建帐户,即使没有保存付款信息。

有人遇到这个吗?任何人都可以让我知道如何修复它将不胜感激!

客户端代码:

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 Stripe.card.createToken()函数创建令牌时,Stripe不会根据银行网络检查卡。它只检查卡的详细信息是否明显无效(正确的位数,未来的过期日期等)。

只有当您使用令牌创建收费或客户时,才会实际检查该卡并可能引发错误。

避免这种情况的一种方法是使用Checkout而不是自己的Stripe.js表单。Checkout将在该卡上运行$0/$1授权,并且如果授权失败则不会返回令牌。