微信小程序模板消息


1 先去微信公眾平台,選擇現有模板,會有一個模板編號,模板中沒有的關鍵詞,可以申請新增。

微信公眾平台直達:https://mp.weixin.qq.com

模板消息對應文檔直達:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/template-message.html

 

 

 

2 查看接口文檔

模板消息接口文檔直達:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.send.html

調用模板消息接口之前,還需要獲取access_token,順帶把這個接口的使用順帶說一下吧。

 

3 模板消息模板選好了,就可以開始代碼的編寫了,下面是簡單的demo,可以根據自己項目的實際業務邏輯,進行優化

   //模板消息
    public function temMsg(Request $request){
        //1昵稱 2訂單號 3訂單內容
        $data   = $request->param();
        //查詢訂單信息
        $field  = Db::name('order')->where('id',$data['zjid'])->find();

        //$n_type = $field['name_type'];
        $key1   = $field['nickname'] ?? '匿名'; //昵稱
        $key2   = $field['order_num']; //訂單號
        $key3   = str_replace(',',"\n",$field['content']); //訂單內容
        $formid = $data['formid']; //前端小程序同事傳過來的formid
        $temid  = 'I5euBiEWIYaTinzd7Xmdq9SRjxCIhY_Bvi77sBahiaI'; //你在微信公眾平台選取的模板消息對應的編號

        $openid = Db::name('member')->where('id',$data['uid'])->value('wxopenid'); //接收模板消息用戶的oppenid

        $access_token = $this->returnAssKey(); //獲取access_token憑證
        $url  = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$access_token;
        $data = array(
            "touser"=>$openid,
            "template_id"=>$temid,
            // "page"=>$page,
            "form_id"=>$formid,
            "data"=>array(
                "keyword1"=>array(
                    "value"=>$key1,
                    "color"=>"#173177"
                ),
                "keyword2"=>array(
                    "value"=>$key2,
                    "color"=>"#173177"
                ),
                "keyword3"=>array(
                    "value"=>$key3,
                    "color"=>"#173177"
                )
            ),
//            "emphasis_keyword"=>"keyword1.DATA",//需要進行加大的消息
        );
        $res = $this->postCurl($url,$data,'json');//將data數組轉換為json數據

        return $res ? json(['status'=>1,'data'=>$res,'msg'=>'成功']) : json(['status'=>0,'data'=>'','msg'=>'失敗']);
    }

    //返回access_token
    public function returnAsskey(){
        $appid  = 'wxb4db99c1b0c279e4';
        $secret = '56d38c12c50535095ca061e7c8879c24';
        $url      = 'https://api.weixin.qq.com/cgi-bin/token?        
    grant_type=client_credential&appid=%s&secret=%s';

        // 請求地址,用sprinty將appid和secret替換掉地址中的占位符
        $url     = sprintf($url,$appid,$secret);

        $ass_key = $this->http_get($url);
        $a1      = $ass_key['access_token']; 
        return $a1;
    }

    public function http_get($url){
        $ch = curl_init($url);
        curl_setopt($ch,CURLOPT_HEADER,0);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
        curl_setopt($ch,CURLOPT_TIMEOUT,60);
        $data = curl_exec($ch);
        curl_close($ch);
        return json_decode($data,true);
    }

    //curl的post請求
    public function postCurl($url,$data,$type){
        if($type == 'json'){
            $data = json_encode($data);//對數組進行json編碼
            $header= array("Content-type: application/json;charset=UTF-8","Accept: application/json","Cache-Control: no-cache", "Pragma: no-cache");
        }
        $curl = curl_init();
        curl_setopt($curl,CURLOPT_URL,$url);
        curl_setopt($curl,CURLOPT_POST,1);
        curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
        curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
        if(!empty($data)){
            curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
        }
        curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
        $res = curl_exec($curl);
        if(curl_errno($curl)){
            echo 'Error+'.curl_error($curl);
        }
        curl_close($curl);
        return $res;
    }

  4 教程完成,祝在開發此功能的小伙伴早日完工,獲得更多的摸魚時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM