尝试注册订阅时出现条带错误:“令牌不受支持”

找不到任何关于这个特定错误的信息,请耐心等待。

我的Angular / NodeJS应用程序有一个付款页面(用于每月和每年的订阅)通过Stripe处理。

我在我的Stripe仪表板中创build了订阅types(两个订阅: 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 } 

我几乎是直接从文档中使用代码,我在这里做错了什么? 在订购时,我需要设置不同的东西来创build客户吗?

在Stripe的IRC频道上find了答案:在官方文档中没有提到,但Stripe期待的是令牌ID ,而不是完整的令牌本身。

简单地传递source: stripeToken.id解决了我的问题。