未找到ID的条带标记

时间:2015-06-03 11:40:39

标签: node.js stripe-payments stripe-connect

我尝试设置条带连接,但在创建充电时遇到错误。知道我做错了吗?

客户端

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

1 个答案:

答案 0 :(得分:1)

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

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

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