最近公司在开发一个项目,是从外面接回来的系统,涉及微信开发这块,由于系统已经集成了部分的微信接口,所以没有使用EasyWechat,自己手写小微商户进件功能,今天写了上传图片功能,说说我遇到的坑吧
图片上传接口
https://api.mch.weixin.qq.com/secapi/mch/uploadmedia
请求参数
用的是tp5.0框架,上传图片一开始用的是
Request::instance()->file();
不过不大清楚用法,打印出的数据无法获取,因此调试阶段直接采用原生写法
$file = $_FILES;
这里个人感觉最大的坑是media参数,一直不太懂,按照文档的请求示例
请求示例:
curl --cert ./apiclient_cert.pem --key ./apiclient_key.pem -F 'mch_id=1000000000' -F 'media_hash=709d1e858d2ef9d0501cc053668b2872' -F 'sign=D675A1E471DBF7C0B1AC5883B5BDA9EF' -F 'media=@test.jpg' https://api.mch.weixin.qq.com/secapi/mch/uploadmedia
我觉得media应该是要上传的文件前面加’@'
$data['media'] = '@'.$path;
结果返回Empty reply from server,百度找答案,看到一个网友说要上传的不是文件地址,是文件本身,于是按照该网友的写法
$data['media'] = fopen($path,<