XAMPP 关于 Windows srv 2012 R2 IPN 问题

XAMPP on Windows srv 2012 R2 IPN issue

我在 win server 2012 R2 上安装了最新的 xampp,并且已经为我的域成功安装了 ssl 证书,并且可以从外部访问它(我的站点:https://www.n-aos.com/)。网站服务正常!

我正在使用来自这里的官方 paypal php ipn 代码:https://github.com/paypal/ipn-code-samples/blob/master/paypal_ipn.php#L58-L59 并且标记了不起作用的问题,第 58 和 59 行。

如果我将 CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST 设置为 0 那么服务工作正常,但我不想在没有验证的情况下工作...

我也确实尝试从 (http://curl.haxx.se/docs/caextract.html) 下载 cabundle 证书,并使用未注释的行来使用该证书,但错误与没有第 79 行和第 80 行时相同

调试错误日志只有这一行:

[2015-01-23 10:36 Europe/Zagreb] Can't connect to PayPal to validate IPN message: SSL certificate problem: unable to get local issuer certificate

如果您能想到我可以做的事情,我将不胜感激。顺便说一句,几个月前当它从 linux 盒子(一些 debian 发行版)托管时,同样的 ipn 检查代码和平工作,如果有帮助的话。

谢谢,谢谢

好的,经过非常长时间和彻底的测试并尝试让 paypal IPN 工作,我的同事发现了问题所在,所以我会 post 在这里为我的其他人提供帮助睡个好觉:)

我们的服务器ipn地址是https,需要这一步。

在与 paypal 通信的 php 文件中添加以下行:

curl_setopt($ch, CURLOPT_SSLCERT, 'c:/path/some.crt');
curl_setopt($ch, CURLOPT_SSLKEY, 'c:/path/some.key');
curl_setopt($ch, CURLOPT_CAINFO, 'c:/path/cabundle.crt');

对于第一行和第二行,添加指向 paypal 的域证书文件的完整路径。

对于第三行,这是棘手的部分,添加第二个 older 证书,来自此页面

http://curl.haxx.se/docs/caextract.html

拥有1024位长的verisign密钥的! :)

奇怪的是,一些 ssl 网站的测试确实通过了新的 cabundle,比如 google,银行网站,但 paypal 失败了..这让我们感到困惑

github 上证书文件的直接 link 位于此处:github link from 13.08.2015

干杯,