我的餐厅使用 Laravel Cashier 和 Stripe。
我想为我的客户使用 Stripe 支持的多种付款方式,但我在 Laravel Cashier 文档中找不到有关在 Stripe 中使用多种付款方式的任何信息。
Stripe 文档中的接受付款文档正是我所需要的。有没有办法用 Laravel Cashier 实现本文档中描述的方法?
P粉4712073022023-12-12 11:01:41
为收集付款方式而创建的SetupIntent默认接受卡仅。此外,前端也仅使用 Laravel Cashier 文档中的 Card Element,用于收集卡信息。
要接受其他付款方式类型,您首先需要使用其他 payment_method_types 在服务器上,然后将客户端密钥传递给支付元素而不是卡元素进行渲染。支付元素允许一种或多种支付方式。有关更多信息,您可以参阅此处的文档:https://stripe.com/文档/付款/保存并重用
请注意,并非所有付款方式都支持SetupIntent(以供将来使用)。您可以参考这里的文档,了解支持SetupIntent的付款方式: https://stripe.com/docs/ payments/ payment-methods/integration-options#additional-api-supportability
P粉0717437322023-12-12 09:37:23
这需要运行 php 和 js 脚本来进行条纹,
其参考此处
您首先需要一个设置意图,您必须使用它来调用
return $user->createSetupIntent();
并在前端访问该值。在您的卡/支付页面上,您必须设置 stripe js 卡元素。然后捕获并处理卡片元素,如下例所示(使用 axios)
const { setupIntent, error } = await stripe.confirmCardSetup(your_SETUP_INTENT, { payment_method: { card: your_card_object, billing_details: { name: 'Card Name' } } }) if (error) { console.log(error) } else { const { data } = await axios.post('/api/payment-method', { card: setupIntent.payment_method }) }
一旦条带请求成功,您将获得付款方式 ID,您可以将其推送回您的服务器,如上例所示,然后通过调用 addPaymentMethod
将付款附加回该用户< /p>
$user->addPaymentMethod( $request->input('card) );