向用户预发放商品券

更新时间:2025.11.07

服务商可以通过本接口向用户预发放指定商品券批次,并使用返回的token在领券组件中完成发券,当用户已领取过时使用相同参数获取的token拉起的领券组件会返回已领取状态,能否发放受限于商品券批次的发放限额:

  1. 商品券批次总预算

  2. 商品券批次每日预算(如果有)

  3. 商品券批次每人限领(如果有)

前置条件:已创建商品券批次,商品券批次处于 SENDING 状态

频率限制:500/s

接口说明

支持商户:【普通服务商】

请求方式:【POST】/v3/marketing/partner/product-coupon/users/{openid}/pre-send-coupon

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

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

请求参数

Header  HTTP头参数

 Authorization  必填 string

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


 Accept  必填 string

请设置为application/json


 Content-Type  必填 string

请设置为application/json


path  路径参数

 openid  必填   string

【用户OpenID】 OpenID信息,用户在AppID下的唯一标识,获取方式参考OpenID


body  包体参数

 product_coupon_id  必填   string

【商品券ID】 商品券的唯一标识,创建商品券时由微信支付生成


 stock_id  必填   string

【批次ID】 商品券批次的唯一标识,商品券批次创建时由微信支付生成(可使用【创建商品券API】或【添加商品券批次API】创建),请确保该批次属于 product_coupon_id 对应的商品券


 coupon_code  选填   string(40)

【用户商品券Code】 用户商品券的唯一标识,给用户发券时需要为该用户的券分配,可使用 数字、大小写字母、下划线_、短横线- 组成,长度不超过40个字符。当且仅当 coupon_code_mode 为 API_ASSIGN 时必传,其他模式下用户商品券Code由微信支付分配,不允许传入。


 appid  必填   string

【公众账号ID】 公众账号ID也称Ap p,是(微信开放平台、微信公众平台)为开发者提供的一个唯一标识,用于识别开发者的应用程序(APP、小程序、公众号)。 开发者需要先在微信开放平台或微信公众平台中申请ID,然后在服务商平台中绑定,详见服务商商户号与AppID账号关联管理


 send_request_no  必填   string(40)

【发券请求单号】 品牌给用户发券的请求流水号,品牌侧需保持唯一性,可使用 数字、大小写字母、下划线_、短横线- 组成,长度在6-40个字符之间


 attach  选填   string(150)

【自定义附加信息】 发券时品牌方可以使用该字段附带自定义附加信息,长度限制150个UTF-8字符。微信支付不会解析该信息,仅在查询用户商品券和回调中原样返回。

注: 发券渠道多样,只有品牌方通过调用「向用户发放商品券」接口发放以及调用该接口预发券并在领券组件中发放的券才会在查询和回调中携带此字段,其他渠道发放的券 attach 为空。


 brand_id  必填   string

【品牌ID】 微信支付为品牌方分配的唯一标识,该品牌应与服务商存在授权关系

请求示例

curl
Java
Go

POST

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/marketing/partner/product-coupon/users/oh-394z-6CGkNoJrsDLTTUKiAnp4/pre-send-coupon \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Content-Type: application/json" \
6  -d '{
7    "product_coupon_id" : "200000001",
8    "stock_id" : "100232301",
9    "coupon_code" : "123446565767",
10    "appid" : "wx233544546545989",
11    "send_request_no" : "34657_20250101_123456",
12    "attach" : "example_attach",
13    "brand_id" : "120344"
14  }'
15

应答参数

200 OK

 token  必填   string(1024)

【预发券token】 商品券生成的预发券token,用于领券组件,该值有效期为5分钟

应答示例

200 OK

1{
2  "token" : "ABBpZjCfAAABAAAAAACmTrRvExc7XKea-gTVaBAAAADSn9xnWYv5l5lkN-GZBOXXZ30Cgo-RH7BfsyWbOKgfHH0JZ9R1PgIvZOif8lg8fwPDX8D1j4TcQs0v82F5F5edPhFwgN3sn2aGo2qJGWEWYBPW4MKtKoUC8CJ8ABsk8yH3k5ULDuFRijf9GIYBL3Cn785Hab28FtyRVfsiFFZMfzuXFy_S1x4wQfDQhxgOgM4V4ITiXtd_xvmsFY7zKUFI_RtayZlqkIEd"
3}
4

 

错误码

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

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

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

400

INVALID_REQUEST

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

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

400

INVALID_REQUEST

传入参数不符合业务规则

请参考文档中对每个字段的要求以及组合要求,确认请求参数是否满足

400

INVALID_REQUEST

用户领取已达到上限

请参考文档中对每个字段的要求以及组合要求,确认请求参数是否满足

400

ALREADY_EXISTS

out_request_no 冲突

确认 out_request_no 字段是否重复使用,确保不同请求的 out_request_no 唯一

400

ALREADY_EXISTS

coupon_code 冲突

用户商品券Code冲突,请使用其他券Code

403

NOT_ENOUGH

商品券批次发放预算不足

请确认商品券批次发放预算是否充足

403

NOT_ENOUGH

商品券批次预上传券Code剩余数量不足

请确认商品券批次预上传券Code剩余数量是否充足,并及时补充上传

404

NOT_FOUND

未找到 product_coupon_id 对应的商品券

请确认 product_coupon_id 存在且属于当前品牌

404

NOT_FOUND

未找到 stock_id 对应的商品券批次

请确认 stock_id 存在且属于当前商品券

429

RATELIMIT_EXCEEDED

请求超过接口频率限制

请稍后使用原参数重试

 

元宝AI
反馈
目录
置顶