发放红包接口

更新时间:2024.11.13

发放规则

1.发送频率限制------默认30/秒

2.场景金额限制------默认红包金额为1-200元,如有需要,可前往商户平台进行设置和申请

3.其他限制------商户单日出资金额上限--100万元;单用户单日收款金额上限--1000元;单用户单日可领取红包个数上限--10个.

注意事项:

  • 红包金额大于200或者小于1元时,请求参数scene_id必传,参数说明见下文。

  • 根据监管要求,新申请商户号使用小程序红包需要满足两个条件:1、入驻时间超过90天 2、连续正常交易30天。

  • 移动应用的appid无法使用红包接口。

  • 当返回错误码为“SYSTEMERROR”时,请不要更换商户订单号,一定要使用原商户订单号重试,否则可能造成重复发放红包等资金风险。

  • XML具有可扩展性,因此返回参数可能会有新增,而且顺序可能不完全遵循此文档规范,如果在解析回包的时候发生错误,请商户务必不要换单重试,请商户联系客服确认红包发放情况。如果有新回包字段,会更新到此API文档中。

  • 因为错误代码字段err_code的值后续可能会增加,所以商户如果遇到回包返回新的错误码,请商户务必不要换单重试,请商户联系客服确认红包发放情况。如果有新的错误码,会更新到此API文档中。

  • 错误代码描述字段err_code_des只供人工定位问题时做参考,系统实现时请不要依赖这个字段来做自动化处理。

  • 请商户在自身的系统中合理设置发放频次并做好并发控制,防范错付风险。

  • 因商户自身系统设置存在问题导致的资金损失,由商户自行承担。

接口调用请求说明

请求Url

https://api.mch.weixin.qq.com/mmpaymkttransfers/sendminiprogramhb

是否需要证书

是(证书及使用说明详见商户证书

请求方式

POST

请求参数

字段名

字段

必填

示例值

类型

说明

随机字符串

nonce_str

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

String(32)

随机字符串,不长于32位

签名

sign

C380BEC2BFD727A4B6845133519F3AD6

String(32)

详见签名生成算法

商户订单号

mch_billno

10000098201411111234567890

String(28)

商户订单号(每个订单号必须唯一。取值范围:0~9,a~z,A~Z)

组成: mch_id+yyyymmdd+10位一天内不能重复的数字。

接口根据商户订单号支持重入, 如出现超时可再调用。

商户号

mch_id

10000098

String(32)

微信支付分配的商户号

小程序账号appid

wxappid

wx8888888888888888

String(32)

微信为发放红包商户分配的小程序账号ID,接口传入的appid应该为小程序的appid(在mp.weixin.qq.com申请的)

校验规则: 

1、该appid需要与接口传入中的re_openid有对应关系;

2、该appid需要与发放红包商户号有绑定关系,若未绑定,可参考该指引完成绑定(商家商户号与AppID账号关联管理)

商户名称

send_name

天虹百货

String(32)

红包发送者名称

用户openid

re_openid

oxTWIuGaIt6gTKsQRLau2M0yL16E

String(32)

接受收红包的用户openid
openid为用户在wxappid下的唯一标识(获取openid参见微信公众平台开发者文档:网页授权获取用户基本信息

付款金额

total_amount

1000

int

付款金额,单位分

红包发放总人数

total_num

1

int

红包发放总人数

total_num=1

红包祝福语

wishing

感谢您参加猜灯谜活动,祝您元宵节快乐!

String(128)

红包祝福语

活动名称

act_name

猜灯谜抢红包活动

String(32)

活动名称

备注

remark

猜越多得越多,快来抢!

String(256)

备注信息

通知用户形式

notify_way

MINI_PROGRAM_JSAPI

String(256)

通过JSAPI方式领取红包,小程序红包固定传MINI_PROGRAM_JSAPI

场景id

scene_id

PRODUCT_8

String(32)

发放红包使用场景,红包金额大于200时必传

PRODUCT_1:商品促销

PRODUCT_2:抽奖

PRODUCT_3:虚拟物品兑奖 

PRODUCT_4:企业内部福利

PRODUCT_5:渠道分润

PRODUCT_6:保险回馈

PRODUCT_7:彩票派奖

PRODUCT_8:税务刮奖

数据示例:

1<xml>
2<act_name>act_name</act_name>
3<mch_billno>2334580734271081478888000026</mch_billno>
4<mch_id>11475856</mch_id>
5<nonce_str>1233213123123</nonce_str>
6<notify_way>MINI_PROGRAM_JSAPI</notify_way>
7<re_openid>oeDV3t7xy1IkfYFzgOsCZvdRjb45</re_openid>
8<remark>remark</remark>
9<send_name>miniprogramtest</send_name>
10<total_amount>100</total_amount>
11<total_num>1</total_num>
12<wishing>wishing</wishing>
13<wxappid>wxd27ebc41b85ce36d</wxappid>
14<sign>b9dca63fe3f06bba49b6c4d6d2035b72</sign>
15</xml>

返回参数

字段名

变量名

必填

示例值

类型

说明

返回状态码

return_code

SUCCESS

String(16)

SUCCESS/FAIL

此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断

返回信息

return_msg

签名失败

String(128)

返回信息,如非空,为错误原因

签名失败

参数格式校验错误

以下字段在return_code为SUCCESS的时候有返回

业务结果

result_code

SUCCESS

String(16)

SUCCESS/FAIL
注意:当状态为FAIL时,存在业务结果未明确的情况。所以如果状态是FAIL,请务必再请求一次查询接口[请务必关注错误代码(err_code字段),通过查询得到的红包状态确认此次发放的结果。],以确认此次发放的结果。

错误代码

err_code

SYSTEMERROR

String(32)

错误码信息
注意:出现未明确的错误码(SYSTEMERROR等)时,请务必用原商户订单号重试,或者再请求一次查询接口以确认此次发放的结果。

错误代码描述

err_code_des

系统错误

String(128)

结果信息描述

以下字段在return_code和result_code都为SUCCESS的时候有返回

商户订单号

mch_billno

10000098201411111234567890

String(28)

商户订单号(每个订单必须唯一

组成:mch_id+yyyymmdd+10位一天内不能重复的数字

商户号

mch_id

10000098

String(32)

微信支付分配的商户号

小程序账号appid

wxappid

wx8888888888888888

String(32)

商户appid,接口传入的所有appid应该为小程序账号的appid(在mp.weixin.qq.com申请的),不能为APP的appid(在open.weixin.qq.com申请的)。

用户openid

re_openid

oxTWIuGaIt6gTKsQRLau2M0yL16E

String(32)

接受收红包的用户

用户在wxappid下的openid

付款金额

total_amount

1000

int

付款金额,单位分

微信单号

send_listid

100000000020150520314766074200

String(32)

红包订单的微信单号

Jsapi的入参

package

sendid=242e8abd163d300019b2cae74ba8e8c06e3f0e51ab84d16b3c80decd22a5b672&ver=8&sign=4110d649a5aef52dd6b95654ddf91ca7d5411ac159ace4e1a766b7d3967a1c3dfe1d256811445a4abda2d9cfa4a9b377a829258bd00d90313c6c346f2349fe5d&mchid=11475856&appid=wxd27ebc41b85ce36d

String

返回jaspi的入参package的值

成功示例:

1<xml>
2<return_code><![CDATA[SUCCESS]]></return_code>
3<return_msg><![CDATA[发放成功]]></return_msg>
4<result_code><![CDATA[SUCCESS]]></result_code>
5<err_code><![CDATA[SUCCESS]]></err_code>
6<err_code_des><![CDATA[发放成功]]></err_code_des>
7<mch_billno><![CDATA[2334580734271081478888000026]]></mch_billno>
8<mch_id><![CDATA[11475856]]></mch_id>
9<wxappid><![CDATA[wxd27ebc41b85ce36d]]></wxappid>
10<re_openid><![CDATA[oeDV3t7xy1IkfYFzgOsCZvdRzx3U]]></re_openid>
11<total_amount>10</total_amount>
12<send_listid><![CDATA[1000041701201609263000000204000]]></send_listid>
13<package><![CDATA[sendid=242e8abd163d300019b2cae74ba8e8c06e3f0e51ab84d16b3c80decd22a5b672&ver=8&sign=4110d649a5aef52dd6b95654ddf91ca7d5411ac159ace4e1a766b7d3967a1c3dfe1d256811445a4abda2d9cfa4a9b377a829258bd00d90313c6c346f2349fe5d&mchid=11475856&appid=wxd27ebc41b85ce36d]]></package>
14</xml>

失败示例:

1<xml>
2<return_code><![CDATA[SUCCESS]]></return_code>
3<return_msg><![CDATA[每个红包的平均金额必须在1.00元到200.00元之间.]]></return_msg>
4<result_code><![CDATA[FAIL]]></result_code>
5<err_code><![CDATA[MONEY_LIMIT]]></err_code>
6<err_code_des><![CDATA[每个红包的平均金额必须在1.00元到200.00元之间.]]></err_code_des>
7<mch_billno><![CDATA[2334580734271081478888000026]]></mch_billno>
8<mch_id><![CDATA[11475856]]></mch_id>
9<wxappid><![CDATA[wxd27ebc41b85ce36d]]></wxappid>
10<re_openid><![CDATA[oeDV3t7xy1IkfYFzgOsCZvdRzx3U]]></re_openid>
11<total_amount>10</total_amount>
12</xml>

错误码

错误码

错误描述

原因

解决方式

NO_AUTH

发放失败,此请求可能存在风险,已被微信拦截

用户账号异常,被拦截

请提醒用户检查自身账号是否异常。使用常用的活跃的微信号可避免这种情况。

SENDNUM_LIMIT

该用户今日领取红包个数超过限制

该用户今日领取红包个数超过你在微信支付商户平台配置的上限

如有需要、请在微信支付商户平台【api安全】中重新配置 【每日同一用户领取本商户红包不允许超过的个数】。

ILLEGAL_APPID

非法appid,请确认是否为公众号的appid,不能为APP的appid

错误传入了app的appid

接口传入的所有appid应该为公众号的appid(在mp.weixin.qq.com申请的),不能为APP的appid(在open.weixin.qq.com申请的)。

MONEY_LIMIT

红包金额发放限制

发送红包金额不再限制范围内

每个红包金额必须在默认额度内(默认大于1元,小于200元,可在产品设置中自行申请调整额度)

SEND_FAILED

红包发放失败,请更换单号再重试

该红包已经发放失败

如果需要重新发放,请更换单号再发放

FATAL_ERROR

openid和原始单参数不一致

更换了openid,但商户单号未更新

请商户检查代码实现逻辑

金额和原始单参数不一致

更换了金额,但商户单号未更新

请商户检查代码实现逻辑

CA_ERROR

CA证书出错,请登录微信支付商户平台下载证书

请求携带的证书出错

到商户平台下载证书,请求带上证书后重试

SIGN_ERROR

签名错误

1、没有使用商户平台设置的商户API密钥进行加密(有可能之前设置过密钥,后来被修改了,没有使用新的密钥进行加密)。
2、加密前没有按照文档进行参数排序(可参考文档)
3、把值为空的参数也进行了签名。可到(http://mch.weixin.qq.com/wiki/tools/signverify/)验证。
4、如果以上3步都没有问题,把请求串中(post的数据)里面中文都去掉,换成英文,试下,看是否是编码问题。(post的数据要求是utf8)

  1. 到商户平台重新设置新的密钥后重试

  2. 检查请求参数把空格去掉重试

  3. 中文不需要进行encode,使用CDATA

  4. 按文档要求生成签名后再重试

在线签名验证工具:http://mch.weixin.qq.com/wiki/tools/signverify/

SYSTEMERROR

请求已受理,请稍后使用原单号查询发放结果

系统无返回明确发放结果

使用原单号调用接口,查询发放结果,如果使用新单号调用接口,视为新发放请求

XML_ERROR

输入xml参数格式错误

请求的xml格式错误,或者post的数据为空

检查请求串,确认无误后重试

FREQ_LIMIT

超过频率限制,请稍后再试

受频率限制

请对请求做频率控制(可联系微信支付wxhongbao@tencent.com申请调高)

API_METHOD_CLOSED

你的商户号API发放方式已关闭,请联系管理员在商户平台开启

商户API发放方式处于关闭状态

请联系管理员在商户平台开启

NOTENOUGH

账号余额不足,请到商户平台充值后再重试

账户余额不足

充值后重试

OPENID_ERROR

openid和appid不匹配

openid和appid不匹配

发红包的openid必须是本appid下的openid

MSGAPPID_ERROR

触达消息给用户appid有误

msgappid与主、子商户号的绑定关系校验失败

检查下msgappid是否填写错误,msgappid需要跟主、子商户号 有绑定关系

ACCEPTMODE_ERROR

主、子商户号关系校验失败

服务商模式下主商户号与子商户号关系校验失败

确认传入的主商户号与子商户号是否有受理关系

PROCESSING

请求已受理,请稍后使用原单号查询发放结果

发红包流程正在处理

二十分钟后查询,按照查询结果成功失败进行处理

PARAM_ERROR

act_name字段必填,并且少于32个字符

请求的act_name字段填写错误

填写正确的act_name后重试

发放金额、最小金额、最大金额必须相等

请求的金额相关字段填写错误

按文档要求填写正确的金额后重试

红包金额参数错误

红包金额过大

修改金额重试

appid字段必填,最长为32个字符

请求的appid字段填写错误

填写正确的appid后重试

订单号字段必填,最长为28个字符

请求的mch_billno字段填写错误

填写正确的billno后重试

输入的商户号有误

请求的mchid字段非法(或者没填)

填写对应的商户号再重试

找不到对应的商户号

请求的mchid字段填写错误

填写正确的mchid字段后重试

nick_name字段必填,并且少于16字符

请求的nick_name字段错误

按文档填写正确的nick_name后重试

nonce_str字段必填,并且少于32字符

请求的nonce_str字段填写不正确

按文档要求填写正确的nonce_str值后重试

re_openid字段为必填并且少于32个字符

请求的re_openid字段非法

填写对re_openid后重试

remark字段为必填,并且少于256字符

请求的remark字段填写错误

填写正确的remark后重试

send_name字段为必填并且少于32字符

请求的send_name字段填写不正确

按文档填写正确的send_name字段后重试

total_num必须为1

total_num字段值不为1

修改total_num值为1后重试

wishing字段为必填,并且少于128个字符

缺少wishing字段

填写wishing字段再重试

商户号和wxappid不匹配

商户号和wxappid不匹配

请修改Mchid或wxappid参数

红包祝福语、活动名称、备注、商户名称设置失败

红包祝福语、活动名称、备注、商户名称设置失败

请调整对应文案后重新再试

SENDAMOUNT_LIMIT

您的商户号今日发放金额超过限制,如有需要请登录微信支付商户平台更改API安全配置

商户今日发放的总金额超过您在微信支付商户平台配置的上限

如有需要,请联系管理员在商户平台上调整单日发送金额上限。

RCVDAMOUNT_LIMIT

该用户今日领取金额超过限制,如有需要请登录微信支付商户平台更改API安全配置

该用户今日领取红包总金额超过您在微信支付商户平台配置的上限

如有需要,请联系管理员在商户平台上调整单用户单日领取金额上限。

 

反馈
咨询
目录
置顶