在开发微信支付的过程中,遇到了关于cURL加密传输的问题,做下记录方便今后查阅。
提交数据到https时,需要pem证书来加密。
我们使用浏览器访问https的时候,浏览器会自动加载网站的安全证书进行加密。但是你用curl请求https时,没有通过浏览器,就只有自己手动增加一个安全证书进行加密。
代码示例:
01 |
private function httpGet($url) { |
03 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
04 |
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
|
05 |
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
|
07 |
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
|
08 |
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
|
10 |
curl_setopt($curl, CURLOPT_URL, $url);
|
12 |
$res = curl_exec($curl);
|
知识点摘要:
CURLOPT_SSL_VERIFYPEER 设置为FALSE 禁止 cURL 验证对等证书(peer’s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
CURLOPT_CAINFO 一个保存着1个或多个用来让服务端验证的证书的文件名。这个参数仅仅在和CURLOPT_SSL_VERIFYPEER一起使用时才有意义。可能需要绝对路径。
CURLOPT_CAPATH 一个保存着多个CA证书的目录。这个选项是和CURLOPT_SSL_VERIFYPEER一起使用的。
CURLOPT_SSL_VERIFYHOST 设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name)。译者注:公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。 设置成 2,会检查公用名是否存在,并且是否与提供的主机名匹配。 在生产环境中,这个值应该是 2(默认值)。
分享到:
相关推荐
记录curl 自定义进度条 CURLOPT_PROGRESSFUNCTION 相关代码
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $content = curl_exec($ch); curl_close($ch); // 结束 Curl...
获取页面内容,不直接输出到页面,CURLOPT_RETURNTRANSFER参数设置 使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出。...curl_setopt($ch, CURLOPT_SSL_VERIF
在通常情况下,我们使用 CURL 来提交 POST 数据的时候,我们已经习惯了这样的写法:复制代码 代码如下:curl_setopt( $ch, CURLOPT_POSTFIELDS,$post_data);但是这样的写法在有时候并不会很好用,可能会得到服务器...
curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, my_progress_func); curl_easy_perform(curl); fclose(outfile); /* always cleanup */ curl_easy_cleanup(curl); } return 0; }
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 如果成功只将结果返回,不自动输出任何内容。 如果失败返回FALSE curl_setopt($ch, CURLOPT_RETURNTRANSFER,0); 或着不使用这个选项: 如果成功只返回TRUE,自动输出...
ios编译COCOS2DX时,有些版本会出现以下错误,'__curl_rule_01__' declared as an array with a negative size 只需把所有的.h文件替换掉引擎的,再把libcurl.a添加到工程中,即可解决这问题
curl_setopt($curl, CURLOPT_URL, 'api.yeelink.net/v1.0/device/21288/sensor/37498/datapoints'); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); ...
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $...
开发博客http://blog.csdn.net/iuoon/article/details/52328830
// curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE); // curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VE
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 症状:php curl调用curl_exec返回bool(false),命令行curl调用正常。 排查方法: var_dump(curl_error($ch)); 返回: string(23) “Empty reply from server” ...
PHP的curl()在抓取网页的效率方面是比较高的,而且支持多线程,而file_get_... curl_setopt($curl, CURLOPT_URL, $url);//登录提交的地址 curl_setopt($curl, CURLOPT_HEADER, 0);//是否显示头信息 curl_setop
$account='kepo3531';//$_GET['a'];...curl_setopt($curl, CURLOPT_URL, $target); curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Accept: applica
下面代码使用curl模拟post请求链接后直接显示出了文件内容,如何修改成不显示内容而直接下载请求到的.torrent格式文件呢 ... curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_H
GET: /** * 通过URL获取页面信息 * @param $url 地址 ... curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_RETURNTRANS
本文实例讲述了php版微信小店调用api的方法。分享给大家供大家参考,具体如下: 刚开始调用微信小店api的时候,可能大家会遇到问题。... curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt
navigator https or http