发放红包接口
更新时间:2024.11.13发放规则
1.发送频率限制------默认30/秒
2.场景金额限制------默认红包金额为1-200元,如有需要,可前往商户平台进行设置和申请
3.其他限制------商户单日出资金额上限--100万元;单用户单日收款金额上限--1000元;单用户单日可领取红包个数上限--10个;
|
消息触达规则
现金红包发放后会以公众号消息的形式触达用户,不同情况下触达消息的形式会有差别,相关规则如下:
1.已关注公众号的用户,使用“防伪消息”触达;
2.未关注公众号的用户,使用“模板消息”触达。
接口调用请求说明
请求Url | https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack |
---|---|
是否需要证书 | 是(证书及使用说明详见商户证书) |
请求方式 | POST |
超时时间(同笔订单最短重试时间) | 1s |
请求参数
字段名 | 字段 | 必填 | 示例值 | 类型 | 说明 |
---|---|---|---|---|---|
随机字符串 | nonce_str | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | String(32) | 随机字符串,不长于32位 |
签名 | sign | 是 | C380BEC2BFD727A4B6845133519F3AD6 | String(32) | 详见签名生成算法 |
商户订单号 | mch_billno | 是 | 10000098201411111234567890 | String(28) | 商户订单号(每个订单号必须唯一。取值范围:0~9,a~z,A~Z) 接口根据商户订单号支持重入,如出现超时可再调用。 |
商户号 | mch_id | 是 | 10000098 | String(32) | 微信支付分配的商户号 |
公众账号appid | wxappid | 是 | wx8888888888888888 | String(32) | 微信为发放红包商户分配的公众账号ID,接口传入的appid应该为公众号的appid(在mp.weixin.qq.com申请的)或APP的appid(在open.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) | 红包祝福语 |
Ip地址 | client_ip | 是 | 192.168.0.1 | String(15) | 该IP同在商户平台设置的IP白名单中的IP没有关联,该IP可传用户端或者服务端的IP。 |
活动名称 | act_name | 是 | 猜灯谜抢红包活动 | String(32) | 活动名称 |
备注 | remark | 是 | 猜越多得越多,快来抢! | String(256) | 备注信息 |
场景id | scene_id | 否 | PRODUCT_8 | String(32) | 发放红包使用场景,红包金额大于200或者小于1元时必传 PRODUCT_1:商品促销 PRODUCT_2:抽奖 PRODUCT_3:虚拟物品兑奖 PRODUCT_4:企业内部福利 PRODUCT_5:渠道分润 PRODUCT_6:保险回馈 PRODUCT_7:彩票派奖 PRODUCT_8:税务刮奖 |
活动信息 | risk_info | 否 | posttime%3d123123412%26clientversion%3d234134%26mobile%3d122344545%26deviceid%3dIOS | String(128) | posttime:用户操作的时间戳 mobile:业务系统账号的手机号,国家代码-手机号。不需要+号 deviceid :mac 地址或者设备唯一标识 clientversion :用户操作的客户端版本 把值为非空的信息用key=value进行拼接,再进行urlencode urlencode(posttime=xx& mobile =xx&deviceid=xx) |
数据示例:
返回参数
字段名 | 变量名 | 必填 | 示例值 | 类型 | 说明 |
---|---|---|---|---|---|
返回状态码 | 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) | 微信为发放红包商户分配的公众账号ID,接口传入的appid应该为公众号的appid(在mp.weixin.qq.com申请的)或APP的appid(在open.weixin.qq.com申请的)。 校验规则: 1、该appid需要与接口传入中的re_openid有对应关系; 2、该appid需要与发放红包商户号有绑定关系,若未绑定,可参考该指引完成绑定(商家商户号与AppID账号关联管理) |
用户openid | re_openid | 是 | oxTWIuGaIt6gTKsQRLau2M0yL16E | String(32) | 接受收红包的用户 用户在wxappid下的openid |
付款金额 | total_amount | 是 | 1000 | int | 付款金额,单位分 |
微信单号 | send_listid | 是 | 100000000020150520314766074200 | String(32) | 红包订单的微信单号 |
成功示例:
失败示例:
错误码
错误码 | 错误描述 | 原因 | 解决方式 |
---|---|---|---|
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 | 商户API证书校验出错 | 请求没带商户API证书或者带上了错误的商户API证书 | 您使用的调用证书有误,请确认是否使用了正确的证书,可以前往商户平台重新下载,证书需与商户号对应,如果要继续付款必须使用原商户订单号重试。 |
SIGN_ERROR | 签名错误 | 1、没有使用商户平台设置的商户API密钥进行加密(有可能之前设置过密钥,后来被修改了,没有使用新的密钥进行加密)。 |
|
SYSTEMERROR | 请求已受理,请稍后使用原单号查询发放结果 | 系统无返回明确发放结果 | 使用原单号调用接口,查询发放结果,如果使用新单号调用接口,视为新发放请求 |
XML_ERROR | 输入xml参数格式错误 | 请求的xml格式错误,或者post的数据为空 | 检查请求串,确认无误后重试 |
FREQ_LIMIT | 超过频率限制,请稍后再试 | 受频率限制 | 请对请求做频率控制 |
API_METHOD_CLOSED | 你的商户号API发放方式已关闭,请联系管理员在商户平台开启 | 商户API发放方式处于关闭状态 | 请联系管理员在商户平台开启 |
NOTENOUGH | 账号余额不足,请到商户平台充值后再重试 | 账户余额不足 | 充值后重试 |
OPENID_ERROR | openid和appid不匹配 | openid和appid不匹配 | 发红包的openid必须是本appid下的openid |
MSGAPPID_ERROR | 触达消息给用户appid有误 | msgappid与主、子商户号的绑定关系校验失败 | 检查下msgappid是否填写错误,msgappid需要跟主、子商户号 有绑定关系 |
ACCEPTMODE_ERROR | 主、子商户号关系校验失败 | 服务商模式下主商户号与子商户号关系校验失败 | 确认传入的主商户号与子商户号是否有受理关系 |
PROCESSING | 请求已受理,请稍后使用原单号查询发放结果 | 红包正在发放中 | 请在红包发放二十分钟后查询,按照查询结果成功失败进行处理,如果依然是PROCESSING的状态,请使用原商户订单号重试 |
PARAM_ERROR | act_name字段必填,并且少于32个字符 | 请求的act_name字段填写错误 | 填写正确的act_name后重试 |
发放金额、最小金额、最大金额必须相等 | 请求的金额相关字段填写错误 | 按文档要求填写正确的金额后重试 | |
红包金额参数错误 | 红包金额过大 | 修改金额重试 | |
appid字段必填,最长为32个字符 | 请求的appid字段填写错误 | 填写正确的appid后重试 | |
订单号字段必填,最长为28个字符 | 请求的mch_billno字段填写错误 | 填写正确的billno后重试 | |
client_ip必须是合法的IP字符串 | 请求的client_ip填写不正确 | 填写正确的IP后重试 | |
输入的商户号有误 | 请求的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参数 | |
红包祝福语、活动名称、备注、商户名称设置失败 | 红包祝福语、活动名称、备注、商户名称设置失败 | 请调整对应文案后重新再试 | |
SENDNUM_LIMIT | 该用户今日领取红包个数超过限制。 | 该用户今日领取红包个数超过你在微信支付商户平台配置的上限。 | 如有需要、请在微信支付商户平台【api安全】中重新配置 【每日同一用户领取本商户红包不允许超过的个数】。 |
SENDAMOUNT_LIMIT | 您的商户号今日发放金额超过限制,如有需要请登录微信支付商户平台更改API安全配置。 | 商户今日发放的总金额超过您在微信支付商户平台配置的上限。 | 如有需要,请联系管理员在商户平台上调整单日发送金额上限。 |
RCVDAMOUNT_LIMIT | 该用户今日领取金额超过限制,如有需要请登录微信支付商户平台更改API安全配置。 | 该用户今日领取红包总金额超过您在微信支付商户平台配置的上限。 | 如有需要,请联系管理员在商户平台上调整单用户单日领取金额上限。 |
PAYER_ACCOUNT_ABNORMAL | 商户账户付款受限 | 商户号被处罚、冻结 | 可前往“商户平台>账户中心>违约记录”或“商家助手小程序>风险处理”了解更多详情,解除功能限制指引。 |