我正在尝试设置 strip 连接,但在创建费用时遇到错误。知道我做错了什么吗?
客户端
Stripe.setPublishableKey([CUSTOMERS_PUBLISHABLE_KEY]);
Stripe.card.createToken({
number: card.number,
cvc: card.cvc,
exp_month: card.exp.month,
exp_year: card.exp.year
}, stripeResponseHandler);
对此调用的响应如下所示:
{
"id": "tok_169ZyxF6SmAjeAPKC9YF7YAi",
"livemode": false,
"created": 1433330667,
"used": false,
"object": "token",
"type": "card",
"card": {...}
},
"client_ip": "..."
}
服务器
var stripe = require('stripe')(config.stripeSecretKey);
stripe.charges.create({
amount: totalPrice,
application_fee: appFee,
currency: 'usd',
source: paymentToken, // from above: tok_169ZyxF6SmAjeAPKC9YF7YAi
destination: [CUSTOMERS_STRIPE_USERID]
}, function(err, charge){
if (err)
// Error: There is no token with ID tok_169ZyxF6SmAjeAPKC9YF7YAi.
// at Error._Error (c:\dev\leaguespeed-node\node_modules\stripe\lib\Error.js:12:17)
// at Error.module.exports.protoExtend.Constructor (c:\dev\leaguespeed-node\node_modules\stripe\lib\utils.js:113:13)
// at Error.module.exports.protoExtend.Constructor (c:\dev\leaguespeed-node\node_modules\stripe\lib\utils.js:113:13)
// at Function.StripeError.generate (c:\dev\leaguespeed-node\node_modules\stripe\lib\Error.js:56:14)
// at IncomingMessage.StripeResource._responseHandler (c:\dev\leaguespeed-node\node_modules\stripe\lib\StripeResource.js:133:39)
// at IncomingMessage.emit (events.js:117:20)
// at _stream_readable.js:938:16
// at process._tickCallback (node.js:419:13)
return defer.reject(err);
else
{
defer.resolve(charge);
}
});
最佳答案
这里的问题是您正在使用连接的用户的可发布 key 创建卡 token 。然后,您尝试使用 destination
参数在平台上对该 token 进行收费。这不起作用,因为该 token 不被平台识别,仅被连接的帐户识别。
如果您想在平台上充值,则需要在创建代币时使用平台的可发布 key 。
此外,Stripe 最近修改了流程,使用平台的可发布 key 创建的任何卡 token 也可以在您的任何连接帐户上使用。这意味着您不再需要使用连接帐户的可发布 key ,您可以在任何地方使用平台。
关于node.js - 未找到 id 的 Stripe token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30619065/