Я уверен, что мне здесь не хватает чего-то очевидного, но я не могу понять, как проверить наличие существующей карты у клиента.
Я использую api stripe connect в приложении laravel для управления платежами от имени других, и основной процесс выглядит следующим образом:
- полоса
token
создается черезstripe.js
и отправляется вместе с формой оплаты - если клиент существует в локальной базе данных, я беру его
stripe_id
, в противном случае создается новый клиент с использованием токена в качестве источника / карты - затем создается
charge
с использованием полученного или нового клиентаstripe_id
В настоящее время, если клиент возвращается и использует другую карту, поскольку плата включает только клиента, а не источник, она будет снята с его карты по умолчанию независимо от того.
Что бы я хотел сделать:
- создать полосу
token
- проверьте
customer
на локальную базу данных и т. д. - сверить
card
отпечаток пальца с карточкой клиента - при необходимости создайте новый
card
в записи клиента - создать платеж с использованием идентификаторов
customer
иcard
Проще говоря: я не вижу, где в процессе создается постоянный card_id
; и те, что используются в ответе stripe.js
, и когда они созданы на панели инструментов полосы, кажутся уникальными, что означает, что каждое начисление создает совершенно новый объект карты в полосе.
Я знаю, что могу получить список карт, хранящихся в учетной записи клиента, но где мне взять начальный card_id
для поиска?
Я видел здесь вопрос, касающийся этого - Могу ли я проверить, существует ли уже разделенная карта, прежде чем создавать новую? - но я не знаю Ruby, поэтому не могу разобраться в этом .
РЕДАКТИРОВАТЬ:
Более простая версия - есть ли способ получить fingerprint
, как описано в документах по полосе здесь - https://stripe.com/docs/api/php#card_object - без предварительного создания объекта карты?