gpt4 book ai didi

ssl - PayPal IPN 更新以适应 HTTP1.1 - 连接由对等方重置

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:28 25 4
gpt4 key购买 nike

我们一直在努力根据最近的变化更新我们的 PayPal IPN 脚本。这是 PayPal 的部分说明 ...

Your Action Required before February 1, 2013 You will need to update your IPN and/or PDT scripts to use HTTP 1.1, and include the "Host: www.paypal.com" and "Connection: close" HTTP headers in the IPN and PDT scripts.

我们这样做了,但 IPN 失败了。 PayPal 商家技术服务要求我们转为 SLL 连接。以前我们与 PayPal 的连接是基于......

fsockopen ('www.paypal.com', 80, $errno, $errstr, 30)

现在是...

fsockopen ('ssl://ipnpb.paypal.com', 443, $errno, $errstr, 30)

我们必须克服主机配置的 SSL 问题才能使其正常工作,但它现在建立了连接。然而,IPN 要求我们回发到 PayPal 以接收“已验证”通知,此时脚本可以根据已确认的付款进行本地处理。

这是它失败的地方。

示例 PayPal 脚本的行是:

if (!$fp) {
// HTTP ERROR

} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);

if (strcmp (trim($res), "VERIFIED") == 0) { ... rest of script

但是响应返回空白。我插入了一个诊断程序,通过电子邮件将每个阶段的 $res 值发送给我。如果我用旧脚本执行此操作,它会返回一个“已验证”值就好了。几个站点上的旧脚本多年来一直很稳定。我现在已经在两台不同服务器上的两个不同站点上尝试了这些新更新,结果是一样的。

在查看 Apache 日志时,我看到了这个错误:

PHP 警告:fgets() [function.fgets]:SSL:第 145 行/home/[sitename]/public_html/[IPN scriptname].php 中的对等方重置连接

因此,PayPal 似乎在未发送已验证响应的情况下关闭了连接。然而,PayPal 支持人员否认这是一个问题,因为连接首先打开。

我花了几天时间试图解决这个问题。我还有 2 月 1 日的截止日期,之后 PayPal 说我的旧脚本可能无法运行,但新脚本也不会。

其他人有这方面的经验吗?

最佳答案

如果其他人有同样的问题,CURL 似乎是 PayPal 的 IPN 的推荐选择。

在 Github 上查看代码示例:https://github.com/paypal/ipn-code-samples/blob/master/paypal_ipn.php

关于ssl - PayPal IPN 更新以适应 HTTP1.1 - 连接由对等方重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14506776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com