我正在使用 CodeIgniter 框架开发一个众筹网站(类似于Kickstarter )。
我使用这个库“成功”实现了 PayPal 的自适应支付。
但是,我只是不确定如何正确和安全地检查成功/失败的付款,并且女巫数据对于保存到数据库很重要。
注意:是链式延迟支付,我是主收款人,副收款人是众筹项目创建者。在预定的时间段后,钱被转移到辅助收款人。
我现在的流程是这样的:
- 用户点击购买奖励。
- 我使用“支付”API 操作请求支付(包括唯一的 TrackingID)并将请求保存在数据库中。
- 如果请求成功,我会在会话中保存一些响应数据(TrackingID、PayKey、金额...)并重定向到 PayPal..
- 在此步骤中,用户可以:接受付款、取消或关闭浏览器,所以我真的不知道这里会发生什么......(推荐?)
- 如果用户接受付款,他将被重定向回我的站点,我使用保存在会话中的数据请求“PaymentDetails”API 操作以获取有关付款的信息。
- 我将结果保存在数据库中并检查响应“金额”是否等于请求“金额”(出于安全考虑)。
- 如果一切顺利,我会更新数据库并将支付 TrackingID 与用户和他购买的奖励相关联。
- 稍后(可能几个月后),管理员请求“ExecutePayment”API 操作,资金从我们转移给项目创建者,我们收取少量费用(众筹就是这样运作的......)
现在,我确定我错过了很多东西,但我不知道是什么:
- IPN API 怎么样?我需要它?在流程和检查中发挥什么作用?
- 如果用户在 PayPay(我的站点之外)中关闭浏览器窗口,我该怎么办。
- 听说 PayKey 有效期为 3 小时,如何在几个月后“执行付款”?
- 我如何处理 PayPal API 中的大量错误类型?
- 我需要处理的其他事情的任何提示或示例?安全?错误?其他的?
非常感谢,我真的很需要你的回答!