2016-01-12 5 views
24

Informationen zu diesem speziellen Fehler können nirgendwo gefunden werden.Stripe-Fehler: "Token wird nicht unterstützt", wenn Sie versuchen, sich für das Abonnement anzumelden

Meine Angular/NodeJS App hat eine Zahlungsseite (für monatliche und jährliche Abonnements), die über Stripe abgewickelt wird.

ich die Abonnement-Typen in meinem Streifen Armaturenbrett erstellt haben (zwei Abonnements: StarterAnnual und StarterMonthly), und ich habe den Handler wie so ein:

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

In meinem Knoten Route, ich bin dies zu tun:

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

    }); 
} 

Wenn ich versuche, eine Zahlung zu leisten, erhalte ich:

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 } 

Ich habe gerade Code direkt aus der Dokumentation verwendet, was mache ich hier falsch? Muss ich beim Erstellen eines Abonnements etwas anderes einrichten?

Antwort

56

Können Sie die Antwort auf Streifen des IRC-Kanal: Es ist nicht in den official docs erwähnt, aber Streifen erwarten die Token-ID, anstatt die vollständigen Token selbst.

Einfach vorbei source: stripeToken.id löste das Problem für mich.

+4

DANKE! Es ist nicht nur nicht erwähnt, es ist in den Proben falsch. – ScottCate

+3

4 Stunden weg. Warum ist das nicht in den Dokumenten? Vielen Dank, mein Herr. –

+0

Streifen, bitte korrigieren Sie Ihre Dokumente. – Jelling

Verwandte Themen