Paypal 在 Wicket 应用程序中的 IPN

Posted

技术标签:

【中文标题】Paypal 在 Wicket 应用程序中的 IPN【英文标题】:Paypal's IPN in Wicket application 【发布时间】:2014-03-22 15:45:39 【问题描述】:

我正在构建基于 Wicket 的 Web 应用程序,并实现了 Paypal 的“立即购买”按钮。我需要的功能是允许用户仅在验证交易后下载文件。我不太了解的是如何在 Wicket 应用程序中实现 IPN。在开始编码之前,我需要了解它背后的基本理论。

那么在 Wicket 应用程序中使用 Paypal 的 IPN 验证付款的步骤是什么? “成功”和“IPN 回调”页面可以是同一个页面吗?

【问题讨论】:

【参考方案1】:

IPN 是来自贝宝的回调,用于通知商家混合类型的更改。 IPN 侦听器(您的页面)必须实现其协议 https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNIntro/

引用: 当您的侦听器收到事件通知时要采取的操作是特定于应用程序的。以下是应用程序为响应 IPN 消息而采取的一些常见操作:

Trigger order fulfillment or enable media downloads
Update a list of customers
Update accounting records
Create specialized "to do" lists

支付成功页面是支付成功后客户端浏览器重定向的页面。

结果是成功支付页面根据其结果在单次支付中被调用一次或不调用。 IPN 监听器可以随时调用,即使当前没有付款正在进行中!

如链接中的图片所示,IPN 回调注定要处理混合后台操作。例如。将给定的结果存储到您的数据库等中。

【讨论】:

所以IPN Listener页面应该接收IPN消息作为页面参数? 是的,IPN 使用 HTTP POST 数据传输和表单编码 'application/x-www-form-urlencoded',所以它可以作为 Wicket 中的 PagePrameters。 谢谢你,马丁。我的最后一个问题:总的来说,我真正不明白的是 IPN Listener 和 Success Page 是如何关联的。假设支付成功,用户被重定向到成功页面。我应该在我的成功页面中检查存储的 IPN 变量吗?如果没有,我需要在哪里处理 IPN 消息? 在 IPN 监听器上定义了不止一个支付确认通知。对 IPN 的通知也有两个阶段,获取消息,确认消息返回 PayPal,然后再次接收最终结果。所有这些在developer.paypal.com/webapps/developer/docs/classic/ipn/… 上都有很好的描述。见图片paypalobjects.com/webstatic/en_US/developer/docs/ipn/… 例如订阅及其撤销,超出了单一支付流程的范围。您可以签署/确认每月付款(例如发送商业新闻)。如果操作仍然有效(信用足够,未取消订阅),贝宝有责任每月通知商家。 IPN是允许商家实现这种服务的机制。

以上是关于Paypal 在 Wicket 应用程序中的 IPN的主要内容,如果未能解决你的问题,请参考以下文章

wicket,spring jpa存储库 - @Autowire上的nullpointer

Wicket基本实现向导步骤

Wicket DropDownChoice 中的角色权限

Wicket 授权:根据页面模型授予访问权限

由于 CSRF 攻击,Wicket + websocket 页面不刷新

Wicket实战概述