PHP发送微信模版消息

  1     public function payResult($params) {
  2 
  3         global $_GPC, $_W;
  4 
  5         $weid = $this->_weid;
  6 
  7         $order = pdo_fetch("SELECT id, status, hotelid, roomid FROM " . tablename('hotel2_order') . " WHERE id = {$params['tid']} AND weid = {$weid} LIMIT 1");
  8 
  9         pdo_update('hotel2_order', array('paystatus' => 1), array('id' => $params['tid']));
 10         if ($params['from'] == 'return') {
 11             $roomid = $order['roomid'];
 12             $room = pdo_fetch("SELECT score FROM " . tablename('hotel2_room') . " WHERE id = {$roomid} AND weid = {$weid} LIMIT 1");
 13             $score = intval($room['score']);
 14 
 15             if ($score) {
 16                 $from_user = $this->_from_user;
 17                 pdo_fetch("UPDATE " . tablename('hotel2_member') . " SET score = (score + " . $score . ") WHERE from_user = '".$from_user."' AND weid = ".$weid."");
 18                 pdo_fetch("UPDATE " . tablename('fans') . " SET credit1 = (credit1 + " . $score . ") WHERE from_user = '".$from_user."' AND weid = ".$weid."");
 19             }
 20 
 21             /*
 22             发送模板消息
 23             */
 24 
 25             $template_id="mYQugPDOABxe1Y9HVVZy8avP9inHsQAJuL_TJsU49y4";
 26             $url='http://' . $_SERVER['SERVER_NAME'] . '/'.$this->createMobileUrl('orderdetail',array("id"=>$order['id']));
 27             $color='#FF0000';
 28 
 29             $sql = "SELECT o.*, h.title, h.address, h.phone";
 30             $sql .= " FROM " .tablename('hotel2_order') ." AS o";
 31             $sql .= " LEFT JOIN " .tablename('hotel2') ." AS h ON o.hotelid = h.id";
 32             $sql .= " WHERE 1 = 1";
 33             $sql .= " AND o.id = :id";
 34             $sql .= " AND o.weid = :weid";
 35             $params = array();
 36             $params[':weid'] = $weid;
 37             $params[':id'] = $order['id'];
 38             $sql .= " LIMIT 1";
 39             $item = pdo_fetch($sql, $params);
 40 
 41             $paymethod="";
 42             if($item['paytype']==1){
 43                 $paymethod="余额支付";
 44             }elseif($item['paytype']==21){
 45                 $paymethod="微信支付";
 46             }elseif($item['paytype']==22){
 47                 $paymethod="支付宝";
 48             }else{
 49                 $paymethod="到店付款";
 50             }
 51 
 52 
 53 
 54             $remark="房间数量:".$item["nums"]."间\n房型名称:".$item["style"]."\n订单总价:¥".$item["sum_price"]."\n酒店电话:".$item["phone"]."\n酒店地址:".$item["address"]."\n付款方式:".$paymethod."\n房间将保留至次日中午12点,不能取消修改。";
 55 
 56             $data=array(
 57                 "first"=>array(
 58                     "value"=>"您好,您已成功预订".$item["title"]."!",
 59                     "color"=>"#173177"
 60                 ),
 61                 "OrderID"=>array(
 62                     "value"=>$item["ordersn"],
 63                     "color"=>"#173177"
 64                 ),
 65                 "PersonName"=>array(
 66                     "value"=>$item["name"],
 67                     "color"=>"#173177"
 68                 ),
 69                 "CheckInDate"=>array(
 70                     "value"=>date('Y-m-d',$item['btime']),
 71                     "color"=>"#173177"
 72                 ),
 73                 "CheckOutDate"=>array(
 74                     "value"=>date('Y-m-d',$item['etime']),
 75                     "color"=>"#173177"
 76                 ),
 77                 "remark"=>array(
 78                     "value"=>$remark,
 79                     "color"=>"#173177"
 80                 )
 81             );
 82             $data=json_encode($data);
 83 
 84             $this->sendtempmsg($template_id,$url,$data,$color);
 85 
 86             //end 发送模板消息
 87 
 88 
 89             message('支付成功!', "/".$this->createMobileUrl('orderdetail',array("id"=>$order['id'])), 'success');
 90         }
 91     }
 92 
 93 
 94     public function sendtempmsg($template_id, $url, $data, $topcolor) {
 95         global $_W, $_GPC;
 96         $from_user = $this->_from_user;
 97         $tokens = $this->get_weixin_token();
 98         //echo "token:".$tokens."..";
 99         if (empty($tokens)) {
100             return;
101         }
102         $postarr = '{"touser":"' . $from_user . '","template_id":"' . $template_id . '","url":"' . $url . '","topcolor":"' . $topcolor . '","data":' . $data . '}';
103 
104         $res = ihttp_post('https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $tokens, $postarr);
105         return true;
106     }
107 
108 
109      public function get_weixin_token() {
110         global $_W, $_GPC;
111         $account = $_W['account'];
112         if (is_array($account['access_token']) && !empty($account['access_token']['token']) && !empty($account['access_token']['expire']) && $account['access_token']['expire'] > TIMESTAMP) {
113             return $account['access_token']['token'];
114         } else {
115             if (empty($account['weid'])) {
116                 message('参数错误.');
117             }
118             $appid = $account['key'];
119             $secret = $account['secret'];
120 
121             $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
122             $content = ihttp_get($url);
123             if (empty($content)) {
124                 message('获取微信公众号授权失败, 请稍后重试!');
125             }
126             $token = @json_decode($content['content'], true);
127             if (empty($token) || !is_array($token)) {
128                 message('获取微信公众号授权失败, 请稍后重试! 公众平台返回原始数据为: <br />' . $token);
129             }
130             if (empty($token['access_token']) || empty($token['expires_in'])) {
131                 message('解析微信公众号授权失败, 请稍后重试!');
132             }
133             $record = array();
134             $record['token'] = $token['access_token'];
135             $record['expire'] = TIMESTAMP + $token['expires_in'];
136             $row = array();
137             $row['access_token'] = iserializer($record);
138             pdo_update('wechats', $row, array(
139                 'weid' => $account['weid']
140             ));
141             return $record['token'];
142         }
143     }


大家有问题或者建议可以随时留言交流

 

posted @ 2015-09-19 17:30  幻月无痕  阅读(1407)  评论(1编辑  收藏  举报