2016-01-12 3 views
24

この特定のエラーに関する情報はどこにも見つかりません。ストライプエラー:サブスクリプションにサインアップしようとすると、 'トークンがサポートされません'

私のAngular/NodeJSアプリには、Stripeを通じて処理される支払いページ(月間および年間購読用)があります。

私はストライプのダッシュボードで、サブスクリプション・タイプ(2つのサブスクリプション:StarterAnnualStarterMonthly)を作成しました、と私はそうのようなハンドラを設定している:私のノードのルートで

var handler = StripeCheckout.configure({ 
      key: 'pk_test_qs8Ot1USopAZAyLN3gNXma0T', 
      image: '/img/stripe-logo.png', 
      locale: 'auto', 
      email: $scope.user.email, 
      token: function(token) { 
      console.log(token) 
      var tempObj = { 
       stripeToken : token, 
       email : $scope.user.email, 
       cost : $scope.plan.price * 100 
       plan : $scope.plan.name 
      } 
      $http.post('/api/makePayment', tempObj).then(function(data){ 
       console.log('stripe data', data); 
      },function(err){ 
       console.log('stripe error', err); 
      }) 
      } 
     }); 

     handler.open({ 
      name: '<bizname>', 
      description: $scope.plan.name, 
      amount: $scope.plan.price * 100 
     }); 

、私は私は私が得る支払いをしようとすると

exports.makePayment = function(req,res){ 

    var stripeToken = req.body.stripeToken, 
      email = req.body.email, 
      cost = req.body.cost, 
      plan = req.body.plan; 

    var tempObj = { 
    source: stripeToken, 
    plan: plan, 
    email: email 
    } 

    console.log(tempObj); // Everything looks fine in this log 

    stripe.customers.create(tempObj, function(err, customer) { 
    if(err){ 
     console.log("Stripe Error"); 
     console.log(err); 
    }else{ 
     console.log(customer); 
     res.status(200).send(customer); 
    } 

    }); 
} 

:これをやって

Stripe Error 
{ [Error: token is not supported.] 
    type: 'StripeInvalidRequestError', 
    stack: 'Error: token is not supported.\n at Error._Error (/node_modules/stripe/lib/Error.js:12:17)\n at Error.Constructor (/node_modules/stripe/lib/utils.js:105:13)\n at Error.Constructor (/node_modules/stripe/lib/utils.js:105:13)\n at Function.StripeError.generate (/node_modules/stripe/lib/Error.js:56:14)\n at IncomingMessage.<anonymous> (/node_modules/stripe/lib/StripeResource.js:138:39)\n at emitNone (events.js:72:20)\n at IncomingMessage.emit (events.js:166:7)\n at endReadableNT (_stream_readable.js:905:12)\n at doNTCallback2 (node.js:452:9)\n at process._tickCallback (node.js:366:17)', 
    rawType: 'invalid_request_error', 
    code: undefined, 
    param: 'source', 
    message: 'token is not supported.', 
    detail: undefined, 
    raw: 
    { type: 'invalid_request_error', 
    message: 'token is not supported.', 
    param: 'source', 
    statusCode: 400, 
    requestId: 'req_7hzY3mEgeM3nNJ' }, 
    requestId: 'req_7hzY3mEgeM3nNJ', 
    statusCode: 400 } 

私はかなりドキュメントのコードをそのまま使用しましたが、私はここで間違っていますか?サブスクリプションを行うときに顧客を作成するために、別のものを設定する必要がありますか?

答えて

56

official docsには記載されていませんが、完全なトークンではなくのトークンIDがストライプの期待値です。

単にsource: stripeToken.idを渡すだけで問題が解決しました。

+4

感謝します!それは言及されていないだけでなく、サンプルで間違っています。 – ScottCate

+3

4時間が経過しました。なぜこれはドキュメントではありませんか?愛する人に感謝します。 –

+0

ストライプ、あなたのドキュメントを修正してください。 – Jelling

関連する問題