微信现金红包单一红包、裂变红包(Java版)

1.开通条件。

商户注册超过90天且,连续30天有交易,可以每天支付1元来刷,目前测试可行。随后在微信商户平台 - 产品管理自动开启,然后需要申请。

疑问:

必须是公众号的appid。

官方明文标注,移动应用的openID不支持现金红包,未测试。

微信现金红包单一红包、裂变红包(Java版)_第1张图片

补充:以下均已测试。

移动平台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,和小程序的话是否开通红包。如下图。

微信现金红包单一红包、裂变红包(Java版)_第2张图片

微信现金红包单一红包、裂变红包(Java版)_第3张图片

调用成功返回参数示例:(已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"
}

 效果图:

微信现金红包单一红包、裂变红包(Java版)_第4张图片

未关注公众号将通过服务消息发送:

微信现金红包单一红包、裂变红包(Java版)_第5张图片微信现金红包单一红包、裂变红包(Java版)_第6张图片

3.裂变红包。

注:因为是裂变,发放的时候随机红包,每个红包平均金额应该大于1元(微信商户平台可设置区间),如果设置3个人,至少要发放3000分。默认0.3元最低。

裂变红包,会有个分享好友按钮,可以红包分享出去。

微信现金红包单一红包、裂变红包(Java版)_第7张图片

请求成功示例:

{
	"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"
}

微信现金红包单一红包、裂变红包(Java版)_第8张图片

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

你可能感兴趣的:(微信支付)