【问题标题】:PayPal IPN and PDT suddenly does not work anymorePayPal IPN 和 PDT 突然不再工作了
【发布时间】:2017-08-09 16:15:49
【问题描述】:

从本周开始,付款后转发到我们的网站在生产模式下不再起作用,但它仍然在沙盒中起作用。

实际上我们使用PDT作为直接转发和IPN作为备份。由于某种原因,付款没有完全完成。自本周初以来,似乎没有从 PayPal 建立 PDT 或 IPN 连接。 3 月 9 日的付款成功,但 3 月 11 日之后的所有付款都在 PayPal 页面上标记为成功,但我们的网站“不知道”,因此客户不会更新他们的帐户。

在尝试跟踪错误时,我切换到沙盒,但那里一切正常。

最近 PayPal 是否发生了一些变化? (付款过程中的设计是现在,但我不知道从什么时候开始......)

谢谢!

【问题讨论】:

    标签: paypal paypal-ipn paypal-pdt


    【解决方案1】:

    PDT 最大的缺点是消息只发送一次,而 IPN 会重复发送,直到服务器以正确的消息响应。您可以同时运行两者,但根据我的经验,这非常罕见(我以构建电子商务系统为生)。最近,我公司的许多使用 PayPal 作为支付方式的客户来找我们时遇到了类似的问题(RBS WorldPay 更是如此)。解决方案是尝试以下方法:

    • 确认 IPN 侦听器 URL 仍在工作并指向 正确的网站(有些人尝试使用一个 PayPal 帐户 多个站点,并将其更改为第二个站点,而不是认为它会 停止第一个站点的 IPN)。

    • 确保安装了最新版本的 PayPal 网关(如果 在 OpenCart / WooCommerce / Magento / 等...)。最新版本 需要 SHA-256。

    • 确保服务器已启用 SHA-256,如上所述 PayPal 现在要求 用户,以确保他们拥有它以便散列工作。

    • 确保已安装 SSL 证书。这还不是一个特定的要求,但在这个时代,如果你没有一个,你不可能得到很多订单。同样出于某些奇怪的原因,它为某些客户端修复了 IPN。

    希望这会有所帮助!

    【讨论】:

    • 同服务器同站点,我只是切换“沙盒模式”:if (SANDBOX == 1) { $paypal['url']="https://www.sandbox.paypal.com/cgi-bin/webscr"; $paypal['fsock_open']="ssl://www.sandbox.paypal.com"; $paypal['pp_hostname']="www.sandbox.paypal.com"; // Production Site: www.paypal.com } else { $paypal['url']="https://www.paypal.com/cgi-bin/webscr"; $paypal['fsock_open']="ssl://www.paypal.com"; $paypal['pp_hostname']="www.paypal.com"; }

      沙盒->作品生产->不转发
    • 这看起来像是您用来向 PayPal 发出请求的代码的一部分,实际上这不太可能是问题所在。我所说的侦听器 URL 是 PayPal 仪表板中设置的一部分。你那里的网址改了吗?
    • 监听器 URL 用于沙盒和生产模式相同。那么为什么沙盒可以工作而生产模式不行呢?
    • 您是否启用了 SHA-256?您的 IPN 是否使用 SHA-256?你有 SSL 证书吗?
    • 启用 SHA-256 是什么意思? OpenSSL 支持 SHA-256。生产服务器使用签名的 SSL 证书,测试服务器仅使用自签名证书。我不完全知道您对使用 SHA-256 的 IPN 的意思。我的服务器正在“侦听”任何 IPN 连接的 URL 是安全 URL。
    猜你喜欢
    • 2017-08-05
    • 2014-02-12
    • 2021-11-28
    • 2016-08-17
    • 2011-11-20
    • 2014-04-16
    • 2013-06-14
    • 1970-01-01
    • 2013-02-17
    相关资源
    最近更新 更多