curl实用请求方法函数(个人用),含支付pem校验
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。

下面分享一个个人常用的CURL请求方法:
function https_request($url,$data=null,$header=null,$pem=null){
// 1. 初始化一个 CURL 对象
$curl = curl_init();
// 2.设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL,$url);
// (可选)设置头 阿里云的许多接口需要在头上传输秘钥
if(!empty($header)){
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
}
// 3.https必须加这个,不加不好使(不多加解释,东西太多了)
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //对认证证书进行检验
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
// 微信支付退款用的pem校验
if(!empty($pem)){
curl_setopt($curl, CURLOPT_SSLCERTTYPE, 'PEM');
curl_setopt($curl, CURLOPT_SSLCERT, "{$pem['0']}");
curl_setopt($curl, CURLOPT_SSLKEYTYPE, 'PEM');
curl_setopt($curl, CURLOPT_SSLKEY, "{$pem['1']}");
}
// 4.设置post数据,否则是get方式
if (!empty($data)){
//设置模拟post方式
curl_setopt($curl,CURLOPT_POST,1);
//传数据,get方式是直接在地址栏传的,这是post传参的解决方式
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//$data可以是数组,json
}
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。1是保存,0是输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 让curl跟随页面重定向
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
// 5. 运行cURL,请求网页
$output = curl_exec($curl);
// 6. 关闭CURL请求
curl_close($curl);
return $output;
}推荐阅读:
微信退款文章
微信支付文章
微信授权登录文章


