微信小程序 直播商品接口 上传图片
发布于 4 年前 作者 pwan 3846 次浏览 来自 分享

问题:微信小程序 直播商品接口 上传图片 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;
}

有问题可交流讨论,个人微信:

回到顶部