ユーザーが iPad で自分の Stripe アカウントにログインし、誰からでも支払いを受け取れるように、Stripe API を使用して支払いを設定しています。これを行うには、Stripe Connect を使用してログインし、アカウント ID を保存します。次に を使用しSTPPaymentCardTextField
てクレジット カードの詳細を取得し、Stripe iOS SDK を使用してカードを送信します (テスト カード情報を含む)。 - 4242...) を介してトークンを取得しますcreateTokenWithCard
。これにより、トークンが正常に返されます。この時点で、Stripe に支払いを送信するために、そのトークンを宛先アカウント ID (ユーザーがログインした後にアプリに提供される) およびその他の情報 (通貨、金額など) と共に自分のサーバーに送信する必要があります。情報が送信され、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
}
ノードJS:
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)
})
})