Laravel Cashier (Stripe) подписывается с помощью токена, используя существующего клиента - PullRequest
0 голосов
/ 15 февраля 2019

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

Первый пользователь добавит способ оплаты или данные карты.Таким образом, я создаю клиента следующим образом.

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

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

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

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

1 Ответ

0 голосов
/ 15 февраля 2019

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

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

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

...