美文网首页
微信模板消息推送

微信模板消息推送

作者: 衡阿大 | 来源:发表于2018-05-23 14:27 被阅读0次

    上周部门老大安排了一个新任务,需求是在公司机器人上打完卡后给打卡人绑定的微信推送打卡信息。

    虽然之前没开发过,但不妨碍我接收到各种消息推送啊(譬如招行还款啊,拼多多拼单提醒啊~~),所以我知道这个肯定是可以做的,并且开发文档应该也是很成熟的。果然到网上一搜,结果很让人欣喜 ^ ^ 接下来就开始正文啦啦啦

    需要的数据微信公众号的开发者 ID(AppID)、开发者密码(AppSecret) & 模板消息id

    AppID和AppSecret的获取可以参考我另外一篇文章,我们主要说的是模板消息id的获取

    没有开发过模板消息的人可能会一脸懵:模板消息是什么玩意?它不是玩意~它就是你接下来要开发的啊(~ ̄▽ ̄)~

    首先要开通模板消息功能

    1 >> 在微信公众平台的后台,依次进入“功能->添加功能插件->模板消息”,即可申请模板消息(模板消息的申请需账号已经开通微信支付权限)

    image

    2 >> 点击申请

    image

    3 >> 申请时,选择2个和自己相关的行业即可

    image

    4 >> 提交并且申请通过后,可以在模板库中看到模板消息列表,选择一个匹配自己的模板消息点击详情添加(微信提供的模板消息里面基本已经涵盖的很全了,如果没有找到合适自己的也可以自己申请创建一个新的模板消息,我这里用的是一个现成的模板消息)

    image

    5 >> 申请完后就可以在自己的模板消息查看你要用的模板消息的id

    image image

    现在所有的数据都拿到了,接下来就是开发正题了~

    
    public function signPush(){
    
            //获取token值
    
            $appid = ''; 
    
            $appsec = '';
    
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsec}"; 
    
            $data = json_decode(file_get_contents($url),1);
    
            $access_token = $data['access_token']; 
    
            // 构造推送信息数组
    
            $data = array(
    
                'touser'        =>  '',
    
                'template_id'  =>  '', 
    
                'url'          =>  'http://wx.avatarmind.com', //详情的跳转链接
    
                'topcolor'      =>  "#FF0000",
    
                'data'          =>  array(
    
                    'first'      =>  array(
    
                        "value" =>  '签到成功',
    
                        "color" =>  "#008000"
    
                    ),
    
                    'keyword1'      =>  array(//keyword1、keyword2、keyword3是模板消息里定义的变量名
    
                        "value" =>  'suosi',
    
                        "color" =>  "#173177"
    
                    ),
    
                    'keyword2'      =>  array(
    
                        "value" =>  date("Y-m-d H:i:s",time()),
    
                        "color" =>  "#173177"
    
                    ),
    
                    'keyword3'      =>  array(
    
                        "value" =>  '正常',
    
                        "color" =>  "#173177"
    
                    ),
    
                    'remark'      =>  array(
    
                        "value" =>  '今天又是活力满满的一天~',
    
                        "color" =>  "#008000"
    
                    ),
    
                ),
    
            );
    
            // 发布推送消息
    
            $result = $this->curl_post_send_information($access_token,json_encode($data));
    
            Returndata(1,$result,'获取成功!');
    
        }
    
        public function curl_post_send_information( $token,$vars,$second=120,$aHeader=array()) 
    
        { 
    
            $ch = curl_init(); 
    
            //超时时间 
    
            curl_setopt($ch,CURLOPT_TIMEOUT,$second); 
    
            curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1); 
    
            //这里设置代理,如果有的话 
    
            curl_setopt($ch,CURLOPT_URL,'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='.$token); 
    
            curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); 
    
            curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); 
    
            if( count($aHeader) >= 1 ){ 
    
                curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader); 
    
            } 
    
            curl_setopt($ch,CURLOPT_POST, 1); 
    
            curl_setopt($ch,CURLOPT_POSTFIELDS,$vars); 
    
            $data = curl_exec($ch); 
    
            if($data){ 
    
                curl_close($ch); 
    
                return $data; 
    
            } 
    
            else { 
    
                $error = curl_errno($ch); 
    
                curl_close($ch); 
    
                return $error; 
    
            } 
    
        }
    
    

    效果展示:

    image

    相关文章

      网友评论

          本文标题:微信模板消息推送

          本文链接:https://www.haomeiwen.com/subject/lsyrjftx.html