未找到 ID 的条纹标记

Stripe token with id not found

我正在尝试设置条带连接,但在创建费用时遇到错误。知道我做错了什么吗?

客户

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);
    }
});

这里的问题是您正在使用已连接用户的可发布密钥创建卡令牌。然后,您尝试使用 destination 参数在平台上对该令牌收费。这不会起作用,因为平台不知道该令牌,只有连接的帐户知道。

如果您想在平台上充值,您需要在创建令牌时使用平台的可发布密钥。

此外,Stripe 最近修改了流程,使用平台的可发布密钥创建的任何卡令牌也适用于您的任何关联帐户。这意味着您不再需要使用连接帐户的可发布密钥,您可以在任何地方使用平台的可发布密钥。