【发布时间】:2022-01-06 02:24:50
【问题描述】:
docs 仅涵盖支付方式由前端(JS)创建的情况。但是,在前端向后端发送卡片已添加(及其 ID)的信息之前,用户可能会离开网站。
为了进行付款,我需要付款方式的 ID。我不想每次付款前都在 Stripe 的 API 中查询用户卡 ID,所以我想将付款方式 ID 保存在我的本地数据库中。我还想让用户定义更多的支付方式并选择默认的。
【问题讨论】:
标签: stripe-payments
docs 仅涵盖支付方式由前端(JS)创建的情况。但是,在前端向后端发送卡片已添加(及其 ID)的信息之前,用户可能会离开网站。
为了进行付款,我需要付款方式的 ID。我不想每次付款前都在 Stripe 的 API 中查询用户卡 ID,所以我想将付款方式 ID 保存在我的本地数据库中。我还想让用户定义更多的支付方式并选择默认的。
【问题讨论】:
标签: stripe-payments
您使用链接到的非推荐工作流程是否有原因?最新版本可以找到here
您是否使用webhook listeners 结账?我使用它们来创建/更新我的本地记录。
在您引用的工作流程中,可能会触发 3 个 Webhook 事件。首先,当您的服务器代码生成 SetupIntent 及其client_secret 时,会触发setup_intent.created 事件。然后,当用户填写您实例化的任何 Payment 或 Card 元素并且您的前端代码调用 stripe.confirmCardSetup()(或在 PaymentElement 的情况下为 stripe.confirmSetup())时,setup_intent.succeeded 和 payment_method.attached 事件都会触发。
最后一个会将刚刚附加到您的客户的payment_method 对象发送回您的系统。此对象将同时具有付款方式 ID 以及关联的客户 ID。您可以使用这些更新本地记录,将付款方式映射到服务器中的客户,并避免不必要的 API 调用。
【讨论】: