如何使用fopen而不是fsockopen

时间:2015-02-01 11:30:25

标签: php paypal paypal-ipn

我正在使用PHP脚本检查PayPal即时付款通知(IPN),我的托管服务提供商(1& 1)不允许使用fsockopen()和pfsockopen(),但他们确实让你使用fopen()。这是fsockopen代码:

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

我尝试过其他方法,例如放入替换的php.ini文件,但它们没有用。我的问题是如何将此语句转换为使用fopen,给出相同的结果,例如

$fp = fopen(...);

谢谢!

1 个答案:

答案 0 :(得分:0)

1& 1是一个很大的主机,它们可能阻止了对其他网站的访问,因为太多的用户尝试使用他们的1& 1 PHP脚本来DoS其他服务器。

<强>首先: 检查您的网站托管是否可以访问SSL网站:

<?php
echo file_get_contents('https://mail.google.com');

当您在Web浏览器中打开此脚本时,它应该将您重定向到gmail页面。 错误/白页=阻止访问SSL(或所有站点)。

<强>第二

考虑其他PayPal解决方案,例如&#39;通知&#39; (在paypal网站上关闭IPN以使其正常工作!)。此方法不需要任何HTTP / SSL连接到任何其他服务器。 Paypal只需在付款后打开您的网站,其中包含有关谁/何时/多少付款的信息。这对大多数网站来说已经足够了。 例如:

在一个页面上,我使用属性&#39; notify_url&#39;:https://github.com/gesior/Gesior2012/blob/TFS-1.0/pages/paypal.php

发送给paypal的表单

在第二页,我制作了处理有关付款的PayPal通知的代码:https://github.com/gesior/Gesior2012/blob/TFS-1.0/pages/paypal_report.php

[Paypal通知服务器获得了一些指定的IP,因此没有人可以伪造通知]