禁用客户名称的条带结帐自动填充
Posted
技术标签:
【中文标题】禁用客户名称的条带结帐自动填充【英文标题】:Stripe checkout autofill of disable customer name 【发布时间】:2022-01-20 15:31:48 【问题描述】:我正在使用条带结帐。我已经收集了一些用户数据,我不希望客户填写他们的名字两次。如何自动填充或禁用名称字段?
const session = await stripe.checkout.sessions.create(
customer_email: !customerFound ? data.email : undefined,
customer: customerFound ? customer.id : undefined,
customer_update: customerFound
?
address: 'auto',
name: 'auto',
: undefined,
line_items: lineItems,
client_reference_id: data.userId,
payment_method_types: ['card', 'bancontact'],
mode: 'payment',
success_url: `$domain/betaling-gelukt?session_id=CHECKOUT_SESSION_ID`,
cancel_url: `$domain/betaling-mislukt`,
locale: 'nl',
billing_address_collection: 'auto',
metadata:
reservation: data.reservatieId,
,
);
【问题讨论】:
这是打字稿吗? 【参考方案1】:As per the documentation:
在付款模式下,将使用客户最近的银行卡付款方式在结帐页面上预填电子邮件、姓名、银行卡详细信息和帐单地址。
在订阅模式下,如果是卡,将使用客户的默认付款方式,否则将使用最近的卡。 Checkout 需要一个有效的帐单地址才能预填客户的信用卡详细信息。
这可能适合您的情况,也可能不适合您的情况。
或者,您可以完全取消 Stripe Checkout,并在 Stripe 提供的后端 API 旁边使用 Stripe.js。这种方法有其优点/缺点:
优点:
对元素和元素流的完全控制 根据您自己的选择自定义/样式元素缺点:
您必须手动创建后端并处理PaymentIntent
和Subscription
我们遇到了与您类似的问题,虽然从 Stripe Checkout 到 Stripe.js 的初始更改有点学习曲线,但它给了我们更多的控制权,让我们无需重定向到外部站点即可进行付款。
注意:我故意省略了代码,因为 Stripe.js 的实现可能会根据您的需要而有所不同,但如果需要,我可以提供一些示例。
【讨论】:
谢谢,下一个项目我将使用 Stripe.js (=elements?)【参考方案2】:请注意,结帐会话的 name
字段不一定是您客户的姓名,而是他们使用的付款方式上的姓名。
除非customer
已经附加了可以与setup_future_usage
一起使用的付款方式,否则无法预填充此name
字段。
一般来说,我建议让 Stripe Checkout 收集所有信息,然后据此更新您的系统,而不是反过来。
【讨论】:
该名称不是付款方式的名称,而是客户名称。我需要一些额外的自定义字段,所以我必须在结帐前收集一些信息,所以我不妨收集所有信息。以上是关于禁用客户名称的条带结帐自动填充的主要内容,如果未能解决你的问题,请参考以下文章