我正在开发和测试一个用 PHP 编写的 Stripe 集成,它运行得很好。我可以创建会话,重定向到结账表单,当付款完成时,它会向我的 webhhook 脚本发送一个事件,该脚本成功处理有关付款的信息。
当我创建会话时,我将在我的网站上填写的表单的数据存储在数据库中,当付款完成时,我将信息存储在不同的表中,这很棒。
我遇到的问题是我不知道如何将有关成功付款的信息与生成它的会话链接起来。
连接这些数据对我来说至关重要,因为我想跟踪哪些会话实际上导致了成功付款,以便我可以分析用户界面的流程并跟踪转化率并分析导致放弃结账会话的因素。
在某些情况下,很容易将这些事情联系起来。例如,如果在给定时间范围内仅生成与给定电子邮件相关的一个会话和一次成功付款,我可以将它们链接起来。问题是我希望能够处理一个人创建多个会话并放弃它们的(可能常见的)场景。在这种情况下,我无法将付款链接到与电子邮件关联的最新会话,因为单个客户可能会创建两个会话,但在第一个较早创建的会话上完成付款。
我不知道如何从返回到我的 webhook 的 payment_intent 对象访问 session_id。我对如何解决这个问题的一些想法包括:
我想在这里遵循“最佳实践”,但我不清楚 Stripe 打算如何让人们链接或访问数据,或者这是否可能是他们的疏忽。
如果你给我示例代码,如果可能的话,我更愿意在 PHP 中看到它,但你根本不需要向我展示任何代码;只需给我一个关于如何实现这一目标的抽象或一般想法就足够了,我可以自己想出编码细节。