问题:微信小程序 直播商品接口 上传图片 300006 goods img upload fail
官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/liveplayer/commodity-api.html
最近在对接微信小程序直播商品接口, 在对接其中的 商品添加并提审 接口时, coverImgUrl 需要填入mediaID(mediaID获取后,三天内有效);图片mediaID的获取,请参考以下文档: https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html);图片规则:图片尺寸最大300像素*300像素;
一开始看以为 小程序借公众号临时上传素材接口 上传图片,然后返回 media_id 。 调用接口后,上传图片成功了,用返回的media_id 去提审商品,一直返回
{"errmsg":"goods img upload fail","errcode":300006}
搜索社区文章:https://developers.weixin.qq.com/community/develop/doc/0000c223fac09056d63ac73865b400
原来 调用公众号上传素材接口 需要传入 小程序的 access_token,其他不变。最后上传成功,添加商品并提审成功。
部分代码:
/**
* 上传临时素材,有效期为3天(认证后的订阅号可用)
* 注意:数组的键值任意,但文件名前必须加@,使用单引号以避免本地路径斜杠被转义
* 注意:临时素材的media_id是可复用的!
* [@param](/user/param) array $data {"media":'@Path\filename.jpg'}
* [@param](/user/param) string $type 类型:图片:image 语音:voice 视频:video 缩略图:thumb
* [@return](/user/return) boolean|array
*/
public function uploadMedia($data = [], $type = 'image')
{
// 小程序 access_token
if (!$this->access_token && !$this->checkAuth()) {
return false;
}
if (empty($data)) {
return false;
}
$result = $this->curlFilePost('https://api.weixin.qq.com/cgi-bin/media/upload?access_token=' . $this->access_token . '&type=' . $type, $data);
if ($result) {
$json = json_decode($result, true);
if (!$json || !empty($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return $json;
}
return false;
}
有问题可交流讨论,个人微信: