【发布时间】:2021-11-27 03:43:07
【问题描述】:
我正在尝试更新订阅的付款方式。我使用 Stripe 的 js 收集卡片信息(使用提供的设置意图)。然后我将 Stripe 的 js 提供的付款方式 id 发送到 Laravel 以实际更新用户的默认付款方式。
现在,问题是我想阻止用户插入重复的卡,而防止这种情况的唯一方法是检索所有用户当前的付款方式 ($user->paymentMethods();),并检查其中是否有与我默认添加的指纹相同。
要获取新支付方式的指纹,我需要获取 Stripe js 提供的 ID 的 Stripe PaymentMethod 对象。执行此操作的 Cashier 方法是 $user->findPaymentMethod(id)。
问题是付款 ID 尚未添加到用户付款方式中,因此 $user->findPaymentMethod($request->payment_method); 失败,因为该付款方式不属于 $user。
我能想到的唯一解决方案是首先添加新的付款方式,然后检查重复并删除它们?
【问题讨论】:
标签: laravel stripe-payments laravel-cashier