stripe-payments - Stripe 会话获取客户名称
问题描述
我还想检索付款人的姓名。如何从条带会话中获取名称值?我试过这个:
const sessions = await stripe.checkout.sessions.list({
limit: 1,
});
console.log(sessions.data[0].customer)
const customer = await stripe.customers.retrieve(sessions.data[0].customer);
console.log(customer)
这让我收到了电子邮件,但名字是null
.
解决方案
更新:通过 Checkout 创建的客户有一个null
名称,因为它没有被收集/设置。结帐页面上的“卡上姓名”字段是付款方式的持卡人姓名,而不是客户姓名(请参阅https://stripe.com/docs/api/payment_methods/object#payment_method_object-billing_details-name)。如果您希望通过 Checkout 创建的客户没有null
名称,则必须在会话完成后更新客户。
Stripe 有一个仪表板设置 ( https://dashboard.stripe.com/settings/emails ),您可以启用该设置自动向客户发送收据,以便在实时模式下成功完成付款。在测试模式下完成的付款不会自动发送电子邮件,但您可以通过仪表板手动触发。您可以在此处阅读有关发送收据的更多信息:https ://stripe.com/docs/receipts#automatically-send-receipts-when-payments-are-successful 。
如果您想获取客户的电子邮件并自己发送收据,那会有点复杂。
checkout_session.completed
通过 webhook 端点 ( https://stripe.com/docs/payments/checkout/fulfill-orders#handle-the-checkoutsessioncompleted-event )监听等待结帐会话完成。checkout_session.completed
从事件附带的 Checkout Session 对象中获取客户 ID 。- 使用上一步中的客户 ID,检索客户对象 ( https://stripe.com/docs/api/customers/retrieve ) 并获取客户的电子邮件。
推荐阅读
- php - 与3表的雄辩关系
- c# - Parallel.Invoke 等到 HttpClient 重新登录 c#
- mysql - 如果 postid 不存在,MySQL 将记录插入一个表到另一个表
- c++ - 使用 c++ 开发时,宏 '__TIME__' 和 '__TIMESTAMP__' 无法刷新
- android - 使用搜索视图过滤 gridview
- python - Python 依赖地狱:virtualenv 和全局依赖之间的妥协?
- ios - 斯威夫特 | UIBarButton 不工作/不去行动目标
- android - 在 Google Play 上更新应用程序时出现错误 DF-DFERH-01
- sql - 如何在 SQL Server 中找到滚动季度收入的总和?
- javascript - 波浪js背景颜色