php - Windows srv 2012 R2 IPN 问题上的 XAMPP

标签 php ssl paypal paypal-ipn

我在 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 box(一些 debian 发行版)托管时,同样的 ipn 检查代码和平工作,如果有帮助的话。

谢谢,谢谢

最佳答案

好吧,经过很长时间和彻底的测试并试图让 paypal IPN 工作,我的同事,发现了病是什么,所以我会把它贴在这里让我的鞋子里的其他人睡个好觉:)

我们的服务器 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');

对于第一行和第二行,将完整路径添加到正在 curl 到 paypal 的域的证书文件。

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

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

拥有 1024 位长的 verisign key 的那个! :)

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

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

干杯,

关于php - Windows srv 2012 R2 IPN 问题上的 XAMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28109304/

相关文章:

php - 正则表达式从 PHP 中的单词而不是数字中删除正斜杠

ruby-on-rails - Net/IMAP SSL 错误,2.1.5 和 2.2.1,但 2.1.0 和 2.1.2 有效

python - 尝试在Jupyter笔记本中处理我公司的SSL证书

wordpress - 在 WooCommerce 中使用 PayPal 时出错

软件产品的 PayPal 开发者帐户

php - Paypal IPN开发

javascript - 如何使用 php 和 ajax 将 GET 方法更改为 POST 方法

PHP MySQL PDO -> ON INSERT 如果值已经存在则执行另一个查询

php - 使用 JQuery AJAX 将 JSON 数组保存到 mysql

ssl - 如何配置 SSL 身份验证