我正在使用PHP脚本检查PayPal即时付款通知(IPN),我的托管服务提供商(1& 1)不允许使用fsockopen()和pfsockopen(),但他们确实让你使用fopen()。这是fsockopen代码:
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
我尝试过其他方法,例如放入替换的php.ini文件,但它们没有用。我的问题是如何将此语句转换为使用fopen,给出相同的结果,例如
$fp = fopen(...);
谢谢!
答案 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,因此没有人可以伪造通知]