【问题标题】:How to use curl in my paypal ipn?如何在我的贝宝 ipn 中使用 curl?
【发布时间】:2016-05-13 14:40:47
【问题描述】:

我在我的捐赠网站中使用 PayPal,我需要将其存储在数据库中。我正在使用 PayPal IPN 来执行此操作。之前,它适用于我正在使用的免费虚拟主机,即 000webhost。但一个月后,它没有奏效。它有一个错误

unable to connect to ssl://www.sandbox.paypal.com:443

我没有更改任何代码。但一些建议是 000webhost 免费虚拟主机不支持 SSL。我的 IPN 如下所示。

$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
if (!$fp) {
    $mail = mail('myemail', 'Error at 21', "{$errnum}: {$errstr}");
} else {
    //insert database here.
}

我的问题是,我阅读了 000webhost,它在他们的免费虚拟主机中支持 curl。如何将我的 ssl 更改为 curl?

【问题讨论】:

    标签: php ssl curl paypal


    【解决方案1】:

    您的服务器应该支持“SHA-256”并且应该使用“G5”。

    https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1766&viewlocale=en_US&direct=en

    如果你想在 curl 中尝试,你可以使用code sample

    如果你想忽略 SSL(不推荐,只是为了测试),你可以尝试在第 58,59 行禁用

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    

    【讨论】:

    • 这是我的 ipn.log 中的消息 [2016-02-04 01:23 America/New_York] 无法连接到 PayPal 以验证 IPN 消息:错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO: sslv3 警告握手失败
    • 是的,你需要升级你的服务器
    【解决方案2】:

    我找到了this,如果有帮助的话:

    $fp = fsockopen('tls://www.sandbox.paypal.com', 443, $errno, $errstr, 30); 
    

    如果您决定尝试 Vimalnath 建议的 curl 代码,我必须添加以下行以使其在沙箱中工作:(ref)

    curl_setopt($ch, CURLOPT_SSLVERSION, 6);
    

    【讨论】:

    • 谢谢先生。我刚刚升级了我的域。我也在phpmyadmin中使用了触发器,免费域不支持所以,我决定升级。 :)
    猜你喜欢
    • 2013-02-01
    • 2015-06-16
    • 2016-05-09
    • 2015-06-09
    • 2014-11-04
    • 2023-03-11
    • 2014-04-24
    • 2012-08-19
    • 2012-08-15
    相关资源
    最近更新 更多