欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

小程序發(fā)送公眾號模版信息 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

小程序發(fā)送公眾號模版信息

發(fā)表時間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):35

小程序的發(fā)送模版信息功能,經(jīng)過修改,只能發(fā)送訂閱信息,如需向公眾號一樣發(fā)送模版信息,需滿足以下條件

一、微信開放平臺花300元開通認證,認證通過后、去管理中心、小程序、綁定小程序(小程序登入賬號就是微信公眾號的賬號and密碼)

二、在公眾號中綁定對應(yīng)的小程序

三、在公眾號中基本配置-服務(wù)器配置(啟用-注意,啟用此配置后,公眾號自定義菜單會失效,需要自己開發(fā)對應(yīng)的功能)

配置如下圖

四、在服務(wù)器中上圖地址創(chuàng)建url接口getGzhConfig方法,及相關(guān)代碼

 //公眾號服務(wù)器配置url
    public function getGzhConfig(){
        $timestamp = input('get.timestamp');
        $nonce = input('get.nonce');
        $token = 'cmxx';//自定義,對應(yīng)令牌token名
        $signature = input('get.signature');
        $array = array($timestamp, $nonce, $token);
        sort($array);
        $stmstr = implode('', $array);
        $stmstr = sha1($stmstr);
        $echostr = input('get.echostr');
        if($stmstr == $signature && $echostr){
            echo $echostr;
            exit;
        } else {
            $this->responseMsg();
        }
    }

     //發(fā)送響應(yīng)消息(暫只做關(guān)注處理,保存關(guān)注用戶的信息,openid unionid,nickname等)
    public function responseMsg()
    {
        $postArr = file_get_contents("php://input");
        $postObj = simplexml_load_string($postArr);
        $type = strtolower($postObj->MsgType);

        //關(guān)注和向公眾號發(fā)送消息是兩個不同的事件
        //因此可以通過獲取到的事件類型來決定回復(fù)什么內(nèi)容
        switch ($type) {
            //關(guān)注事件回復(fù)內(nèi)容
            case 'event':
                if (strtolower($postObj->Event) == 'subscribe') {
                    $this->getUserInfo($postObj->FromUserName);
                }
                break;
            default:
                break;
        }
    }

    //用戶關(guān)注時,通過openId獲取用戶信息
    public function getUserInfo($openid){
        $token = $this->getWxAccessToken();
        $url  = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$openid."&lang=zh_CN";
        $res = $this->curl($url);
        $userGzh = UserGzhModel::where('openid',$openid)->find();
        if(empty($userGzh)){
            UserGzhModel::create($res);
        }else{
            UserGzhModel::where('openid',$openid)->update($res);
        }

        //發(fā)送模版信息-關(guān)注公眾號
        $template_id = "IXAHnaj1ZyOlWAoQu9CqMkfVQIzS0suHbfojhNiIDFQ";
        $strFirstVal = '您好,您已通xxxxx';
        $keyword1Val = $res['nickname'];
        $keyword2Val = getTimeData6(date("Y-m-d H:i:s"));
        $keyword3Val = 'aaa盒';
        $remark = '新人立贈6元優(yōu)惠,趕緊開啟您的點餐之旅吧!充值多多,優(yōu)惠多多!';
        //參數(shù)說明:$openid = 用戶openid   $template_id=模版id   $model=自定義類型     $strFirstVal=模版參數(shù).....
        $this->sendMsg2AttGZH($res['openid'],$template_id,$strFirstVal,$keyword1Val,$keyword2Val,$keyword3Val,$remark);
    }
    
    //此方法只需提前運行一次,所有關(guān)注公眾號的用戶信息
    //獲取所有關(guān)注公眾號的用戶信息,保存在數(shù)據(jù)庫中,只用做一次,把舊的數(shù)據(jù)保存即可,新的用戶關(guān)注時自動保存
    public function getGzhUser(){
        $token = $this->getWxAccessToken();
        $url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token;
        $res = $this->curl($url);
        foreach($res['data']['openid'] as $k=>$vo) {
//            p($vo);die;
            $this->getUserInfo($vo);
        }
    }

    /**
     * 獲取公眾號access_token
     */
    public function getWxAccessToken(){
        $appId = constant("APPIDGZH");
        $appSecret = constant("SECRETGZH");
        $access_token = Cache::get('wx_access_token:'.$appId);
        if($access_token){
            return $access_token;
        }else{
            //1.請求url地址
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret;
            $res = $this->curl($url);
            if(isset($res['errcode']) && $res['errcode']!=0){
                return ('獲取access_token出錯');
            }
            $access_token = $res['access_token'];

            Cache::set('wx_access_token:'.$appId,$access_token,5400);
            return $access_token;
        }
    }

  public function curl($url,$data = null){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        // 為保證第三方服務(wù)器與微信服務(wù)器之間數(shù)據(jù)傳輸?shù)陌踩?#xff0c;所有微信接口采用https方式調(diào)用,必須使用下面2行代碼打開ssl安全校驗。
        // 如果在部署過程中代碼在此處驗證失敗,請到 http://curl.haxx.se/ca/cacert.pem 下載新的證書判別文件。
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }

        $res = curl_exec($curl);
        curl_close($curl);
        $json_obj = json_decode($res,true);
        return $json_obj;
    }

通過以上的方法,就能把關(guān)注過公眾號的openid保存在數(shù)據(jù)庫中,當(dāng)用戶觸發(fā)小程任務(wù),需要發(fā)送模版信息時,就先通過小程序用戶信息,從數(shù)據(jù)庫中查詢到該用戶的公眾號openid,然后通過此openid發(fā)送模版信息即可,怎么發(fā)送模版信息,在這里就不在描敘。

多年程序開發(fā),2年開發(fā)微信小程序經(jīng)驗,已有數(shù)個穩(wěn)定上線運營項目,PHP后臺+小程序 全棧開發(fā)

兼職接單,歡迎咨詢 微信號:x1880161

相關(guān)案例查看更多