создать платеж для существующего клиента с другой картой - PullRequest
1 голос
/ 28 октября 2019

Итак, у меня есть клиент, у которого уже создана карта.
На веб-интерфейсе я даю возможность использовать существующую или другую карту.
Следуя документации API, для новой карты ясоздайте токен, отправьте его моему бэкэнду ...

В бэкэнде:

const paymentInfo = {
  customer: customerId,
  amount: Number(total) * 100,
  currency: 'usd',
  source: existingCardId || token
}

const charge = await stripe.charges.create(paymentInfo)

Если я заплачу существующей картой, заряд будет снят, но если я отправлю новыйтокен, я получаю сообщение об ошибке:

Customer cus_G4V0KvxKMmln01 does not have a linked source with ID tok_1FYMLTAOg97eusNI2drudzlJ.

Из документов API: https://stripe.com/docs/api/charges/create

источник необязательно Источник платежа, подлежащий оплате. Это может быть идентификатор карты (т. Е. Кредитной или дебетовой карты), банковского счета, источника, токена или подключенной учетной записи. Для определенных источников, а именно карт, банковских счетов и подключенных источников, вы также должны передать идентификатор связанного клиента.

1 Ответ

0 голосов
/ 28 октября 2019

Я нашел решение:

if (token) {
  const card = await stripe.customers.createSource(customerId, {
    source: token
  })
  paymentInfo.source = card.id
}
...