向Stripe提交付款申请时,“没有这样的标记”错误

我正在使用Stripe API设置付款,以允许用户在iPad上login到他们的Stripe账户,并接受任何人的付款。 要做到这一点,我使用条纹连接login并保存他们的帐户ID,然后我使用STPPaymentCardTextField获取信用卡详细信息,然后使用条纹iOS SDK我提交一张卡(与testing卡info – 4242 …)并通过createTokenWithCard取回令牌。 这成功返回一个令牌。 在这一点上,我需要提交该令牌以及目标帐户ID(在用户login后提供给应用程序)以及其他信息(货币,金额等)到我自己的服务器以向Stripe提交付款。 我已validation信息正在提交并转发到Stripe,但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密钥?
您的服务器应该使用您的(实时/testing)密钥,并且您的iOS应用程序应该使用您的(实时/testing)可发布密钥,如条形testing中所述 。

接受的答案不适合我。 我正在使用客户端和服务器的正确密钥,但问题仍然存在。 我也从iOS发送源到服务器,基于条纹示例RocketRides,它发送信用卡的源ID,即“card_xxx”,这是不会工作。 您将不得不在您的服务器端添加呼叫的“客户”属性。

例如:(python)

stripe.Charge.create(amount = 1000,currency ='usd',source =“card_xxxxx”, customer ='cus_xxxx',application_fee = 600,destination = {'account':'acct_xxxx'})