微信傳送模版訊息
阿新 • • 發佈:2018-10-31
我們需要將一些行為的進展訊息推送給使用者。除了簡訊,傳送微信模板訊息也是不錯的選擇。模板訊息免費、精準到達、而且可以引導使用者回到網站上來。但它有兩個前提條件。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; } }