微信模板消息推送

2018-05-23  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读