在任何地方都找不到关于这个特定错误的信息,请耐心等待。
我的Angular/NodeJS应用程序有一个支付页面(用于处理每月和每年的订阅),通过Stripe进行处理。
我已经在我的Stripe仪表板中创建了订阅类型(两种订阅:StarterAnnual
和StarterMonthly
),并设置了处理程序,如下所示:
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
});
在我的Node路由中,我正在执行以下操作:
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 }
我基本上只是从文档中直接使用代码,这里做错了什么?在创建订阅时,是否需要以不同方式设置东西才行?
token.id
给客户端时,它不起作用,实际上除非我将整个令牌对象发送到服务器,然后将token.id
发送到 Stripe 服务器端。 - Alex Grant$token['id']
。 - Justin Michael