0

我已经用于自适应贝宝付款。使用此代码

$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 是资源,给定布尔值||

如何删除这个请帮助我... :)

4

2 回答 2

0

发生这种情况是因为:

$fp = @fopen($url, "r", false, $ctx);

正在返回一个 FALSE 布尔值。删除 @ 运算符(错误控制)并查看您的函数是否抛出任何错误或通知。此外,请检查并确保您的 URL 正确。

于 2012-11-29T12:55:22.213 回答
0

您的fopen()通话失败(返回 false)。您为什么要使用 来抑制错误@

$url无法访问其中的任何内容。检查资源是否可访问并且没有网络问题。

如果您尝试访问https安全链接,则需要安装并启用 OpenSSL。

手册

成功时返回文件指针资源,错误时返回 FALSE。

于 2012-11-29T12:55:25.283 回答