javascript angularjs node.js stripe-payments

javascript - Error de banda: "El token no es compatible" al intentar suscribirse a la suscripciĆ³n



angularjs node.js (1)

Encontró la respuesta en el canal IRC de Stripe: no se menciona en los documentos oficiales , pero Stripe está esperando la ID del token , en lugar del token completo.

Simplemente pasando la source: stripeToken.id solucionó el problema por mí.

No puedo encontrar ninguna información sobre este error en particular en ningún lugar, así que por favor, tengan paciencia conmigo.

La aplicación My Angular / NodeJS tiene una página de pago (para suscripciones mensuales y anuales) manejada a través de Stripe.

He creado los tipos de suscripción en mi panel de control de Stripe (dos suscripciones: StarterAnnual y StarterMonthly ), y configuré el controlador de esta forma:

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

En mi ruta del Nodo, estoy haciendo esto:

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

Cuando intento hacer un pago obtengo:

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 }

Casi he usado código directamente de los documentos, ¿qué estoy haciendo mal aquí? ¿Necesito configurar las cosas de manera diferente para crear un cliente al realizar una suscripción?