Расширение полосы Firebase — добавление пользовательских утверждений для пользователя

# #firebase #google-cloud-firestore #firebase-authentication #jwt #stripe-payments

Вопрос:

Я интегрирую Stripe с firebase и firestore, используя запуск платежей по подписке с расширением Stripe. Когда пользователь подписывается на услугу, мне нужно иметь возможность расшифровать JWT и посмотреть, подписаны они или нет с помощью пользовательского утверждения.

введите описание изображения здесь

введите описание изображения здесь

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

Комментарии:

1. Как только вы все настроите, расширение Stripe firebase должно автоматически обрабатывать настройку пользовательских утверждений. Вы проверили, что ваш обработчик webhook настроен правильно и прослушивает все необходимые события? Вы можете ознакомиться с инструкциями здесь github.com/stripe/stripe-firebase-extensions/blob/…

2. Веб-крючок настроен нормально и получает событие создания подписки, в котором в метаданных запроса указано значение firebaser, а затем правильно сохраняет его в firestore. Я также добавил секрет подписи в расширение. Я добавил firebaseRole как к продукту, так и к цене, поэтому не уверен, чего мне не хватает?

3. Что вы видите в журналах для этой ext-firestore-stripe-subscriptions-handleWebhookEvents функции? Можете ли вы включить их в исходный вопрос, а также показать нам, как выглядит продукт?

4. включили скриншот журналов в вопрос

Ответ №1:

Из предоставленных вами журналов видно, что у вас есть несколько подписок (sub_KBpVfFzNclrhaG и sub_KBpV10rxE6jkkH), которые привязаны к одному и тому же пользователю/клиенту. Подписка sub_KBpVfFzNclrhaG имеет статус активной или пробной, поэтому пользовательское утверждение было добавлено правильно. Однако вскоре после этого была создана подписка sub_KBpV10rxE6jkkH (я предполагаю, что со статусом, который не был активным или проверялся), которая снова обновила пользовательское утверждение пользователя до нуля. Вы можете подтвердить, что это происходит, проверив статусы обеих подписок на панели мониторинга.

Вам нужно убедиться, что у вас есть только одна активная/пробная подписка на каждого клиента, которую вы должны проверить в своей логике приложения. Здесь приведен пример того, как проверить наличие активных/пробных подписок для клиента (https://github.com/stripe-samples/firebase-subscription-payments/blob/4cf116c163ba69f0f46bcc782e4162e0edf452a4/public/javascript/app.js#L121)