如何在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!") }); });
这是错误:
在我看来,就像我有last4 , exp_month , exp_year但由于某种原因,我没有数字 。 任何build议/提示/想法?
使用Googlesearch"The card object must have a value for 'number'"
– ”12结果,没有太大的帮助。
你必须给card
参数的“标记”实际上只是标记ID(例如:“tok_425dVa2eZvKYlo2CLCK8DNwq”),而不是完整的对象。 使用Checkout您的应用程序从来没有看到卡号。
你有需要改变:
var stripeToken = req.body.token;
至:
var stripeToken = req.body.token.id;
关于这个card
选项的文档不是很清楚,但是Stripe API Reference有一个例子。