关于微信开发POST调用https和http的接口问题 调用curl方法 来实现POST请求http能实现 但是https不能实现,请问有人知道这是什么原因么,我的服务器里面没有CA证书 一遇到https的请求 就传不过去数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 php跟微信直接接口能用到CA证书的,应该是跟钱有关系的,比如红包等功能才用到证书验证的 这个我知道,CA证书没有 SSL加密也不需要 我的意思是微信接口现在都改版了 https请求 不能用扩展curl来做了 我在工作中遇到一个问题 就是调用素材接口的时候 用Crul出现了41005 数据没有传到微信服务器 没有证书就要通知 curl 不做证书检查不然 curl 是要加查证书的 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 跳过证书检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在<?php/** curl 获取 https 请求* @param String $url 请求的url* @param Array $data 要發送的數據* @param Array $header 请求时发送的header* @param int $timeout 超时时间,默认30s*/function curl_https($url, $data=array(), $header=array(), $timeout=30){ $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 跳过证书检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); $response = curl_exec($ch); if($error=curl_error($ch)){ die($error); } curl_close($ch); return $response;}// 调用$url = 'https://www.example.com/api/message.php';$data = array('name'=>'fdipzone');$header = array();$response = curl_https($url, $data, $header, 5);echo $response;?>参考:http://blog.csdn.net/fdipzone/article/details/39611461 1.跳过https认证2.curl openssl 要支持https 命令查看 curl -V 这张图是的的代码这张图是我测试的 我上传的文件数据是我本服务器的linux系统下面的 路径 加了个@ 接着我调用版主 傲雪星枫 的方法 也没调出 media_id来 公司的一个框架,想改点东西,但是在这个地方,执行不下去了 请教个url问题 高手速进啊 Topbaby.us 诚邀精英加盟 php 科学计数法 大家帮我查询一下,这个搜索有什么问题? php://input 接收文件失败,图片变的非常小,无法打开 还是mail()问题,换成iMail做邮件服务,我的php.ini该如何设置呢? 求救菜鸟问题:怎样配置php服务! 关于页面传递数据 PHP使用Access数据库使用iconv导字符截断的问题 求大神指点这个504 php接收post数据并写入mysql问题
我在工作中遇到一个问题
就是调用素材接口的时候
用Crul出现了41005 数据没有传到微信服务器
不然 curl 是要加查证书的
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
<?php
/** curl 获取 https 请求
* @param String $url 请求的url
* @param Array $data 要發送的數據
* @param Array $header 请求时发送的header
* @param int $timeout 超时时间,默认30s
*/
function curl_https($url, $data=array(), $header=array(), $timeout=30){ $ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); $response = curl_exec($ch); if($error=curl_error($ch)){
die($error);
} curl_close($ch); return $response;}// 调用
$url = 'https://www.example.com/api/message.php';
$data = array('name'=>'fdipzone');
$header = array();$response = curl_https($url, $data, $header, 5);echo $response;
?>
参考:http://blog.csdn.net/fdipzone/article/details/39611461
2.curl openssl 要支持https 命令查看 curl -V
这张图是我测试的
我上传的文件数据是我本服务器的linux系统下面的 路径 加了个@