首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》17.6.2 裂变红包

关灯直达底部

裂变红包是指一次可以发放一组红包。首先领取的用户为种子用户,种子用户领取一组红包中的一个,并可以通过社交分享将剩下的红包发给其他用户。裂变红包充分利用了人际传播的优势。

发放裂变红包的接口如下。


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

发放裂变红包时,POST数据示例如下。


<xml>     <sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>    <mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno>    <mch_id><![CDATA[1000888888]]></mch_id>    <wxappid><![CDATA[wxcbda96de0b165486]]></wxappid>     <send_name><![CDATA[send_name]]></send_name>     <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>     <total_amount><![CDATA[600]]></total_amount>     <amt_type><![CDATA[ALL_RAND]]></amt_type>     <total_num><![CDATA[3]]></total_num>     <wishing><![CDATA[恭喜发财]]></wishing>    <act_name><![CDATA[新年红包]]></act_name>     <remark><![CDATA[新年红包]]></remark>     <scene_id><![CDATA[PRODUCT_2]]></scene_id>    <nonce_str><![CDATA[50780e0cca98c8c8e814883e5caa672e]]></nonce_str>     <risk_info>posttime%3d123123412%26clientversion%3d234134%26mobile%3d122344545%26    deviceid%3dIOS</risk_info>    <consume_mch_id><![CDATA[10000097]]></consume_mch_id></xml>  

同时,发放裂变红包时需要带上文件证书,提高安全级别。

上述数据的参数说明如表17-8所示。

表17-8 发放裂变红包接口的参数说明

正确创建时,返回的数据示例如下。


<xml>     <return_code><![CDATA[SUCCESS]]></return_code>     <return_msg><![CDATA[发放成功.]]></return_msg>     <result_code><![CDATA[SUCCESS]]></result_code>     <err_code><![CDATA[0]]></err_code>     <err_code_des><![CDATA[发放成功.]]></err_code_des>     <mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno>     <mch_id>10010404</mch_id>     <wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid>     <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>     <total_amount>3</total_amount>     <send_time><![CDATA[20150227091010]]></send_time>    <send_listid><![CDATA[1000000000201502270093647546]]></send_listid></xml>  

上述数据的参数说明如表17-9所示。

表17-9 发放裂变红包接口返回参数说明

裂变红包的请求方法和普通红包基本相同,都是使用同样的SDK。发放裂变红包的代码如下。


 1 $money = 501; 2 $sender = "方倍工作室"; 3 $obj = array; 4 $obj['wxappid']          = APPID; 5 $obj['mch_id']           = MCHID; 6 $obj['mch_billno']       = MCHID.date('YmdHis').rand(1000, 9999); 7 $obj['re_openid']        = $openid; 8 $obj['total_amount']     = $money; 9 $obj['amt_type']         = "ALL_RAND";10 $obj['total_num']        = 3;11 $obj['send_name']        = $sender;12 $obj['wishing']          = "恭喜发财";13 $obj['act_name']         = "猜灯谜抢红包";14 $obj['remark']           = "猜越多得越多";15 var_dump($obj);16 $url = 'https:// api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack';17 $wxHongBaoHelper = new WxPay;18 $data = $wxHongBaoHelper->wxpay($url, $obj, true);19 $res = $wxHongBaoHelper->xmlToArray($data);20 var_dump($res);  

用户收到裂变红包时的效果如图17-10所示。

图17-10 微信支付裂变红包