【发布时间】:2012-02-26 04:40:53
【问题描述】:
我正在使用 CodeIgniter 框架开发一个众筹网站(类似于 Kickstarter)。
我使用this library“成功”实现了 PayPal 的自适应支付。
但是,我只是不确定如何正确和安全地检查成功/失败的付款,并且女巫数据对于保存到数据库很重要。
注意:这是一个链式延迟付款,我是主要收款人,次要收款人是众筹项目创建者。在预定的时间段后,钱被转移到第二个接收方。
我现在的流程是这样的:
- 用户点击购买奖励。
- 我使用“支付”API 操作请求付款(包括唯一的 TrackingID)并将请求保存在数据库中。
- 如果请求成功,我会在会话中保存一些响应数据(TrackingID、PayKey、金额...)并重定向到 PayPal..
- 在此步骤中,用户可以:接受付款、取消或关闭浏览器,所以我真的不知道这里会发生什么...(建议?)
- 如果用户接受付款,他会被重定向回我的网站,我会使用我保存在会话中的数据来请求“PaymentDetails”API 操作以获取有关付款的信息。
- 我将结果保存在数据库中并检查响应“金额”是否等于请求“金额”(出于安全考虑)。
- 如果一切正常,我会更新数据库并将支付 TrackingID 与用户和他购买的奖励相关联。
- 稍后(可能几个月后),管理员请求“ExecutePayment”API 操作,资金从我们转移给项目创建者,我们收取少量费用(这就是众筹的运作方式.. .)
现在,我确定我错过了很多东西,但我不知道是什么:
- IPN API 怎么样?我需要它?在流程和检查中涉及到什么?
- 如果用户在 PayPay(我的站点外)中关闭浏览器窗口,我该怎么办。
- 听说 PayKey 有效期为 3 小时,如何在几个月后“执行付款”?
- 如何处理 PayPal API 中的大量错误类型?
- 我需要注意的其他事项的任何提示或示例?安全?错误?其他人?
非常感谢,我真的需要你的回答!
【问题讨论】:
-
介意你能告诉我你做了什么来解决第4步“在这一步中用户可以:接受付款,取消,或者只是关闭浏览器,所以我真的不知道这里发生了什么...(建议?)”我有同样的困境 - 在我创建 PayKey 后用户被重定向到贝宝(我将 paykey 和 tracking_id 存储在数据库中以供将来参考)。我可以通过 IPN 和返回 url 处理响应,但是如果用户关闭浏览器,我会陷入等待通知的“CREATE”事务状态。很抱歉在 cmets 中提问,但我遇到了完全相同的问题。
标签: php codeigniter paypal paypal-adaptive-payments