【问题标题】:IPN Making Multiple Callbacks - Won't StopIPN 进行多次回调 - 不会停止
【发布时间】:2015-04-19 12:15:35
【问题描述】:

我正在针对 Paypal 沙盒测试我的 IPN 回调处理程序,在我的一生中,我无法确定它为什么会进行多次回调。从昨晚我开始测试购买开始。

在 IPN 中,我是否需要在确认交易告诉他们 IPN 回调成功后向 Paypal 发回帖子?

我检查了 IPN 历史记录并且 IPN 不断重试。日志显示 HTTP 响应代码 405 和 Delivery Status = Failed

请注意,我网站上的 IPN 回调方法处理来自 Paypal 的请求,我得到所有变量,例如交易 ID、金额等...

我使用的是 MVC,ActionResult 标有 [HttpPost]

【问题讨论】:

    标签: paypal paypal-ipn


    【解决方案1】:

    Introducing IPN

    IPN消息认证协议由四个步骤组成:

    1. PayPal HTTP 向您的侦听器发送一条 IPN 消息,通知它发生了事件。
    2. 您的侦听器向 PayPal 返回一个空的 HTTP 200 响应。
    3. 您的侦听器 HTTP 将完整的、未更改的消息发送回 PayPal;消息必须包含与原始消息相同的字段(以相同的顺序),并以与原始消息相同的方式进行编码。
    4. PayPal 回送一个字 - VERIFIED(如果消息与原始消息匹配)或 INVALID(如果消息与原始消息不匹配)。

    无论您是否对其采取行动,您的听众都必须对其收到的每条 IPN 消息做出响应。如果您不回复,PayPal 将假定未收到 IPN 并重新发送。 此外,PayPal 会继续定期重新发送消息,直到您的侦听器做出响应,尽管每次尝试的重试间隔都会增加。 IPN 将被重新发送最多四天,最多重试 15 次。

    Hth.

    【讨论】:

    • 谢谢!因此,在我确认我的听众的一切后,我将消息发回贝宝。您是否有回邮到 Paypal 的样本?
    • @MikeAnderson 查看链接了解很多的详细信息。一天结束时,您向他们发送 HTTP POST 以验证您是否已收到并成功处理了 IPN。这是您的“备份”——如果由于某种原因您的环境出现问题(关闭、更新、回收等),您将不会丢失与交易相关的重要通知。他们将根据上述重试“承诺”重试,直到您确认为止。嗯……
    • @MikeAnderson 根据您的问题,我假设您在 ASP.net 上?如果是这样,您的“侦听器”可能是通用处理程序 (ashx) 或 Web API 端点(不需要 UI/不需要 View)。您可以使用标准 WebClientHttpClient 以编程方式 POST
    • 我查看了那个链接,看起来他们确实提供了一个回发到 Paypal 的样本... paypal.com/cgi-bin/webscr?cmd=_notify-validate&mc_gross=19.95..... .....是的,我正在使用 MVC 框架...
    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多