# 上传图片
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南
接口英文名:img_upload
本接口可用于上传图片,上传后获取 media_id 支持其他接口使用。
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/shop/ec/basics/img/upload?access_token=ACCESS_TOKEN&upload_type=UPLOAD_TYPE&resp_type=RESP_TYPE&height=HEIGHT&width=WIDTH
# 云调用
调用方法:channels.ec.basics.img.upload
出入参和 HTTPS 调用相同,调用方式可查看 云调用 说明文档
# 第三方调用
本接口支持第三方平台代商家调用。
该接口所属的权限集 id 为:85、129、131
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String parameters
参数名 | 类型 | 必填 | 示例 | 说明 |
---|---|---|---|---|
access_token | string | 是 | ACCESS_TOKEN | 接口调用凭证,可使用 access_token、authorizer_access_token |
upload_type | number | 是 | - | 传类型。0:二进制流;1:图片url(不支持301/302跳转),该参数为 URL 参数 |
resp_type | number | 是 | - | 返回数据类型。0:media_id和pay_media_id;1:图片链接(商品信息相关图片请务必使用此参数得到链接),该参数为 URL 参数 |
height | number | 否 | - | upload_type=0时必填,图片的高,单位:像素,该参数为 URL 参数 |
width | number | 否 | - | upload_type=0时必填,图片的宽,单位:像素,该参数为 URL 参数 |
# 请求体 Request Payload
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
img_url | string | 否 | upload_type=1时必填,图片url,该参数为 POST包请求参数 |
media | formdata | 否 | upload_type=0时必填,图片文件buffer |
# 3. 返回参数
# 返回体 Response Payload
参数名 | 类型 | 说明 |
---|---|---|
errcode | number | 错误码 |
errmsg | string | 错误信息 |
pic_file | object | 图片信息 |
img_url | string | 图片 url |
# Res.pic_file Object Payload
图片信息
参数名 | 类型 | 说明 |
---|---|---|
media_id | string | media_id |
pay_media_id | string | 支付 media_id |
# 4. 注意事项
resp_type=1
时将会返回形如mmecimage.cn/p/{appid}/{imgKey}
的图片链接,该链接永久有效,同一张图片,无需重复调用该接口重复上传;- 接口返回的图片链接有访问频率限制,超出访问频率后,会返回404状态码,请勿将该图片链接用于用户端(访问量较大)展示;
- 当前访问频率限制规则:
- appid维度:10000/min
- imgKey维度:100/min
- 接口返回的图片链接,支持进行图片处理(缩放/裁剪/压缩/水印等),具体使用方法参考图片处理,该文档内的
download_url
即为当前接口返回的图片链接; - 图片格式目前只支持bmp, jpg(jpeg), png, svg, webp,若使用
upload_type=1
的方式上传图片,平台侧会根据访问img_url
后返回的content-type
对文件格式进行判断,且不支持301/302跳转; - 图片上传大小限制:
resp_type=0
为2MBresp_type=1
为10MB
# 平台支持的图片格式与content-type
关系说明
图片格式 | content-type |
---|---|
.bmp | image/bmp |
.bmp | application/x-bmp |
.jpg | image/jpeg |
.jpg | image/jpg |
.jpeg | image/jpeg |
.jpeg | image/jpg |
.png | image/png |
.png | application/x-png |
.svg | text/xml |
.webp | image/webp |
# 5. 代码示例
# 5.1 请求示例1
请求示例
curl -F media=@test.jpg
"https://api.weixin.qq.com/channels/ec/basics/img/upload?access_token=ACCESS_TOKEN&upload_type=0&resp_type=0&height=108&width=108"
返回示例
{
"errcode": 0,
"errmsg": "ok",
"pic_file": {
"media_id": "THE_MEDIA_ID",
"pay_media_id": "THE_PAY_MEDIA_ID"
}
}
# 5.2 请求示例2
请求示例
curl -d "{\"img_url\":\"https://URL地址/yyy\"}" "https://api.weixin.qq.com/channels/ec/basics/img/upload?access_token=ACCESS_TOKEN&upload_type=1&resp_type=1"
返回示例
{
"errcode": 0,
"pic_file": {
"img_url": "xxxxx"
}
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码
错误码 | 错误描述 | 解决方案 |
---|---|---|
10020055 | 参数有误 | |
10020056 | 图片格式不合法, 只支持bmp, jpg(jpeg), png, svg, webp | |
10020057 | 获取原图超过2s, 未返回结果超时 | |
10020058 | 上传图片失败,请重试 | |
10020059 | 图片为空 | |
10020060 | 图片大小超出限制 | |
10020061 | 图片URL非法,如:传入mmecimage.cn/p/前缀的图片 | |
10020193 | 不支持拉取原图301/302跳转 | |
10020253 | 原图url打开返回404 | |
10020254 | 原图url带了 // ,无法支持该格式 url |
# 7. 适用范围
本接口支持「微信小店」账号类型调用。其他账号类型如无特殊说明,均不可调用。