我们为客户建立了一个简单的CRM系统,其中包括基本的电子商务功能。
客户可以访问 CRM 系统的客户门户,将商品添加到购物篮,然后通过 Stripe 付款。当客户单击“立即付款”时,服务器端代码会创建一个 Stripe Session 对象,然后将客户重定向到 checkout.stripe.com。客户输入银行卡详细信息,并在成功付款后重定向回 CRM 系统 - 这一切都正常。
我们的客户希望添加通过电话接受付款的功能。在这种情况下:
该场景的问题是,付款后,CRM系统的销售订单记录和Stripe付款之间没有参考。代理必须手动将 Stripe PaymentIntent ID 输入 CRM 系统,以便在销售订单和 Stripe 付款之间创建参考。
根据 Stripe 文档,可以通过 Stripe API 创建一个
PaymentIntent
对象并将其标记为 MOTO 付款。这涉及到将客户的卡详细信息发送到服务器,然后再将其发送到 Stripe API,这是 Stripe 强烈反对的 - 因此我们排除此选项。
我尝试使用 Stripe API 创建一个
PaymentIntent
对象,而不提供 PaymentMethod
- 我希望这将允许代理登录到 Stripe 仪表板,导航到特定的 PaymentIntent
记录,并输入卡详细信息 - 但是,在这种情况下,仪表板不提供任何支付状态为“不完整”的 PaymentIntent
的方法。
我的问题是 - 实现付款过程的正确方法是什么,其中客户通过电话进行卡付款,卡详细信息由代理输入 Stripe 仪表板,并在销售订单记录之间维护参考“呼叫系统”(本例中为 CRM 系统)和 Stripe 支付?
您是否考虑过在 CRM 中使用 webhooks 来获取有关 Stripe 仪表板中发生的事件的信息?
该活动
payment_intent.succeeded
一定是您正在寻找的内容。
当代理在条形仪表板中创建付款时,他必须在付款描述或描述符中引用订单(来自您的 CRM)。 付款后,stripe 将通过向您指定的端点发送请求来通知您的 CRM。从中提取
PaymentIntent
并对其进行处理。
场景
order id
放入付款的说明或描述符中,并输入客户读出的银行卡详细信息payment_intent.succeeded
事件发送到您的 CRM order id
,找到销售订单并将其与 PaymentIntent
链接)文档如下