1. 程式人生 > >微信傳送模版訊息

微信傳送模版訊息

    我們需要將一些行為的進展訊息推送給使用者。除了簡訊,傳送微信模板訊息也是不錯的選擇。模板訊息免費、精準到達、而且可以引導使用者回到網站上來。但它有兩個前提條件。1個是認證的服務號,你才能選擇模板。2個是被推送的使用者必須關注了你的公眾號,而且你也拿到了他的openid

先在模板庫中找到自己的想要的模板,新增到“我的模板”中。

展開詳情,我們可以看到示例。

接下來用PHP程式碼傳送一次:

class Wechat
{

    //首先獲取獲取access_token
    public static function get_access_token(){
        $ch = curl_init(); //初始化一個CURL物件
        $appId = "xxxxxxxxxxxxxxxxxx"; //微信appid
        $appSecret = "xxxxxxxxxxxxxxxxxx"; //微信appsecret
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL,$url); //要訪問的地址
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//跳過證書驗證
        $data = json_decode(curl_exec($ch));
        if($data->access_token){
            $token_file = fopen("token.txt","w") or die("Unable to open file!");//開啟token.txt檔案,沒有會新建
            fwrite($token_file,$data->access_token);//重寫tken.txt全部內容
            fclose($token_file);//關閉檔案流
        }else{
            echo $data->errmsg;
        }
        curl_close($ch);
    }
    
    //讀取access_token的方法
    public static function read_token(){
        $token_file = fopen("token.txt", "r") or die("Unable to open file!");
        $rs = fgets($token_file);
        fclose($token_file);
        return $rs;
    }
    
    //傳送模版訊息
    public  function send(){
        $this->build_access_token();
        $ACCESS_TOKEN=$this->read_token();
        $data=array(
            'touser'=>"olfsB1VwJLKYsGbss90z7J-3baE4", //要傳送給粉絲的openid
            'template_id'=>"0C3WQsssss8pzMesCyrU5_8pm2Abmags7DydiTaOdUM",//改成自己的模板id,在微信後臺模板訊息裡檢視
            'url'=>"http://www.xxxxxxx.com/weixin/", //自己網站連結url
            'data'=>array(
                'first'=>array('value'=>"XXX,你好",'color'=>"#fc0101"),
                'keyword1'=>array('value'=>"XXX門店",'color'=>"#173177"),
                'keyword2'=>array('value'=>"2018-12-12",'color'=>"#173177"),
                'keyword3'=>array('value'=>"美容",'color'=>"#173177"),
                'remark'=>array('value'=>"歡迎光臨。",'color'=>"#173177"),
            )
        );

        $json_data=json_encode($data);//轉化成json陣列讓微信可以接收
        $url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$ACCESS_TOKEN;//模板訊息請求URL
        $res=$this->https_request($url,urldecode($json_data));//請求開始
        $res=json_decode($res,true);
        if($res['errcode']==0 && $res['errcode']=="ok"){
            echo "傳送成功!";
        }
    }

     
    //curl請求函式,微信都是通過該函式請求
    function https_request($url,$data = null){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }
}