欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于最近(2016年)新微信文档开发的问题,跪求CSDN版本里面的大神们来看看

程序员文章站 2022-06-16 07:58:21
...
2016年新版的微信开发文档,要求调用的接口都是https协议下的,然而本人在项目开发中,遇到了一个问题 就是在
本服务器上面上传图片素材的时候,通过CURL扩展无法实现对https协议的数据传输,导致了接口调用出现 media data
is missing 这个问题,而在官方中,没有给出一个具体的数据类型,我不知道微信服务器接收的数据格式是否和以前
那个http协议下CURL扩展能轻松返回给你一个json数据格式,并通过media_id 进行下一步操作,我尝试了很多方法
fie_get_contents 用过把文件变为二进制文件传输给微信服务器,json格式的 然而都没有效果,


求PHP版本里面的大神来看看!!!


回复讨论(解决方案)

这是我去年写的一个上传素材库的接口

 //上传永久素材地址    const UPLOADIMAGE =  "https://api.weixin.qq.com/cgi-bin/material/add_material?";    function upload_curl_pic($file){			$file	=	"@".dirname(DATA_DIR)."/data/temp/".$file;		$fields	=	array("media" => $file);		$media_id = $this->http_postform(self::UPLOADIMAGE.'access_token='.$this->access_token, $fields);		return $media_id;	}/*	*		form表单上传永久素材文件	*		return media_id=>素材id	*/	public function http_postform($url, $data = null){		$curl = curl_init();				curl_setopt($curl, CURLOPT_URL, $url);				curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);				curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);				if (!empty($data)){						curl_setopt($curl, CURLOPT_POST, 1);						curl_setopt($curl, CURLOPT_POSTFIELDS, $data);				}				curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);				$output = curl_exec($curl);				curl_close($curl);				return $output;		}


刚刚试了试 没问题呀 实质上她要求你通过curl 的form表单方式上传 类似与html中的form文件上传一样 需要设置filename、filelength、content-type等信息

不知道你程序怎么写的 感觉微信的接口没怎么变啊,两年钱的写接口还在用,没发现你说的问题,你指的是哪个接口?

现在的新的素材 上传临时和永久的素材 都不是用这种方式了 而且 这种方式 curl我试过啊 ,2016年的新的接口跟你这种调用方式不同了 https: 我试了下 curl 对http有效, 但是对于https就挂了 好郁闷。

本人环境问题 ,导致CURL扩展没法使用 。