Страновые платежи: источник против Token/Card?

Я работаю над настройкой повторяющихся платежей с помощью полосы. Я использую элементы реакции-полосы для сбора информации о карте, и похоже, что два способа сохранить карту на потом:

  • this.props.stripe.createToken()
  • this.props.stripe.createSource()

Затем создайте клиента на бэкэнд:

  • stripe.customers.create({ source: tokenId })
  • stripe.customers.create({ source: sourceId })

Результат в приборной панели:

  • tokenId

    • карта tokenId enter image description here
  • SourceId

    • sourceId источник

enter image description here

  • карточка sourceId

enter image description here

Мой вопрос в чем разница между этими двумя шаблонами? Должен ли я использовать один вместо другого? Я заметил, что в шаблоне tokenId на карте указано, что проверка cvc/zip прошла, а карта не говорит об этом в шаблоне sourceId. Но шаблон sourceId также явно говорит, что карта является платной и многоразовой, означает ли это, что карта, сохраненная с использованием шаблона tokenId, не может использоваться повторно? Полезны ли журналы/события в исходной карте? Структура возвращаемого объекта для двух шаблонов также различна.

Любая помощь будет высоко оценена, спасибо заранее!

Ответ 1

Токен ограничен только для одноразового использования, поэтому, даже если вы используете его для клиента, но после того, как вы начисляете плату за этого клиента, то тот источник клиента, который является токеном, изменит его статус, и вы не сможете снова взимать плату с этого клиента, пока не обновите источник клиента по умолчанию.

Так что, если вы хотите делать регулярные платежи для пользователя, то stripe.createSource стоит использовать stripe.createSource. Вы должны прикрепить повторно используемый источник к объекту Customer перед выполнением запроса на оплату, в противном случае подключенный источник будет использован (его статус изменяется с подлежащего оплате на использованный) и не сможет быть использован для будущих платежей.