/**
* 封装curl的调用接口,post的请求方式
* @param $url
* @param $requestString
* @param int $timeout
* @return bool|mixed
*/
function doCurlPostRequest($url, $requestString, $timeout = 5, $json=1) {
if($url == "" || $requestString == "" || $timeout <= 0){
return false;
}
$con = curl_init((string)$url);
curl_setopt($con, CURLOPT_HEADER, false);
curl_setopt($con, CURLOPT_POSTFIELDS, $requestString);
curl_setopt($con, CURLOPT_POST, true);
if($json) {
curl_setopt($con, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($requestString)
));
}
curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false); //信任任何证书
curl_setopt($con, CURLOPT_SSL_VERIFYHOST, false); // 检查证书中是否设置域名,0不验证
curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
$curl_return = curl_exec($con);
if(is_bool($curl_return) && $curl_return == false)
{
return json_encode_ex(ReturnError('CURL错误:'.curl_errno($con).'-'.curl_error($con)));
}
return $curl_return;
}
调用:$return = doCurlPostRequest($request_url, http_build_query($data), 10, 0);
/**
* 封装curl的调用接口,get的请求方式
* @param $url
* @param array $data
* @param int $timeout
* @return bool|mixed
*/
function doCurlGetRequest($url, $data = array(), $timeout = 100) {
if($url == "" || $timeout <= 0){
return false;
}
if($data != array()) {
$url = $url . '?' . http_build_query($data);
}
$con = curl_init((string)$url);
curl_setopt($con, CURLOPT_HEADER, false);
curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false); //信任任何证书
curl_setopt($con, CURLOPT_SSL_VERIFYHOST, false); // 检查证书中是否设置域名,0不验证
curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
$curl_return = curl_exec($con);
if(is_bool($curl_return) && $curl_return == false)
{
return json_encode_ex(ReturnError('CURL错误:'.curl_errno($con).'-'.curl_error($con)));
}
return $curl_return;
}
调用:$para = array(
'grant_type' => 'client_credential',
'appid' => $_merchant['appid'],
'secret' => $_merchant['appsecret'],
);
$url = 'https://api.weixin.qq.com/cgi-bin/token';
$ret = doCurlGetRequest($url, $para);
//返回格式管理
function return_format($data=array())
{
$format=isset($_REQUEST['return_format'])?$_REQUEST['return_format']:'';
if(!$format || empty($data))
{
return $data;
}elseif ($format=='json')
{
header('Content-Type:application/json; charset=utf-8');
die(json_encode($data,JSON_UNESCAPED_UNICODE));
}elseif($format=="xml")
{
$xml = "<xml>";
foreach ($data as $key=>$val)
{
if (is_numeric($val))
{
$xml.="<".$key.">".$val."</".$key.">";
}
else
{
$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
}
}
$xml.="</xml>";
return $xml;
}
}