Laravel Cashier (Stripe) подписывается с помощью токена, используя существующего клиента

Я занимаюсь разработкой приложения Laravel, которое включает оплату подписки. Сейчас я борюсь с подпиской пользователя с помощью токена, но с использованием существующего клиента. Это сценарий. В моем приложении пользователь может обновить свою платежную / платежную информацию (в основном карту). Когда они обновляют информацию об оплате, они просто добавляют информацию о карте. Затем позже пользователь может сделать оплату или подписаться на все, что он хочет.

Сначала пользователь добавит способ оплаты или информацию о карте. Поэтому я создаю клиента таким образом.

     $user->createAsStripeCustomer($token, array_merge($options, [
        'email' => 'email address',
     ]));

Таким образом, вышеуказанный метод создаст полосу клиента для пользователя вместе с картой. Затем завтра пользователь может захотеть подписаться на канал. Laravel Cashier предоставляет следующий способ подписки.

$user->newSubscription('subscription-name', 'my-plan')->create($token);

Тогда проблема с приведенным выше кодом заключается в том, что я должен снова передать токен. Если мне нужно будет передать токен, мне снова придется генерировать токен в Javascript. Если мне придется снова сгенерировать токен в javascript, мне придется попросить пользователя снова ввести информацию о карте, чтобы получить токен. Итак, что я могу сделать, чтобы пользователь подписался, используя существующую информацию о клиенте? Как я могу это сделать?

1 ответ

Один из способов - всякий раз, когда вы создаете клиента с полосой, добавляйте пользователя в план бесплатной подписки, чтобы ему не приходилось ничего платить, пока он не подпишется. Когда пользователь начинает подписку, мы можем просто изменить план подписки на желаемый, используя следующий метод:

$user->subscription('main')
        ->skipTrial()
        ->swap('provider-plan-id');

Другой метод - всякий раз, когда мы создаем клиента с полосой, просим пользователя выбрать план подписки и ставить его на пробный период, пока он не подпишется.

Другие вопросы по тегам