向用户发放商品券

更新时间:2025.08.04

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

  1. 商品券批次总预算

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

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

前置条件

  1. 已创建商品券批次,商品券批次处于 SENDING 状态

  2. 商品券批次所属商品券的 usage_mode 不为 PROGRESSIVE_BUNDLE

  3. usage_mode 为 PROGRESSIVE_BUNDLE的批次在批次组内,不可使用本接口,请使用【向用户发放商品券批次组API]

频率限制:500/s

接口说明

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

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

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


 send_request_no  必填   string(40)

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


 attach  选填   string(150)

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

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


 brand_id  必填   string

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


 coupon_tag_info  选填   object

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

属性

请求示例

curl
Java
Go

POST

发送会员券

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/marketing/partner/product-coupon/users/oh-394z-6CGkNoJrsDLTTUKiAnp4/coupons \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Content-Type: application/json" \
6  -d '{
7    "coupon_code" : "Code_123456",
8    "product_coupon_id" : "1000000013",
9    "appid" : "wx233544546545989",
10    "attach" : "any attach content",
11    "coupon_tag_info" : {
12      "coupon_tag_list" : [
13        "MEMBER"
14      ],
15      "member_tag_info" : {
16        "member_card_id" : "MemberCardId_1234567890"
17      }
18    },
19    "stock_id" : "1000000013001",
20    "send_request_no" : "MCHSEND202003101234",
21    "brand_id" : "120344"
22  }'
23

发放普通券

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

应答参数

200 OK

 coupon_code  必填   string(40)

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


 coupon_state  必填   string

【用户商品券状态】 

可选取值

  • CONFIRMING:  待确认,用户商品券发放需要品牌方调用【确认发放用户商品券API】后才能生效

  • PENDING:  已发放待生效,用户商品券已发放成功但尚未到达可用开始时间

  • EFFECTIVE:  已生效,用户商品券已成功发放且到达可用开始时间

  • USED:  已核销,用户商品券已核销

  • EXPIRED:  已过期,用户商品券已超过有效期,不再可用

  • DELETED:  已删除,用户主动删除该券

  • DEACTIVATED:  已失效,品牌方主动调用【失效用户商品券API】或【失效用户商品券组API】使用户商品券失效


 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】时传入的失效原因


 single_usage_detail  选填   object

【单券使用详情】 当且仅当 usage_mode 为 SINGLE 时提供

属性

 user_product_coupon_bundle_info  选填   object

【用户券组信息】 当前用户券所属用户券组的信息,当且仅当 usage_mode 为 PROGRESSIVE_BUNDLE 时提供

属性

 product_coupon  必填   object

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

属性

 stock  必填   object

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

属性

 attach  选填   string

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

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


 channel_custom_info  选填   string(1000)

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


 coupon_tag_info  选填   object

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

属性

 brand_id  必填   string

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

应答示例

200 OK

发送会员券

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

发放普通券

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

 

错误码

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

状态码

错误码

描述

解决方案

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