1

ストライプ コネクトをセットアップしようとしていますが、料金を作成するときにエラーが発生します。私が間違っていることは何か分かりますか?

クライアント

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

1 に答える 1

1

ここでの問題は、接続されたユーザーの発行可能なキーを使用してカード トークンを作成していることです。次に、destinationパラメーターを使用してプラットフォームでそのトークンを請求しようとします。そのトークンはプラットフォームによって認識されておらず、接続されたアカウントによってのみ認識されているため、これは機能しません。

プラットフォームで課金する場合は、トークンを作成するときにプラットフォームの発行可能なキーを使用する必要があります。

また、Stripe は最近フローを変更し、プラットフォームの発行可能なキーで作成されたカード トークンは、接続されたアカウントでも機能します。これは、接続されたアカウントの発行可能なキーを使用する必要がなくなり、どこでもプラットフォームを簡単に使用できることを意味します。

于 2015-06-03T13:50:38.070 に答える