图片上传
更新时间:2025.08.28商品券接口调用过程中需要传入各种图片URL,请使用本接口上传图片到微信支付,并使用接口返回的URL。
接口说明
支持商户:【品牌商户】
请求方式:【POST】/brand/marketing/product-coupon/media/upload-image
请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点
【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看
接口限频:20/秒(品牌ID维度)
请求参数
Header HTTP头参数
Authorization 必填 string
请参考签名认证生成认证信息
Accept 必填 string
请设置为application/json
Content-Type 必填 string
请设置为multipart/form-data
Wechatpay-Serial 必填 string
【微信支付公钥ID】 请传入brand_id对应的微信支付公钥ID,接口将会校验两者的关联关系,参考微信支付公钥产品简介及使用说明获取微信支付公钥ID和相关的介绍。以下两种场景将使用到微信支付公钥: 1、接收到接口的返回内容,需要使用微信支付公钥进行验签; 2、调用含有敏感信息参数(如姓名、身份证号码)的接口时,需要使用微信支付公钥加密敏感信息后再传输参数,加密指引请参考微信支付公钥加密敏感信息指引。
Form 表单
meta 必填 object
【媒体图片文件元信息】 使用 JSON 格式传输
| 属性 | |
filename 必填 string(150) 【图片文件名】 商户上传的媒体图片的名称,商户自定义,必须以JPG、BMP、PNG为后缀,名称不能超过150个字符 sha256 必填 string 【图片文件摘要】 图片文件的文件摘要,即对图片文件的二进制内容进行sha256计算得到的值 |
file 必填 file
【媒体图片二进制内容】 将媒体图片进行二进制转换,得到的媒体图片二进制内容,在请求Body中上传此二进制内容。媒体图片只支持JPG、BMP、PNG格式,文件大小不能超过2M。
请求示例
POST
应答参数
200 OK
image_url 必填 string(256)
【图片URL】 微信返回的媒体文件标识url。有效期为永久
应答示例
200 OK
错误码
以下是本接口返回的错误码列表。详细错误码规则,请参考微信支付接口规则-错误码和错误提示
状态码 | 错误码 | 描述 | 解决方案 |
|---|---|---|---|
400 | PARAM_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
400 | INVALID_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 接口规则 |
401 | SIGN_ERROR | 验证不通过 | 请参阅 签名常见问题 |
500 | SYSTEM_ERROR | 系统异常,请稍后重试 | 请稍后重试 |
403 | NO_AUTH | 品牌没有此接口权限 | 品牌没有此接口权限 |
400 | INVALID_REQUEST | 参数中的 meta 字段与文件的基本信息不一致,请确认文件名是否一致 | 参数中的 meta 字段与文件的基本信息不一致,请确认文件名是否一致 |
400 | PARAM_ERROR | 参数错误,上传图片为空 | 请提供有效图片二进制 |
400 | PARAM_ERROR | 参数错误,上传的图片格式未知或不在支持范围内 | 请使用文档中指定类型的图片 |
400 | INVALID_REQUEST | 参数错误,上传的图片与 meta 中的 sha256 值校验不通过 | 请使用正确的sha256 值 |
400 | PARAM_ERROR | 参数错误,上传的图片过大 | 请缩小图片文件的体积 |
400 | PARAM_ERROR | Http header中缺少必填参数Wechatpay-Serial | 缺少必要商品券图片,请补充上传后重试 |
400 | PARAM_ERROR | 参数过长 | 请参考文档中对每个字段的要求以及组合要求,确认请求参数是否满足 |
400 | PARAM_ERROR | 参数错误 | 请参考文档中对每个字段的要求以及组合要求,确认请求参数是否满足 |
401 | SIGN_ERROR | Http头Authorization值格式错误,请参考《微信支付商户REST API签名规则》 | Http头Authorization值格式错误,请参考《APIv3如何签名和验签》,检查传递的Authorization值是否符合规则 |
401 | SIGN_ERROR | Http头Authorization中的timestamp与发起请求的时间不得超过5分钟 | Authorization 头 timestamp 与请求时间间隔超 5 分钟,需重新生成timestamp并替换该字段后重试。 |
401 | SIGN_ERROR | Authorization不合法 | Http头未传递Authorization值或Authorization值格式错误,请参考《APIv3如何签名和验签》,检查传递的Authorization值是否符合规则 |
400 | INVALID_REQUEST | Http头缺少Accept或User-Agent | Http头缺少Accept或User-Agent,请根据API文档在请求头中补充该参数 |
400 | PARAM_ERROR | 请求中含有未在API文档中定义的参数 | 请求中含有未在API文档中定义的参数,请检查传递的参数列表是否有编写错误的字段名 |
401 | SIGN_ERROR | Http头Authorization认证类型不正确 | Http头Authorization认证类型不正确,请将认证类型修改为WECHATPAY-BRAND-SHA256-RSA2048 |
400 | INVALID_REQUEST | Http头Accept值必须为application/json或*/* | 请将Http头Accept值修改为application/json或*/* |
