更正众筹网站中的 PayPal 自适应支付流程。我被困住了

Posted

技术标签:

【中文标题】更正众筹网站中的 PayPal 自适应支付流程。我被困住了【英文标题】:Correct PayPal Adaptive Payments flow in crowd-funding site. I'm stuck 【发布时间】: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 中提问,但我遇到了完全相同的问题。 【参考方案1】:

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

    这是 IPN 有用的原因之一。无论用户是否返回您的站点,都会触发 IPN。如果您在感谢页面或类似内容中执行后付款处理程序,我建议您将其移至 IPN 解决方案中。

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

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

    听起来您几乎掌握了大部分内容。

【讨论】:

以上是关于更正众筹网站中的 PayPal 自适应支付流程。我被困住了的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 自适应/链式支付工作流程

PayPal 自适应支付表单提交错误

Paypal 自适应支付无法在移动设备上运行

React Native 上的 PayPal 自适应支付流程

paypal自适应支付IPN中的自定义字段

PayPal 自适应支付 - 在 PayPal 网站上失败