正确的PayPal适应性支付流程在众筹网站中流动.我被卡住了

Jon*_*han 5 php codeigniter paypal paypal-adaptive-payments

我正在使用CodeIgniter框架开发一个众筹网站(类似于Kickstarter).

我使用这个库 "成功"实施了PayPal的自适应支付.

但是,我只是不确定如何正确和安全地检查成功/失败的付款和女巫数据对于保存到数据库很重要.

注意:这是一个链式延迟付款,我是主要接收者,次要接收者是众筹项目创建者.在预定的一段时间之后,钱被转移到次要接收器.

我现在的流程是这样的:

  1. 用户点击购买奖励.
  2. 我使用'Pay'API操作来请求付款(包括唯一的TrackingID)并将请求保存在数据库中.
  3. 如果请求成功,我会在会话中保存一些响应数据(TrackingID,PayKey,金额......)并重定向到PayPal.
  4. 在此步骤中,用户可以:接受付款,取消或只关闭浏览器,所以我真的不知道这里发生了什么......(推荐?)
  5. 如果用户接受付款,则会将其重定向回我的网站,并使用我在会话中保存的数据来请求"PaymentDetails"API操作以获取有关付款的信息.
  6. 我将结果保存在数据库中并检查响应'amount'是否等于请求'amount'(为了安全性).
  7. 如果一切顺利,我更新数据库并将支付TrackingID与用户和他购买的奖励相关联.
  8. 稍后(可能是几个月后),管理员请求'ExecutePayment'API操作,并将资金从我们转移到项目创建者,我们需要支付少量费用(这就是群众资金的运作方式......)

现在,我确定我错过了很多东西,但我不知道是什么:

  1. IPN API怎么样?我需要它?在流程和检查中发挥作用?
  2. 如果用户在PayPay中(我的网站外)关闭浏览器窗口,我会怎么做.
  3. 我听说PayKey有效期为3小时,我怎么能在几个月后"执行付款"?
  4. 我如何处理PayPal API中的大量错误类型?
  5. 我需要处理的其他事项的提示或示例?安全?错误?其他?

非常感谢,我真的需要你的回答!

Dre*_*ell 9

  1. IPN会自动将数据发布到您的"监听器"(您需要开发),以便自动执行后付款程序.例如,您可以在IPN中更新数据库,点击第三方Web服务,生成电子邮件收据等,以便在您的PayPal帐户中收到任何金钱时自动发生这些事件.您还可以将其设置为处理退款,争议和其他事件.这不是必需的,但通常非常有用.

  2. 这是IPN有用的一个原因.无论用户是否将其恢复到您的网站,都会触发IPN.如果您在感谢页面或其他类似的地方进行后付款处理程序,我建议您将其移至IPN解决方案中.

  3. PayKey在用作令牌时确实有效3小时.但是,当您使用CREATE的ActionType调用Pay时,它会设置延迟付款,PayKey最多有效期为90天.

  4. 错误信息将始终以相同的格式返回响应中.您可以根据此标准响应相应地记录或显示错误.

  5. 在大多数情况下,听起来你几乎都处于最重要的位置.