/** * 发送红包 */ 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; } }