Кассир Laravel — Предотвращение дублирования Способов оплаты

#laravel #stripe-payments #laravel-cashier

Вопрос:

Я пытаюсь обновить способ оплаты подписки. Я собираю информацию о карте с помощью js Stripe (используя предоставленное намерение настройки). Затем я отправляю идентификатор способа оплаты, предоставленный компанией Stripe’s js, в Laravel, чтобы фактически обновить способ оплаты Пользователя по умолчанию.

Теперь проблема в том, что я хочу запретить пользователю вставлять дубликаты карт, и единственный способ предотвратить это-получить все текущие способы оплаты пользователя ( $user->paymentMethods(); ) и проверить, имеет ли какой-либо из них тот же отпечаток пальца, что и тот, который я добавляю по умолчанию.

Чтобы получить отпечаток пальца нового способа оплаты, мне нужно будет получить объект Stripe paymentметод для идентификатора, предоставленного js Stripe. Кассовый метод для этого был $user->findPaymentMethod(id) бы следующим .

Проблема в том, что идентификатор платежа еще не добавлен в способы оплаты пользователей, поэтому $user->findPaymentMethod($request->payment_method); не удается, поскольку этот способ оплаты не принадлежит пользователю.

Единственное решение, которое я могу придумать, — сначала добавить новый способ оплаты, затем проверить наличие дубликатов и удалить их ?

Ответ №1:

Похоже, вы уже нашли лучший подход к добавлению метода пользователю, а затем посмотрите, есть ли дубликаты отпечатков пальцев, даже если это немного неудобно.

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