图 1
开拓前准备1.已认证的做事号;
2.开通微信支付功能。
开启“微信支付——产品中央——现金红包”此项功能,如图2所示
图 2
3.微信支付开拓文档:
https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3
开始开拓1.开拓思路:笔者利用mindject整理了程序构造及调用关系。在微信后台“学点编程”(shijiawen6)回答“红包思路”获取红包开拓思路图片。
2.接口:POST办法,带XML参数。
https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack;
3.参数拆分:因发送红包的参数非常多,如图3所示,逐一先容。
图 3
1)nonce_str:随机字符串,用来天生署名。随机字符串署名可以通用,26个字母,10个数字,字符串最长为36。随机字符串程序如下,由于程序较为大略,以是写在redPacketPay.php主程序的类中,用$this->调用。
图 4
2)sign:署名。署名的获取较为繁芜以是并没有在redPacketPay.php中拼装。
(署名算法:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3)
剖析署名算法,它可以拆分为:
a)在支付平台中设置密钥,密钥需保密。
图 5
b)检讨其他参数是否已生产。
图 6
c)对参数按照 key=value 的格式,并按照参数名 ASCII 字典序排序,并拼接为字符串,如图7所示。个中ksort()函数浸染为ASCII 字典序排序;formatQueryParaMap()函数浸染为拼接为字符串,如图8所示。
图 7
图 8
d)用MD5加密算法得到署名,如图9所示。
图 9
3)mch_billno:订单编号=商户号+YYMMDDHHIISS+RANDOM(1000,9999)把韶光补全HHIISS有六位,再来一个随机四位数即可。
4)mch_id:商户号,注册了支付平台就有的
5)wxappid:appID
6)send_name:发送方名称
7)nick_name:如果做为第三方支付开拓方,帮商户开拓时候,此字段指开放方(非必须)
8)re_openid:用户的openid,传参的时候直接用$object->FromUserName
9)total_amount:付款金额,分为单位,最小为100分,即1元
10)total_num:发红包总数,普通红包1,裂变红包可以为其他值
11)wishing:红包祝福语
12)client_ip:新浪云的ip是动态的,以是要动态获取,获取办法如图10所示。
图 10
13)act_name:活动信息
14)remark:备注信息,
以上参数均为必须,完成参数设置之后,须要将参数拼装为XML数据。
4.组装XML数组,其方法如图11所示。
图 11
5.发起POST要求。涉及金钱,以是要利用证书,证书对付每个商户是唯一的,必须妥善保管,方法如图12所示。
图 12
全文总结
当实行完POST要求后,即完成发红包动作。微信原生红包的开拓实在并不繁芜,只是涉及到较多的参数,须要利用较多的方法。建议利用笔者供应的“红包思路”先梳理一下开拓的流程,再结合源代码进行开拓。
获取源码:向微信公众号“学点编程”(shijiawen6)发送“红包源码”获取代码