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