Ejemplo n.º 1
0
 /**
  * 发送红包
  */
 private function sendRedPacket($openid, $act_id)
 {
     $data['mch_id'] = "1233967602";
     //香江商户号
     $data['mch_billno'] = $data['mch_id'] . date('YmdHis' . mt_rand(1000, 9999));
     list($money, $hongbaoinfo) = $this->getMoneyPerPacket($openid, $act_id, $data['mch_billno']);
     if ($money > 0) {
         $data['nonce_str'] = $this->genNonceStr();
         //随机数
         $data['wxappid'] = $this->config['appid'];
         //公众账号appid
         $data['nick_name'] = "香江全球家居CBD";
         //提供方名称
         $data['send_name'] = "香江全球家居CBD";
         //商户名称
         $data['re_openid'] = $openid;
         //用户openid
         $data['total_num'] = 1;
         //红包发放总人数
         $data['wishing'] = "真是好运!恭喜你获得现金红包,再接再励哟!";
         //红包祝福语
         $hostname = "";
         if (isset($_ENV['COMPUTERNAME'])) {
             $hostname = $_ENV['COMPUTERNAME'];
         }
         $ip = gethostbyname($hostname);
         $data['client_ip'] = empty($ip) ? "192.168.1.1" : $ip;
         //本机ip地址
         $data['act_name'] = "88万现金红包任性发";
         //活动名称
         $data['remark'] = "手慢无!快来抢!";
         //备注
         $data['total_amount'] = $money;
         //单位分,此处为1元
         $data['min_value'] = $money;
         //最小红包金额,单位分
         $data['max_value'] = $money;
         //最大红包金额,单位分
         $sign = $this->genSign($data);
         $data['sign'] = $sign;
         $param2 = "<xml>";
         foreach ($data as $key => $value) {
             $param2 .= '<' . $key . ">" . $value . "</" . $key . ">";
         }
         $param2 .= "</xml>";
         $result = $this->post($this->sendredpack_url, $param2);
         require_once "DomParser.php";
         $dom = new DomParser();
         if (!$dom->loadXML($result)) {
             //发送红包不成功,删除已抢记录
             error_log("openid:" . $data['re_openid'] . "...." . $result . "||||", 3, "shake2_hongbao.txt");
             $this->restoreRecord($hongbaoinfo['id']);
             return 0;
         }
         $result_data = $dom->toArray();
         $result_data = $result_data['xml'];
         if ($result_data['result_code'] !== 'SUCCESS') {
             //发送红包不成功,删除已抢记录
             $this->restoreRecord($hongbaoinfo['id']);
             return 0;
             //服务器返回错误,具体错误信息,请参看文档
         }
         return $money;
     } else {
         return 0;
     }
 }