В настоящее время я пытаюсь реализовать новую проверку бета-версии Stripe с использованием только потока на стороне клиента, и я пытаюсь найти наилучший способ сопоставить клиента Stripe с пользователем в моей базе данных и получить информацию о подписке, такую как дата окончания и т. д.
Из документации я могу сказать, что с новой конечной точкой checkout_beta.session_succeeded
webhook я могу передать параметр client_reference_id
, который имеет смысл быть моим customer_id. Эта конечная точка также дает мне идентификатор подписки. Поэтому я мог бы запросить API подписки, чтобы получить нужные мне данные.
Однако веб-крючок уже вызывает событие customer.subscription.created
до этого со всей необходимой мне информацией, за исключением того, что он не содержит мой reference_id, просто ссылку на полосу customer_id
.
Кажется глупым вызывать API, для которого я уже получил информацию, но кроме stripe_customer_id у меня нет возможности сопоставить их без:
а) вызов API Stripe с помощью subscription_id или
б) создание моей собственной таблицы базы данных с периодическими данными для хранения stripe_customer_id и информации о подписке, а затем в методе checkout_beta.session_succeeded
, который сопоставляет customer_id с моим client_reference_id и соответственно обновляет мою таблицу пользователей.
Есть ли лучший подход или руководство здесь? Я думаю, что, возможно, у меня должна быть отдельная таблица user_subscription, а не хранить ее с моим пользователем сейчас, но это потребует некоторого переписывания ряда существующих SQL-запросов.