关于小微图片上传 API 错误问题

2019-03-09 14:01:49 +08:00
 abugs
问题:
使用的微信小微图片上传 API,里面的 media 格式请问是什么?
官方文档不详细,尝试了很多次 media=@1.jpg 或 media=1.jpg 或 绝对路径都不行。
不知道大家有没有遇到这种问题

错误信息:
<xml><return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[图片参数填写有误,请检查后重新提交]]></return_msg>
</xml>
3354 次点击
所在节点    PHP
7 条回复
anyele
2019-03-09 14:06:42 +08:00
我以前也遇到过这样傻逼错误
anyele
2019-03-09 14:07:06 +08:00
准备回答,一看你是 PHP
abugs
2019-03-09 14:08:34 +08:00
@anyele 是的,不知道哪里出错了?
anyele
2019-03-09 14:30:49 +08:00
@abugs #3 这是很早之前做的, 不知道有没有帮助
abugs
2019-03-09 14:34:19 +08:00
@anyele 谢谢回答,可能是咱俩用的接口不同,麻烦看下 这个接口 https://pay.weixin.qq.com/wiki/doc/api/xiaowei.php?chapter=19_9

这里面有个 media,我提交后,一直提示 [图片参数填写有误,请检查后重新提交] 这个错误,不知道是什么原因
echo404
2019-03-09 15:24:04 +08:00
不是图片的地址,是图片本身,需要用 fopen 打开:
public function uploadPhoto($img)
{
$args['mch_id'] = $this->mch_id;
$args['media_hash'] = md5_file($img);
$args['sign_type'] = 'HMAC-SHA256';
$args['sign'] = $this->getSign($args);
$args['media'] = fopen($img, 'r');
$i = 0;
foreach ($args as $key => $item) {
$data[$i]['name'] = $key;
$data[$i]['contents'] = $item;
$i++;
}
//发送参数
$url = "https://api.mch.weixin.qq.com/secapi/mch/uploadmedia";
$res = $this->request('POST', $url, ['cert' => $this->apiclient_cert, 'ssl_key' => $this->apiclient_key, 'verify' => false, 'multipart' => $data]);
$ret = $this->xmlToArray($res);
if ($ret['return_code'] != 'SUCCESS') {
return false;
}
return $ret['media_id'];
}
zhuyuanbo
2019-09-16 15:23:02 +08:00
@abugs 后来你怎么处理的?求教,我这边用 curl 还是一直报这个错误

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/542780

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX