如何在Stripe nodejs库中正确创build“收费”?

客户

我正在使用Stripe Checkout自定义集成 – https://stripe.com/docs/checkout#integration-custom – 以下面的方式:

var handler = StripeCheckout.configure({ key: 'YOUR_KEY_HERE', image: 'images/logo-48px.png', token: function(token, args) { $.post("http://localhost:3000/charge", {token: token}, function(res) { console.log("response from charge: " + res); }) } }) 

使用自定义违背简单 – 我如何修改条带签出,而不是发送一个AJAX请求? – 因为简单不允许我进行AJAX调用。

服务器

https://stripe.com/docs/tutorials/charges

你已经得到了用户的信用卡信息的令牌,现在呢? 现在你收取他们的钱。

 app.post('/charge', function(req, res) { console.log(JSON.stringify(req.body, null, 2)); var stripeToken = req.body.token; var charge = stripe.charges.create({ amount: 0005, // amount in cents, again currency: "usd", card: stripeToken, description: "payinguser@example.com" }, function(err, charge) { if (err && err.type === 'StripeCardError') { console.log(JSON.stringify(err, null, 2)); } res.send("completed payment!") }); }); 

这是错误:

在这里输入图像描述

在我看来,就像我有last4exp_monthexp_year但由于某种原因,我没有数字 。 任何build议/提示/想法?

使用Googlesearch"The card object must have a value for 'number'" – ”12结果,没有太大的帮助。

       

网上收集的解决方案 "如何在Stripe nodejs库中正确创build“收费”?"

你必须给card参数的“标记”实际上只是标记ID(例如:“tok_425dVa2eZvKYlo2CLCK8DNwq”),而不是完整的对象。 使用Checkout您的应用程序从来没有看到卡号。

你有需要改变:

 var stripeToken = req.body.token; 

至:

 var stripeToken = req.body.token.id; 

关于这个card选项的文档不是很清楚,但是Stripe API Reference有一个例子。