我正在使用Stripe API设置付款,以允许用户在iPad上登录他们的Stripe帐户,并接受任何人的付款.为此,我使用Stripe Connect登录并保存其帐户ID,然后使用STPPaymentCardTextField获取信用卡详细信息,然后使用Stripe iOS SDK我提交一张卡(带有测试卡info – 4242 …),并通过createTokenWithCard重新获取令牌.这样成功返回一个令牌.在这一点上,我需要提交该标记以及目标帐户ID(在用户登录后提供给应用程序)和其他信息(货币,金额等)到我自己的服务器,以将付款提交给Stripe.我已经验证信息正在提交并转发到条纹,但条纹返回错误:
{ type: 'invalid_request_error',app[web.1]: message: 'No such token: tok_13vxes2eZkKYli2C9bHY1YfX',app[web.1]: param: 'source',app[web.1]: statusCode: 400,app[web.1]: requestId: 'req_7AIT8cEasnzEaq' },app[web.1]: requestId: 'req_7AIT8cEasnzEaq',app[web.1]: statusCode: 400 }
如果我们直接提交信用卡信息,完全避免令牌,付款成功.这个令牌有什么问题,我们不知道为什么它是失败的.这里可能出了什么问题?
[[STPAPIClient sharedClient] createTokenWithCard:card completion:^(STPToken *token,NSError *error) { //submit tokenId and other info to 'charge' endpoint below }
的NodeJS:
app.post('/charge',(req,res,next) => { stripe.charges.create({ amount: req.body.amount,currency: req.body.currency,source: req.body.token,description: req.body.description,destination: req.body.destination },(err,charge) => { if (err) return next(err) res.json(charge) }) })
解决方法
您确定在服务器和客户端上使用相同的API密钥吗?
您的服务器应该使用您的(实时/测试)密钥,并且您的iOS应用程序应该使用您的(live / test)可发布的密钥,如 Stripe Testing所述.
您的服务器应该使用您的(实时/测试)密钥,并且您的iOS应用程序应该使用您的(live / test)可发布的密钥,如 Stripe Testing所述.