Я уверен, что упускаю что-то очевидное здесь, но я не могу понять, как проверить существующую карту для клиента.
Я использую API-интерфейс Stripe Connect в приложении Laravel для управления платежами от имени других, и основной процесс заключается в следующем:
- полоса
token
создается с помощьюstripe.js
и отправляется с платежной формой - если клиент существует в локальной базе данных, я беру его
stripe_id
, в противном случае новый клиент создается с использованием токена в качестве источника/карты - затем создается
charge
с использованием найденного или нового клиентаstripe_id
В настоящее время, если клиент возвращается и использует другую карту, поскольку плата включает только клиента, а не источник, он будет списываться с карты по умолчанию, независимо от того.
Я хотел бы сделать следующее:
- создать полосу
token
- сверяйте
customer
с локальной базой данных и т.д. - проверить
card
fingerprint на карточках клиентов - при необходимости создайте новый
card
в записи клиента - создать заряд с использованием идентификаторов
customer
иcard
Проще говоря: я не вижу, где в процессе генерируется постоянный card_id
; как те, что использовались в ответе stripe.js
, так и при создании на приборной панели полосы, кажутся уникальными, что означает, что каждый заряд создает новый объект карты в полосе.
Я знаю, что могу получить список карточек, хранящихся в учетной записи клиента, но откуда мне взять начальный card_id
для поиска?
Я видел вопрос, который затрагивает этот вопрос здесь - Могу ли я проверить, существует ли полоса карты, прежде чем создавать новую? - но я не знаю Руби, поэтому не могу разобраться ни хвоста этого.
EDIT:
Упрощенная версия - есть ли способ получить fingerprint
, как описано здесь в документах с полосами - https://stripe.com/docs/api/php#card_object - без необходимости сначала создавать объект карты?