初始化上传

更新时间:2025.09.29
||| 安装 Skill

创建分块上传会话,获取唯一上传任务ID(用于后续上传分块)。
文件格式要求为CSV格式的纯文本文件,无表头,支持两种内容类型:
1、1行1个openid,openid对应的appid需要确保与品牌之间有绑定关系,无法识别的数据将被自动过滤。
2、请上传 csv 文件,1行1个手机号(需先计算MD5哈希),无法识别的数据将被自动过滤。
注:上传任务创建完成后,后续只能由同一品牌商家使用,否则将无法通过权限校验。

接口说明

支持商户:【品牌商户】

请求方式:【POST】/brand/marketing/user-package/uploads

请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点

     【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看

接口限频:10/秒(品牌ID维度)

请求参数
折叠全部参数

Header  HTTP头参数

 Authorization  必填 string

请参考签名认证生成认证信息


 Accept  必填 string

请设置为application/json


 Content-Type  必填 string

请设置为application/json


 Wechatpay-Serial  必填 string

【微信支付公钥ID】  请传入brand_id对应的微信支付公钥ID,接口将会校验两者的关联关系,参考微信支付公钥产品简介及使用说明获取微信支付公钥ID和相关的介绍。以下两种场景将使用到微信支付公钥: 1、接收到接口的返回内容,需要使用微信支付公钥进行验签; 2、调用含有敏感信息参数(如姓名、身份证号码)的接口时,需要使用微信支付公钥加密敏感信息后再传输参数,加密指引请参考微信支付公钥加密敏感信息指引。


body  包体参数

 user_package_file_info  必填   object

【完整人群包文件信息】 准备上传的完整人群号码包文件信息,用于标识上传文件的类型、数据类型、人群包描述等。

属性

 filename  必填   string(128)

【文件名】 完整人群包的文件名,仅限csv文件。可包含英文字母,数字,_,.,-等内容,需以.csv结尾,不允许出现其他不合法符号。


 digest  必填   string(64)

【文件摘要】 当前上传的文件摘要,对人群号码包文件二进制内容进行sha256计算得到的值。


 package_type  必填   string

【人群包类型】 人群包类型,用于标识当前操作的人群包运营类型(定向曝光人群包 或 风险用户人群包)。

可选取值

  • USER_PACKAGE_TYPE_EXPOSURE:  定向曝光人群包,用于定向曝光人群包的运营类型

  • USER_PACKAGE_TYPE_RISK:  风险用户人群包,用于风险用户人群包的运营类型


 data_type  必填   string

【上传数据类型】 上传数据类型,用于标识当前上传数据的明细类型( MD5手机号 或 用户OpenID)。

可选取值

  • USER_PACKAGE_DATA_TYPE_PHONE:  手机号md5

  • USER_PACKAGE_DATA_TYPE_OPENID:  用户OpenID


 description  必填   string(128)

【人群包描述】 填写人群包的描述信息,对人群包的定义和计算逻辑进行描述说明,不少于 15 个字。
可包含中文,英文字母,数字,_,.,-等内容,不允许出现其他不合法符号。


 file_size  必填   integer

【文件大小】 人群号码包文件的大小,单位为字节。

请求示例

curl
Java
Go

POST

1curl -X POST \
2  https://api.mch.weixin.qq.com/brand/marketing/user-package/uploads \
3  -H "Authorization: WECHATPAY-BRAND-SHA256-RSA2048 brand_id=\"XXXX\",..." \
4  -H "Accept: application/json" \
5  -H "Wechatpay-Serial: PUB_KEY_ID_XXXX"  \
6  -H "Content-Type: application/json" \
7  -d '{
8    "user_package_file_info" : {
9      "filename" : "active_user.csv",
10      "digest" : "addca90a6a290b9642dbaccffdf01e8c22aa348940b2e96754169ba08c19e5db",
11      "package_type" : "USER_PACKAGE_TYPE_EXPOSURE",
12      "data_type" : "USER_PACKAGE_DATA_TYPE_PHONE",
13      "description" : "熟客人群-1",
14      "file_size" : 256000
15    }
16  }'
17

应答参数

200 OK

 upload_id  必填   string(128)

【上传ID】 微信支付生成的上传ID,可用于后续上传文件分块、合并分块文件,扩充人群包。


 file_part_size  必填   integer

【文件分块大小】 文件分块大小,单位为字节。


 file_part_count  必填   integer

【文件分块数量】 文件分块数量

应答示例

200 OK

1{
2  "upload_id" : "17587186700323d11ac17d8d3d4c8c4e5a250c3e804977e89af6a05ffa93751d0ec0179ca8",
3  "file_part_size" : 10240,
4  "file_part_count" : 10
5}
6

 

错误码

以下是本接口返回的错误码列表。详细错误码规则,请参考微信支付接口规则-错误码和错误提示

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_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值是否符合规则

400

INVALID_REQUEST

Http头Content-Type值必须为application/json

需将Http头中的Content-Type值设置为application/json

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文档在请求头中补充该参数

401

SIGN_ERROR

Http头Authorization认证类型不正确

Http头Authorization认证类型不正确,请将认证类型修改为WECHATPAY-BRAND-SHA256-RSA2048

 

反馈
目录
置顶