向用户发放商品券批次组

更新时间:2025.11.20

服务商可以通过本接口向用户发放指定商品券批次组,能否发放受限于商品券组内批次的发放限额:

  1. 商品券批次总预算

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

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

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

接口说明

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

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

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

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

接口限频:500/秒(商户号维度)

请求参数
折叠全部参数

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_bundle_id  必填   string

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


 appid  必填   string

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


 send_request_no  必填   string(128)

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


 attach  选填   string(150)

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

注: 发券渠道多样,只有品牌方通过此接口发放的券才会在查询和回调中携带此字段,其他渠道发放的券 attach 为空。


 brand_id  必填   string

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


 coupon_tag_info  选填   object

【用户商品券标签信息】 用户商品券标签信息

属性

 coupon_tag_list  选填   array[string]

【用户商品券标签列表】 用户商品券标签列表

可选取值

  • MEMBER:  会员标签,标识该用户商品券为会员券


 member_tag_info  选填   object

【会员标签信息】 当用户商品券标签列表中有MEMBER时,该字段必填

属性

 member_card_id  必填   string

【会员卡模板ID】 通过商家名片会员API创建会员卡模板成功后,获得的会员卡模板ID

请求示例

curl
Java
Go

POST

发送多次优惠批次组

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/marketing/partner/product-coupon/users/oh-394z-6CGkNoJrsDLTTUKiAnp4/coupon-bundles \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Content-Type: application/json" \
6  -d '{
7    "stock_bundle_id" : "712315129419284901",
8    "product_coupon_id" : "1000000014",
9    "appid" : "wx233544546545989",
10    "send_request_no" : "MCHCONFIRM202003101234",
11    "brand_id" : "120344"
12  }'
13

应答参数
折叠全部参数

200 OK

 user_coupon_bundle_id  必填   string(40)

【用户券组ID】 用户商品券批次组的唯一标识,由微信支付生成


 user_product_coupon_list  必填   array[object]

【用户商品券列表】 用户商品券组内的用户商品券列表,券组内券的顺序保证与批次组内批次的顺序一致

注意:按照 PROGRESSIVE_BUNDLE 模式的规则,初次发放时用户只会收到首张(此时列表中只会有一个元素),后续批次会在根据用户的核销依次发放。

属性

 coupon_code  必填   string(40)

【用户商品券Code】 用户商品券的唯一标识


 coupon_state  必填   string

【用户商品券状态】 

可选取值


 valid_begin_time  必填   string

【有效期开始时间】 用户商品券可用开始时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)


 valid_end_time  必填   string

【有效期结束时间】 用户商品券可用结束时间。遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)


 receive_time  必填   string

【领券时间】 用户领券时间。遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)


 send_request_no  必填   string(128)

【发券请求单号】 发券时传入的请求流水号


 send_channel  必填   string

【发券渠道】 描述用户商品券是经由什么渠道发送的

可选取值

  • BRAND_MANAGE:  摇一摇有优惠,通过摇一摇有优惠渠道发放

  • API:  服务商自主发券,服务商通过发券接口自主发券到商家名片

  • RECEIVE_COMPONENT:  小程序领券组件,服务商通过小程序领券组件发券


 confirm_request_no  选填   string

【确认请求单号】 品牌方确认发券请求时传入的的请求流水号。当且仅当 品牌方调用【确认发放用户商品券API】后提供。


 confirm_time  选填   string

【确认发放时间】 品牌方确认发券时间,当且仅当 品牌方调用【确认发放用户商品券API】后提供。遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)


 deactivate_request_no  选填   string(128)

【失效请求单号】 品牌方失效券请求时传入的的请求流水号。当且仅当 coupon_state 为 DEACTIVATED 时提供,返回品牌方调用【失效用户商品券API】或【失效用户商品券组API】时传入的请求流水号


 deactivate_time  选填   string

【失效时间】 失效时间,当且仅当 coupon_state 为 DEACTIVATED 时提供。遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)


 deactivate_reason  选填   string(150)

【失效原因】 失效券的原因,当且仅当 coupon_state 为 DEACTIVATED 时提供,返回品牌方调用【失效用户商品券API】或【失效用户商品券组API】时传入的失效原因


 progressive_bundle_usage_detail  选填   object

【多次优惠使用详情】 当且仅当 usage_mode 为 PROGRESSIVE_BUNDLE 时提供

属性

 use_request_no  选填   string

【券核销请求单号】 券核销的请求流水号,当且仅当用户商品券状态 coupon_state 为 USED 时提供


 use_time  选填   string

【券核销时间】 券被核销的时间,当且仅当用户商品券状态 coupon_state 为 USED 时提供。遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)


 return_request_no  选填   string

【退券请求单号】 品牌退券时传入的请求流水号,当且仅当券发生了退回后提供此字段


 return_time  选填   string

【退券时间】 券被退回的时间,当且仅当券发生了退回后提供此字段。遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)


 associated_order_info  选填   object

【券核销的微信支付订单信息】 券核销对应的微信支付订单信息,当且仅当用户商品券状态 coupon_state 为 USED 时提供,
注:
1、associated_order_info与 associated_pay_score_order_info 会根据核销请求时的传入参数决定返回对应字段
2、订单信息必须至少传入 transaction_id 与 out_trade_no 之一,亦可同时传入,同时传入时应保证二者指向同一笔微信支付单。

属性

 transaction_id  选填   string

【微信支付单号】 由微信支付生成的支付单唯一标识,可以唯一定位到一笔微信支付单。

:订单信息必须至少传入 transaction_id 与 out_trade_no 之一,亦可同时传入,同时传入时应保证二者指向同一笔微信支付单。


 out_trade_no  选填   string

【商户订单号】 在微信支付支付时传入的商户订单号,在商户侧具有唯一性,因此提供此字段时应同时提供下单商户号:

  • 如果此单为服务商模式下单,则需提供 父商户号 mchid 以及 子商户号 sub_mchid

  • 如果此单为直连商户模式下单,则需提供 直连商户号 mchid

:订单信息必须至少传入 transaction_id 与 out_trade_no 之一,亦可同时传入,同时传入时应保证二者指向同一笔微信支付单。


 mchid  选填   string

【商户号】 当提供 out_trade_no 时此字段必传,否则可以省略。参考如下规则传入:

  • 若为服务商模式,则此字段为服务商商户号

  • 若为直连商户模式,则此字段为商户号


 sub_mchid  选填   string

【子商户号】 当提供 out_trade_no 时,参考如下规则传入:

  • 若为服务商模式,则此字段必填,为子商户号

  • 若为直连商户模式,则此字段为空

不提供 out_trade_no 时可忽略此字段


 associated_pay_score_order_info  选填   object

【券核销的关联微信支付分订单信息】 券核销的关联微信支付分订单信息,当且仅当用户商品券状态 coupon_state 为 USED 时提供,
注:
1、associated_order_info与 associated_pay_score_order_info 会根据核销请求时的传入参数决定返回对应字段
2、订单信息必须至少传入 order_id 与 out_order_no 之一,亦可同时传入,同时传入时应保证二者指向同一笔微信支付单。

属性

 order_id  选填   string

【微信支付服务订单号】 支付分订单在微信侧的唯一标识。

:订单信息必须至少传入 order_id 与 out_order_no 之一,亦可同时传入,同时传入时应保证二者指向同一笔微信支付单。


 out_order_no  选填   string

【商户服务订单号】 商户系统内部服务订单号,要求32个字符内,只能是数字、大小写字母_-| 且在同一个商户号下唯一。:

  • 如果此单为服务商模式下单,则需提供 父商户号 mchid 以及 子商户号 sub_mchid

  • 如果此单为直连商户模式下单,则需提供 直连商户号 mchid

:订单信息必须至少传入 order_id 与 out_order_no 之一,亦可同时传入,同时传入时应保证二者指向同一笔微信支付服务单。


 mchid  选填   string

【商户号】 当提供 out_order_no 时此字段必传,否则可以省略。参考如下规则传入:

  • 若为服务商模式,则此字段为服务商商户号

  • 若为直连商户模式,则此字段为商户号


 sub_mchid  选填   string

【子商户号】 当提供 out_order_no 时,参考如下规则传入:

  • 若为服务商模式,则此字段必填,为子商户号

  • 若为直连商户模式,则此字段为空

不提供 out_order_no 时可忽略此字段


 saved_amount  选填   integer

【优惠金额】 使用本券的实际优惠金额,单位为分
注:

  • 当本券为全场折扣券时,提供的是传入的值


 user_product_coupon_bundle_info  必填   object

【用户券组信息】 当前用户券所属用户券组的信息

属性

 user_coupon_bundle_id  必填   string

【用户券组ID】 本券所属的用户券组ID,【向用户发放商品券批次组】时由微信支付生成


 user_coupon_bundle_index  必填   integer

【用户券组内索引】 本券在所属用户券组内的序号,从 0 开始编号


 total_count  必填   integer

【总可使用次数】 所属用户券组总计可用次数


 used_count  必填   integer

【已使用次数】 所属用户券组已使用次数


 product_coupon  必填   object

【商品券信息】 该用户商品券对应的商品券详情

属性

 product_coupon_id  必填   string(40)

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


 scope  必填   string

【优惠范围】 商品券优惠范围

可选取值

  • ALL:  全场商品可用券,此时券类型 type 仅可配置为 NORMAL 或 DISCOUNT

  • SINGLE:  部分商品可用券,此时券类型 type 配置不受限制,即可配置为 NORMALDISCOUNT 或 EXCHANGE


 type  必填   string

【商品券类型】 商品券的优惠类型

可选取值

  • NORMAL:  满减券

  • DISCOUNT:  折扣券

  • EXCHANGE:  兑换券,仅在 scope 为 SINGLE 时可配置


 usage_mode  必填   string

【使用模式】 商品券使用模式

可选取值

  • SINGLE:  单券,即用户只能使用一次,使用后券失效

  • PROGRESSIVE_BUNDLE:  多次优惠,由一组批次组成,每阶梯次序对应一个批次。用户按顺序使用,每次核销后发放下一张券,直到用完为止


 single_usage_info  选填   object

【单券模式信息】 单券模式配置信息,仅当 usage_mode 为 SINGLE 时提供,其他场景不提供。

属性

 normal_coupon  选填   object

【满减券使用规则】 本商品券内所有批次均以此规则提供满减优惠,当且仅当 type 为 NORMAL 且 scope 为 ALL 时必填,其他类型不应填写。

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受满减优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 discount_amount  必填   integer

【固定减免金额】 固定减免金额,单位为分。


 discount_coupon  选填   object

【折扣券使用规则】 本商品券内所有批次均以此规则提供折扣优惠,当且仅当 type 为 DISCOUNT 且 scope 为 ALL 时必填,其他类型不应填写。

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受折扣优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 percent_off  必填   integer

【固定减免百分比】 表示减免金额为总金额的百分比。例如:填入 30 表示减免 30%,即打 7 折


 progressive_bundle_usage_info  选填   object

【多次优惠模式信息】 多次优惠模式配置信息,当且仅当 usage_mode 为 PROGRESSIVE_BUNDLE 时提供,其他模式不提供。

属性

 count  必填   integer

【可使用次数】 多次优惠领取后用户可使用次数,最少3次,最多15次


 interval_days  选填   integer

【多次优惠使用间隔天数】 多次优惠多次使用之间需要间隔的天数,最高7天。例如:

  • 间隔 0 天表示不限制,使用后当天仍然可以继续使用下一次优惠

  • 间隔 1 天表示使用后当天不再可用,下一次优惠需要等到次日 00:00:00 才能使用

  • 间隔 2 天表示使用后当天和次日不再可用,下一次优惠需要等到第三天 00:00:00 才能使用

  • 依此类推……

默认情况下为 0 天,即不限制,使用后当天仍然可以继续使用下一次优惠


 display_info  必填   object

【展示信息】 商品券展示信息

属性

 name  必填   string(15)

【商品券名称】 商品券名称,长度为3-15个UTF-8字符


 image_url  必填   string

【商品券图片】 商品图片的链接地址,仅支持通过【图片上传API】获取的图片URL地址。

  • 请参考商品券图片设计规范进行设计

  • 要求图片宽高比1:1,建议尺寸1080*1080

  • 大小不超过2M

  • 建议图片格式:透明PNG格式

  • 需要注意保留透明边距(上下左右各120px)


 background_url  必填   string

【商品券背景图】 商品背景图片的URL地址,仅支持通过【图片上传API】获取的图片URL地址。

  • 要求图片宽高比65:77,建议尺寸1170*1326

  • 大小不超过2M

  • 建议图片格式:JPG/PNG格式

  • 需要注意保留「商品名称」与「商品图」的安全区域


 detail_image_url_list  选填   array[string]

【商品券详情图列表】 商品详情图URL地址列表,用于最多可上传8张图片,仅支持通过【图片上传API】获取的图片URL地址。

  • 要求图片宽高比65:77,建议尺寸1170*1326

  • 大小不超过2M

  • 建议图片格式:JPG/PNG格式


 original_price  选填   integer

【商品原价】 单位为分,用于对外展示,最大为 10000000。不填写时默认为 0


 combo_package_list  选填   array[object]

【适用商品组合】 当 scope 为 SINGLE 必填,用于对外展示,其他优惠范围选填。最多配置 50 个组合

属性

 name  必填   string(15)

【适用商品名】 长度不超过15个UTF-8字符


 pick_count  必填   integer

【可选单品数量】 用户可以从 choice_list 中选择的选项数量,例如 10 选 3,则这里填 3


 choice_list  必填   array[object]

【单品列表】 套餐内包含的选项列表,记录每个单品的信息,最多99个单品

属性

 name  必填   string(15)

【单品名称】 长度不超过15个UTF-8字符


 price  必填   integer

【单品价格】 单位为分


 count  必填   integer

【单品数量】 最多99个


 image_url  选填   string

【单品图片】 单品图片URL地址,仅支持通过【图片上传API】获取的图片URL地址,接入领券组件和核销组件的品牌方建议填写。

  • 要求图片宽高比1:1,建议尺寸1080*1080

  • 大小不超过2M

  • 建议图片格式:透明PNG格式

  • 需要注意保留透明边距(上下左右各120px)


 mini_program_appid  选填   string

【单品跳转小程序AppID】 品牌方或服务商可展示单品的小程序AppID,小程序需与品牌方或服务商存在绑定关系,接入领券组件和核销组件的品牌方或服务商建议填写。需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【单品跳转小程序路径】 单品展示信息在小程序内的跳转路径,接入领券组件和核销组件的品牌方或服务商建议填写。需和 mini_program_appid 一同填写。


 out_product_no  选填   string

【外部商品ID】 商户创建商品券时主动传入的外部商品ID,原样返回


 state  必填   string

【商品券状态】 商品券状态

可选取值

  • AUDITING:  审批中,审批完成前商品券不可用

  • EFFECTIVE:  生效中,商品券已生效,可以正常使用

  • DEACTIVATED:  已失效,品牌方主动调用失效接口使商品券失效


 deactivate_request_no  选填   string(128)

【失效请求单号】 当且仅当 state 为 DEACTIVATED 时提供,返回品牌方调用【失效商品券API】时传入的请求流水号


 deactivate_time  选填   string

【失效时间】 当且仅当 state 为 DEACTIVATED 时提供,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 deactivate_reason  选填   string(150)

【失效原因】 当且仅当 state 为 DEACTIVATED 时提供,返回品牌方调用【失效商品券API】时传入的失效原因


 brand_id  必填   string

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


 stock  必填   object

【批次信息】 该用户商品券发券时使用的批次详情

属性

 product_coupon_id  必填   string(40)

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


 stock_id  必填   string(40)

【批次ID】 商品券批次的唯一标识,由微信支付生成


 remark  选填   string(20)

【备注】 仅配置品牌可见,用于自定义信息


 coupon_code_mode  必填   string

【券Code分配模式】 决定发券时用户商品券Code如何产生

可选取值

  • WECHATPAY:  微信支付随机生成,发券时由微信支付系统自动随机生成券码,品牌方无需干预,微信支付随机生成的券Code长度限制为40个字符以内

  • UPLOAD:  品牌方预上传Code,品牌方需先使用【预上传券Code API(单券)】或【预上传券Code API(多次优惠)】上传自定义Code,微信支付系统发券时从中随机选取,当预存Code不足时可能影响发券,品牌应及时补充


 coupon_code_count_info  选填   object

【品牌方预上传的券Code数量信息】 当且仅当 coupon_code_mode 为 UPLOAD 时存在此字段

属性

 total_count  必填   integer

【已上传的Code总数】 品牌方为此批次已经上传过的券Code总数量


 available_count  必填   integer

【当前可用的Code数】 品牌方为此批次已经上传过的券Code中,当前剩余可用的券Code数量


 stock_send_rule  必填   object

【发放规则】 发放规则

属性

 max_count  必填   integer

【发放次数总上限】 批次在生命周期内总发放次数,最多 100,000,000 次


 max_count_per_day  选填   integer

【每日发放次数上限】 批次在每天内发放次数上限,每日刷新,最多 100,000,000 次。默认不限制每日发放上限


 max_count_per_user  必填   integer

【每个用户领取次数上限】 每个用户最多可领取本批次的次数,最多 100 次。


 progressive_bundle_usage_rule  选填   object

【多次优惠使用规则】 当且仅当 usage_mode 为 PROGRESSIVE_BUNDLE 时提供,其他场景不提供

属性

 coupon_available_period  必填   object

【券可核销时间】 确定用户领券后在什么时间段内可以核销

属性

 available_begin_time  必填   string

【批次开始时间】 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。

批次有效期最长不超过365天


 available_end_time  必填   string

【批次结束时间】 遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。

批次有效期最长不超过365天


 available_days  选填   integer

【券生效后N天内可用】 日期区间内,券生效后 N 天内有效,最多365天。例如:

  • 生效当天内有效填 1

  • 生效后2天内有效填 2

  • 依此类推……

用户在有效期开始前领取商品券,则从有效期第1天开始计算天数,用户在有效期内领取商品券,则从领取当天开始计算天数,无论用户何时领取商品券,商品券在活动有效期结束后均不可用。

可配合 wait_days_after_receive 一同填写,也可单独填写。

:不可与 irregular_available_period_list 同时配置


 wait_days_after_receive  选填   integer

【领券后需等待N天才生效】 日期区间内,用户领券后需等待 N 天才开始生效,最多30天。例如:

  • 领券后当天开始生效则无需填写

  • 领券后第二天开始生效则填写 1

用户在有效期开始前领取商品券,则从有效期第1天开始计算天数,用户在有效期内领取商品券,则从领取当天开始计算天数。无论用户何时领取商品券,商品券在活动有效期结束后均不可用。

需配合 available_days 一同填写,不可单独填写

:不可与 irregular_available_period_list 同时配置


 weekly_available_period  选填   object

【每周固定可用时间】 日期区间内,每周固定时间可以使用。可与 available_days 和 wait_days_after_receive 一同配置,一同配置时条件需同时满足券才可用(时间范围取交集)。

:不可与 irregular_available_period_list 同时配置

属性

 day_list  必填   array[string]

【每周可用星期数】 每周特定星期X可用,在日期区间内每周循环有效。例如 配置 ["MONDAY", "FRIDAY"] 表示每周一和周五可用。

可选取值

  • MONDAY:  周一可用

  • TUESDAY:  周二可用

  • WEDNESDAY:  周三可用

  • THURSDAY:  周四可用

  • FRIDAY:  周五可用

  • SATURDAY:  周六可用

  • SUNDAY:  周日可用


 day_period_list  选填   array[object]

【当天可用时间段】 生效当天特定时间段内有效,可以配置多个时间段。最多可以配置 3 个时间段。不配置则全天可用。

属性

 begin_time  必填   integer

【当天可用开始时间】 当天可用时间距离当天 00:00:00 的秒数,如 60 表示当天 00:01:00 开始可用。取值范围 [0,86399] 且必须小于 end_time


 end_time  必填   integer

【当天可用结束时间】 当天结束可用时间距离当天 00:00:00 的秒数,如 86399 表示当天 23:59:59 结束可用。取值范围 [0,86399] 且必须大于 begin_time


 irregular_available_period_list  选填   array[object]

【指定可用时间段】 可以配置多个无规律时间段,不同区间内请勿重叠,最多可配置2个区间。

:不可与 available_dayswait_days_after_receiveweekly_available_period 同时配置

属性

 begin_time  必填   string

【开始时间】 区间开始时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 end_time  必填   string

【结束时间】 区间结束时间,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 normal_coupon  选填   object

【满减券使用规则】 当且仅当 type 为 NORMAL 时必填,其他类型不应填写

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受满减优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 discount_amount  必填   integer

【固定减免金额】 固定减免金额,单位为分。


 discount_coupon  选填   object

【折扣券使用规则】 当且仅当 type 为 DISCOUNT 时必填,其他类型不应填写`

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可享受折扣优惠。门槛可以为0,即无门槛。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 percent_off  必填   integer

【固定减免百分比】 表示减免金额为总金额的百分比。例如:填入 30 表示减免 30%,即打 7 折


 exchange_coupon  选填   object

【兑换券使用规则】 当且仅当 type 为 EXCHANGE 时必填,其他类型不应填写

属性

 threshold  必填   integer

【门槛金额】 使用门槛金额,单位为分,达到该门槛后可进行兑换。门槛可以为0,即无门槛兑换。例如:

  • 满 100 元可用填 10000

  • 满 0.01 元可用填 1


 exchange_price  必填   integer

【固定兑换价格】 单位为分


 stock_bundle_info  选填   object

【批次组信息】 批次所在批次组信息,当且仅当 usage_mode 为 PROGRESSIVE_BUNDLE 时提供

属性

 stock_bundle_id  必填   string(40)

【批次所属批次组ID】 商品券批次组的唯一标识,【创建商品券(多次优惠)】或【添加商品券批次组】时由微信支付生成


 stock_bundle_index  必填   integer

【批次在批次组内的次序】 本批次在批次组内的次序,从0开始


 usage_rule_display_info  必填   object

【券使用规则展示信息】 券使用规则展示信息

属性

 coupon_usage_method_list  必填   array[string]

【券使用方式列表】 可以配置多种使用方式

可选取值

  • OFFLINE:  线下滴码核销,点击券“立即使用”跳转展示券二维码详情(投放计划暂不支持此核销方式)

  • MINI_PROGRAM:  线上小程序核销,点击券“立即使用”跳转至配置的商家小程序(需要添加小程序AppID和Path)

  • APP:  APP核销,在商家APP内核销

  • PAYMENT_CODE:  微信支付付款码核销,点击券“立即使用”将跳转至微信支付钱包付款码,服务商可扫码核销用户券后再扫付款码发起下单,适合线下支付场景


 mini_program_appid  选填   string

【小程序AppID】 品牌方或服务商小程序AppID,可在微信公众平台查看,该小程序与品牌或服务商存在绑定关系。

在 coupon_usage_method_list 中包含 MINI_PROGRAM 时必填,需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【小程序跳转路径】 品牌方或服务商小程序内部跳转路径。

在 coupon_usage_method_list 中包含 MINI_PROGRAM 时必填,需和 mini_program_appid 一同填写。


 app_path  选填   string

【APP跳转路径】 品牌方或服务商APP跳转路径,在 coupon_usage_method_list 中包含 APP 时必填。


 usage_description  必填   string(1000)

【券使用说明】 用于说明详细的券规则,长度不超过1000个UTF-8字符


 coupon_available_store_info  选填   object

【券可用门店信息】 用于描述全部可用门店信息,可配置小程序跳转地址进行展示

属性

 description  必填   string(1000)

【券可用门店描述】 告知用户本券可在哪些门店使用,长度不超过1000个UTF-8字符


 mini_program_appid  选填   string

【小程序AppID】 品牌方或服务商小程序AppID,用于展示可用门店列表的详细信息,可在微信公众平台查看,该小程序与品牌或服务商存在绑定关系。需和 mini_program_path 一同填写。


 mini_program_path  选填   string

【小程序跳转路径】 品牌方或服务商小程序内部展示可用门店列表的详细信息的页面跳转路径,需和 mini_program_appid 一同填写。


 coupon_display_info  必填   object

【用户商品券展示信息】 用户商品券在卡包中的展示详情,包括引导用户的自定义入口

属性

 code_display_mode  必填   string

【用户商品券Code展示模式】 决定用户商品券Code在卡包中的展示形态

可选取值

  • INVISIBLE:  不展示Code

  • BARCODE:  条形码

  • QRCODE:  二维码


 background_color  选填   string

【背景颜色】 券的背景颜色,可设置10种颜色,色值请参考下方说明。颜色取值为颜色图中的颜色名称,不填默认为 Color020 。


 entrance_mini_program  选填   object

【小程序入口】 展示跳转小程序的入口

属性

 appid  必填   string

【小程序AppID】 品牌方小程序的AppID,可在微信公众平台查看,该小程序与品牌存在绑定关系


 path  必填   string

【小程序跳转路径】 品牌方小程序内部跳转路径


 entrance_wording  必填   string(5)

【入口文案】 小程序入口文案,长度不超过5个UTF-8字符


 guidance_wording  必填   string(6)

【引导文案】 小程序入口引导文案,长度不超过6个UTF-8字符


 entrance_official_account  选填   object

【公众号入口】 展示跳转公众号的入口

属性

 appid  必填   string

【公众号AppID】 微信公众号唯一标识,可在微信公众平台查看,该公众号应与品牌方存在绑定关系


 entrance_finder  选填   object

【视频号入口】 展示跳转视频号的入口

属性

 finder_id  必填   string

【视频号ID】 关联视频号将展示在优惠券详情的顶部右侧,该视频号应与品牌方存在绑定关系


 finder_video_id  必填   string

【视频号视频ID】 券详情视频内容,支持配置关联视频号下的具体视频内容


 finder_video_cover_image_url  必填   string

【视频号封面图】 截取的视频号图片将在券到期提醒消息、券详情中展示,仅支持通过【图片上传API】获取的图片URL地址。

  • 图片尺寸:716像素(宽)*402像素(高)

  • 图片大小不超过2M

  • 建议图片格式:JPG/PNG格式


 notify_config  必填   object

【事件通知配置】 发生券相关事件时,微信支付会向服务商发送通知,需要提供通知相关配置

属性

 notify_appid  必填   string

【事件通知AppID】 服务商或者品牌的AppID,支持小程序、服务号、公众号、APP类型的AppID,可在微信公众平台查看,用于券事件通知时计算用户的OpenID,需要与服务商或者品牌存在绑定关系


 store_scope  必填   string

【可用门店范围】 控制该批次可以在品牌下哪些门店使用

可选取值

  • NONE:  无关联门店,该批次对外不展示可用门店信息

  • ALL:  所有门店可用,该批次在品牌下的所有门店可用,品牌无需为该批次关联门店列表

  • SPECIFIC:  特定门店可用,品牌需调用关联门店接口关联门店,关联后该批次在关联的门店可用


 sent_count_info  必填   object

【已发放次数】 本批次已发放次数

属性

 total_count  必填   integer

【已发放总次数】 批次在生命周期内已发放次数


 today_count  必填   integer

【当天已发放次数】 批次在当天已发放次数


 state  必填   string

【批次状态】 商品券批次状态

可选取值

  • AUDITING:  审批中

  • SENDING:  发放中

  • PAUSED:  已暂停

  • STOPPED:  已停止,当前已到达结束时间

  • DEACTIVATED:  已失效,品牌方主动调用失效接口使批次失效


 deactivate_request_no  选填   string(128)

【失效请求单号】 当且仅当 state 为 DEACTIVATED 时提供,返回品牌方调用失效接口时传入的请求流水号


 deactivate_time  选填   string

【失效时间】 当且仅当 state 为 DEACTIVATED 时提供,遵循rfc3339标准格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。


 deactivate_reason  选填   string(150)

【失效原因】 当且仅当 state 为 DEACTIVATED 时提供,返回品牌方调用【失效商品券批次API】时传入的失效原因


 brand_id  必填   string

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


 attach  选填   string

【自定义附加信息】 调用发券接口时品牌方使用 attach 字段主动设置的附加信息。微信支付不会解析该信息,仅在查询用户商品券和回调中原样返回。

注: 发券渠道多样,只有品牌方通过发券接口发放的券才会在查询和回调中携带此字段,其他渠道发放的券 attach 为空。


 channel_custom_info  选填   string(1000)

【渠道自定义信息】 使用微信支付提供的其他渠道(比如「摇一摇有优惠」)发放商品券时,渠道可能会设置该渠道特定的自定义信息,请根据 send_channel 字段判断如何解析本字段。不同渠道的自定义信息格式不同,请根据对应渠道的文档解析。


 coupon_tag_info  选填   object

【用户商品券标签信息】 用户商品券标签信息

属性

 coupon_tag_list  选填   array[string]

【用户商品券标签列表】 用户商品券标签列表

可选取值

  • MEMBER:  会员标签,标识该用户商品券为会员券


 member_tag_info  选填   object

【会员标签信息】 当用户商品券标签列表中有MEMBER时,该字段必填

属性

 member_card_id  必填   string

【会员卡模板ID】 通过商家名片会员API创建会员卡模板成功后,获得的会员卡模板ID


 brand_id  必填   string

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

应答示例

200 OK

发送多次优惠批次组

1{
2  "user_coupon_bundle_id" : "7123912547109241212489",
3  "user_product_coupon_list" : [
4    {
5      "coupon_code" : "10000003",
6      "coupon_state" : "CONFIRMING",
7      "valid_begin_time" : "2025-08-02T00:00:00+08:00",
8      "valid_end_time" : "2025-08-31T23:59:59+08:00",
9      "receive_time" : "2025-08-02T00:00:00+08:00",
10      "send_request_no" : "MCHCONFIRM202003101234",
11      "send_channel" : "API",
12      "progressive_bundle_usage_detail" : { },
13      "user_product_coupon_bundle_info" : {
14        "user_coupon_bundle_id" : "7123912547109241212489",
15        "user_coupon_bundle_index" : 0,
16        "total_count" : 10,
17        "used_count" : 0
18      },
19      "product_coupon" : {
20        "product_coupon_id" : "1000000014",
21        "scope" : "ALL",
22        "type" : "DISCOUNT",
23        "usage_mode" : "PROGRESSIVE_BUNDLE",
24        "progressive_bundle_usage_info" : {
25          "count" : 3,
26          "interval_days" : 1
27        },
28        "display_info" : {
29          "name" : "全场满100立打8折",
30          "image_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx",
31          "background_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx",
32          "detail_image_url_list" : [
33            "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx"
34          ]
35        },
36        "state" : "EFFECTIVE",
37        "out_product_no" : "Product_1234567890",
38        "brand_id" : "120344"
39      },
40      "stock" : {
41        "product_coupon_id" : "1000000014",
42        "stock_id" : "1000000014001",
43        "remark" : "8月工作日有效批次",
44        "coupon_code_mode" : "UPLOAD",
45        "coupon_code_count_info" : {
46          "total_count" : 0,
47          "available_count" : 0
48        },
49        "stock_send_rule" : {
50          "max_count" : 10000000,
51          "max_count_per_user" : 1
52        },
53        "progressive_bundle_usage_rule" : {
54          "coupon_available_period" : {
55            "available_begin_time" : "2025-08-01T00:00:00+08:00",
56            "available_end_time" : "2025-08-31T23:59:59+08:00",
57            "available_days" : 30,
58            "weekly_available_period" : {
59              "day_list" : [
60                "MONDAY",
61                "TUESDAY",
62                "WEDNESDAY",
63                "THURSDAY",
64                "FRIDAY"
65              ]
66            }
67          },
68          "discount_coupon" : {
69            "threshold" : 10000,
70            "percent_off" : 50
71          }
72        },
73        "stock_bundle_info" : {
74          "stock_bundle_id" : "712315129419284901",
75          "stock_bundle_index" : 0
76        },
77        "usage_rule_display_info" : {
78          "coupon_usage_method_list" : [
79            "OFFLINE",
80            "MINI_PROGRAM",
81            "PAYMENT_CODE"
82          ],
83          "mini_program_appid" : "wx1234567890",
84          "mini_program_path" : "/pages/index/product",
85          "usage_description" : "工作日可用",
86          "coupon_available_store_info" : {
87            "description" : "所有门店可用,可使用小程序查看门店列表",
88            "mini_program_appid" : "wx1234567890",
89            "mini_program_path" : "/pages/index/store-list"
90          }
91        },
92        "coupon_display_info" : {
93          "code_display_mode" : "QRCODE",
94          "background_color" : "Color010",
95          "entrance_mini_program" : {
96            "appid" : "wx1234567890",
97            "path" : "/pages/index/product",
98            "entrance_wording" : "欢迎选购",
99            "guidance_wording" : "获取更多优惠"
100          },
101          "entrance_official_account" : {
102            "appid" : "wx1234567890"
103          },
104          "entrance_finder" : {
105            "finder_id" : "gh_12345678",
106            "finder_video_id" : "UDFsdf24df34dD456Hdf34",
107            "finder_video_cover_image_url" : "https://wxpaylogo.qpic.cn/wxpaylogo/xxxxx/xxx"
108          }
109        },
110        "notify_config" : {
111          "notify_appid" : "wx4fd12345678"
112        },
113        "store_scope" : "NONE",
114        "sent_count_info" : {
115          "total_count" : 0,
116          "today_count" : 0
117        },
118        "state" : "SENDING",
119        "brand_id" : "120344"
120      },
121      "brand_id" : "120344"
122    }
123  ]
124}
125

 

错误码

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

状态码

错误码

描述

解决方案

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
反馈
目录
置顶