Я настраиваю платежи, используя API-интерфейс Stripe, чтобы пользователь мог войти в свою учетную запись Stripe на iPad и принять платежи от кого-либо. Для этого я использую Stripe Connect для входа в систему и сохранения идентификатора своей учетной записи, затем я использую STPPaymentCardTextField
для получения данных кредитной карты, а затем с помощью SDI для Stripe iOS. Я представляю карту (с тестовая карта - 4242...) и возврат токена через createTokenWithCard
. Это успешно возвращает токен. На этом этапе мне нужно отправить этот токен вместе с идентификатором целевой адреса (предоставленным приложению после входа пользователя) и другой информацией (валютой, суммой и т.д.) На мой собственный сервер, чтобы отправить платеж на Stripe. Я подтвердил, что информация передается и перенаправляется на 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)
})
})