1.开通条件。
商户注册超过90天且,连续30天有交易,可以每天支付1元来刷,目前测试可行。随后在微信商户平台 - 产品管理自动开启,然后需要申请。
疑问:
必须是公众号的appid。
官方明文标注,移动应用的openID不支持现金红包,未测试。
补充:以下均已测试。
移动平台appid指定不能用,小程序的appid也不能用,必须公众号appid。小程序appid调用报错如下:
{
"re_openid": "oNicp49yn6IS4g7_OymNyWKuJ9O0",
"total_amount": "100",
"err_code": "ILLEGAL_APPID",
"return_msg": "非法appid,请确认是否为公众号的appid",
"result_code": "FAIL",
"err_code_des": "非法appid,请确认是否为公众号的appid",
"mch_id": "1545047571",
"return_code": "SUCCESS",
"wxappid": "wxdfc5c46e8cee32ca",
"mch_billno": "201912182735503554873384960"
}
Attention:如果主体里面有括号,注意英文括号和中文括号区别;
2.此类接口使用场景。
无论是微信还是支付宝,现金红包,单笔转账,企业转账等资金支出类接口都可以用作,活动营销、招新、邀请好友发送奖励、企业内部报销、合伙人团长提现等场景。
注意点:
a.微信商户账号需要有余额;
b.根据实际业务,比如发红包,需要做并发和同步锁处理,同时建议在商户平台开启防盗刷处理;
c.调用三方接口,看好官方文档,参数获取的对,传递的对,工具类找的好,基本就ok了;
d.不支持给非实名用户付款,如果报错,请处理,并且展示给前端可理解字段;
e.消息触达是通过公众号来的。是不是必须有公众号才行?
f.注意IP,和小程序的话是否开通红包。如下图。
调用成功返回参数示例:(已JSON化)
{
"re_openid": "oyKWXv5Qi6Niy6QeVkcfHFrhwhfU",
"total_amount": "100",
"err_code": "SUCCESS",
"return_msg": "发放成功",
"result_code": "SUCCESS",
"err_code_des": "发放成功",
"mch_id": "1545047571",
"send_listid": "1000041701201912183000095214356",
"return_code": "SUCCESS",
"wxappid": "wx81711a5ad592b",
"mch_billno": "201912182735817827822592000"
}
效果图:
未关注公众号将通过服务消息发送:
3.裂变红包。
注:因为是裂变,发放的时候随机红包,每个红包平均金额应该大于1元(微信商户平台可设置区间),如果设置3个人,至少要发放3000分。默认0.3元最低。
裂变红包,会有个分享好友按钮,可以红包分享出去。
请求成功示例:
{
"re_openid": "oyKWXv5Qi6Niy6QeVkcfHFrhwhfU",
"total_amount": "600",
"total_num": "6",
"err_code": "SUCCESS",
"return_msg": "发放成功",
"result_code": "SUCCESS",
"err_code_des": "发放成功",
"mch_id": "1545047571",
"send_listid": "1000041701201912183000114012418",
"return_code": "SUCCESS",
"wxappid": "wx81711a5公众号appidb",
"mch_billno": "201912182736124721187512320"
}
4.查询红包,支持普通和裂变。
注:查询红包返回XML不包含sign参数,所以无需对sign进行验证;另外,如果返回单据不存在,可能是红包还没落地;如下如果有list返回,xmlToMap还需要优化,出现了\n;
刚发送:
{
"send_type": "API",
"err_code": "SUCCESS",
"return_msg": "OK",
"err_code_des": "OK",
"hb_type": "GROUP",
"mch_id": "154504",
"detail_id": "1000041701201912183000122269301",
"mch_billno": "201912182736275882477608960",
"send_time": "2019-12-18 20:51:02",
"total_amount": "600",
"total_num": "6",
"result_code": "SUCCESS",
"return_code": "SUCCESS",
"status": "SENT"
}
一个人领取:
{
"send_type": "API",
"err_code": "SUCCESS",
"return_msg": "OK",
"err_code_des": "OK",
"hb_type": "GROUP",
"mch_id": "15450471",
"detail_id": "1000041701201912183000122269301",
"mch_billno": "201912182736275882477608960",
"send_time": "2019-12-18 20:51:02",
"total_amount": "600",
"total_num": "6",
"hblist": "\n\noyKWXv5Qi6Niy6QeVkcfHFrhwhfU\n227\n2019-12-18 20:52:48\n\n",
"result_code": "SUCCESS",
"return_code": "SUCCESS",
"status": "RECEIVED"
}
额外:
接口文档官方地址:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_1
微信企业付款到零钱:https://blog.csdn.net/qq_31708763/article/details/103557402
获取用户公众号openID源码:https://gitee.com/JaneYork/tempwxuser