我用于自适应PayPal支付。使用此代码
$params = array("http" => array(
"method" => "POST",
"content" => $body_data,
"header" => "X-PAYPAL-SECURITY-USERID: " . $API_UserName . "\r\n" .
"X-PAYPAL-SECURITY-SIGNATURE: " . $API_Signature . "\r\n" .
"X-PAYPAL-SECURITY-PASSWORD: " . $API_Password . "\r\n" .
"X-PAYPAL-APPLICATION-ID: " . $API_AppID . "\r\n" .
"X-PAYPAL-REQUEST-DATA-FORMAT: " . $API_RequestFormat . "\r\n" .
"X-PAYPAL-RESPONSE-DATA-FORMAT: " . $API_ResponseFormat . "\r\n"
));
$ctx = stream_context_create($params);
//open the stream and send request
$fp = @fopen($url, "r", false, $ctx);
//get response
$response = stream_get_contents($fp);
//check to see if stream is open
if ($response === false) {
throw new Exception("php error message = " . "$php_errormsg");
}
//close the stream
fclose($fp);
但显示错误消息
消息:|| php错误消息= stream_get_contents()期望参数1是资源,布尔给定||
如何删除此请帮助我...... :)
答案 0 :(得分:0)
发生这种情况是因为:
$fp = @fopen($url, "r", false, $ctx);
返回一个FALSE布尔值。删除@运算符(error control)并查看您的函数是否抛出任何错误或通知。另外,请检查并确保您的网址正确无误。
答案 1 :(得分:0)
您的fopen()
来电失败(返回false)。你为什么用@
?
无法访问$url
中的任何内容。检查资源是否可访问,并且没有网络问题。
如果您尝试访问https
安全链接,则需要安装并启用OpenSSL。
来自Manual:
成功时返回文件指针资源,错误时返回FALSE。