javascript - Meteor:剥离不正确的安全代码不会引发客户端错误

标签 javascript meteor stripe-payments

我正在做一些测试,刚刚在我的网站中发现一个错误。我收集用户的付款信息,但不向他们收费。这使他们可以免费试用。

问题是来自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/

相关文章:

javascript - MeteorJS 模板不显示数据,不出现

javascript - 如何在 Meteor 中的多个模板之间切换?

javascript - 在文本框的情况下,readOnly 属性可以是切换形式吗?

javascript - 具有多个文件选择器的 Uploadcare 小部件

javascript - EmberJS 2.10 如何正确设置嵌套路由 Controller 来设置路由上的操作?

meteor - 允许 Meteor 帐户有多个用户使用相同的电子邮件地址

python - 如何通过 stripe python api 创建定期费用?

typescript - 如何修复 Typescript 错误 "Object is possibly ' 未定义'”

django - 我如何知道用户使用 Stripe Checkout.js 选择什么计划?

javascript - JS/Jquery .load 和 .length