• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 網絡軟件教程 > 詳細頁面

        還是代碼好用,幾步就能判斷用戶是否已關注公眾號

        還是代碼好用,幾步就能判斷用戶是否已關注公眾號

        更新時間:2025-09-20 文章作者:未知 信息來源:網絡 閱讀次數:

        微信(WeChat)是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團隊打造 [2] 。微信支持跨通信運營商、跨操作系統平臺...
        微信(WeChat)是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團隊打造 [2] 。微信支持跨通信運營商、跨操作系統平臺通過網絡快速發送免費(需消耗少量網絡流量)語音短信、視頻、圖片和文字,同時,也可以使用通過共享流媒體內容的資料和基于位置的社交插件“搖一搖”、“漂流瓶”、“朋友圈”、”公眾平臺“、”語音記事本“等服務插件。
        現在的活動,很多都引導用戶關注公眾號,才能參與活動,如何判斷用戶是否已關注公眾號,其實很簡單,照著本文章,你就不會再犯愁了,本文的php代碼很詳細的解說了。

        一、微信公眾平臺配置

        1. 獲取appid, appsecret,添加白名單

        登錄微信公眾平臺,進入基本配置。開發中需要用到兩個參數,appId和appSecret(appSecret只展示一次,需保存下來,否則需要重置獲取)。
        獲取access_token時需要添加IP白名單。
        2176278715-5b1f75b8a6790_articlex.png

        點擊查看

        1745865697-5b1f74d242c17_articlex.png
        點擊修改
        3178119774-5b1f74ff033be_articlex.png

        2. 添加網頁授權

        進入公眾號設置=》功能設置=》網頁授權域名
        11.png點擊設置,input框中輸入授權回調頁的域名參考第1點(只能填寫一個),下載第3點中的txt文檔,上傳至服務器的根目錄。
        22.png

        二、php后端實現

        1. 獲取全局token

        此token有效期為2小時,可以暫存起來,過期后需要重新獲取。
        PS: 項目中必須走同一個接口,否則容易互刷導致過期。

        public static function getToken($appid, $appsecret){
            $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret;
            return Curl::callWebServer($url);
        }
        
        正確返回結果:
            {
                "access_token": "ACCESS_TOKEN",
                "expires_in": 7200
            }
            返回結果參數說明:
            參數              說明
            access_token      獲取到的全局token
            expires_in        憑證有效時間,單位:秒
            
        錯誤返回結果:
            {"errcode": 40013, "errmsg": "invalid appid"}
            返回結果參數說明:
            返回碼    說明
            -1       系統繁忙,此時請開發者稍候再試
            0        請求成功
            40001    AppSecret錯誤或者AppSecret不屬于這個公眾號,請開發者確認        AppSecret的正確性
            40002    請確保grant_type字段值為client_credential
            40164    調用接口的IP地址不在白名單中,請在接口IP白名單中進行設置。(小程序及小游戲調用不要求IP地址在白名單內。)

        2. 獲取用戶關聯公眾號的openid

        分兩步,先要獲取到用戶對公眾號的授權碼,然后拿這個碼去獲取臨時access_token和openid。

        獲取用戶授權碼

        public static function getCode($appId, $redirect_uri, $state=1, $scope='snsapi_base', $response_type='code'){
            $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appId.'&redirect_uri='.$redirect_uri.'&response_type='.$response_type.'&scope='.$scope.'&state='.$state.'#wechat_redirect';
            header('Location: '.$url, true, 301);
        }
        
        正確返回結果:
            返回code碼,并且跳轉回調頁面$redirect_uri
            
        錯誤返回結果:
            {"errcode": 10003, "errmsg": "redirect_uri域名與后臺配置不一致"}
            返回結果參數說明:
            返回碼    說明
            10003    redirect_uri域名與后臺配置不一致
            10004    此公眾號被封禁
            10005    此公眾號并沒有這些scope的權限
            10006    必須關注此測試號
            10009    操作太頻繁了,請稍后重試
            10010    scope不能為空
            10011    redirect_uri不能為空
            10012    appid不能為空
            10013    state不能為空
            10015    公眾號未授權第三方平臺,請檢查授權狀態
            10016    不支持微信開放平臺的Appid,請使用公眾號Appid

        通過getCode獲取到的code換取網頁授權的access_token和openid

        public static function getAccessToken($code, $appid, $appsecret, $grant_type='authorization_code'){
            $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type='.$grant_type.'';
            return Curl::callWebServer($url);
        }
           
        正確返回結果:
            { 
                "access_token": "ACCESS_TOKEN",
                "expires_in": 7200,
                "refresh_token": "REFRESH_TOKEN",
                "openid": "OPENID",
                "scope": "SCOPE"
            }
            返回參數說明
            參數            描述
            access_token    網頁授權接口調用憑證,注意:此access_token與基礎支持的access_token不同
            expires_in    access_token接口調用憑證超時時間,單位(秒)
            refresh_token    用戶刷新access_token
            openid    用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網頁,也會產生一個用戶和公眾號唯一的OpenID
            scope    用戶授權的作用域,使用逗號(,)分隔
            
        錯誤返回結果:
            {"errcode":40029, "errmsg":"invalid code"}

        3. 獲取用戶信息

        使用第2步中獲取的openId和第1步中獲取的token去獲取用戶信息

        public static function getUserInfo($openId, $token){
            $url = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$token.'&openid='.$openId.'&lang=zh_CN';
            return Curl::callWebServer($queryUrl, '', 'GET');
        }
        正確返回結果:
            {
                "subscribe": 1, 
                "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
                "nickname": "Band", 
                "sex": 1, 
                "language": "zh_CN", 
                "city": "廣州", 
                "province": "廣東", 
                "country": "中國", 
                "headimgurl":"http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
                "subscribe_time": 1382694957,
                "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
                "remark": "",
                "groupid": 0,
                "tagid_list":[128,2],
                "subscribe_scene": "ADD_SCENE_QR_CODE",
                "qr_scene": 98765,
                "qr_scene_str": ""
            }
            返回參數說明:
                參數            說明
                subscribe       用戶是否訂閱該公眾號標識,值為0時,代表此用戶沒有關注該公眾號,拉取不到其余信息。
                openid          用戶的標識,對當前公眾號唯一
                nickname        用戶的昵稱
                sex             用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知
                city            用戶所在城市
                country         用戶所在國家
                province        用戶所在省份
                language        用戶的語言,簡體中文為zh_CN
                headimgurl      用戶頭像,最后一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空。若用戶更換頭像,原有頭像URL將失效。
                subscribe_time  用戶關注時間,為時間戳。如果用戶曾多次關注,則取最后關注時間
                unionid         只有在用戶將公眾號綁定到微信開放平臺帳號后,才會出現該字段。
                remark          公眾號運營者對粉絲的備注,公眾號運營者可在微信公眾平臺用戶管理界面對粉絲添加備注
                groupid         用戶所在的分組ID(兼容舊的用戶分組接口)
                tagid_list      用戶被打上的標簽ID列表
                subscribe_scene 返回用戶關注的渠道來源,ADD_SCENE_SEARCH 公眾號搜索,ADD_SCENE_ACCOUNT_MIGRATION 公眾號遷移,ADD_SCENE_PROFILE_CARD 名片分享,ADD_SCENE_QR_CODE 掃描二維碼,ADD_SCENEPROFILE LINK 圖文頁內名稱點擊,ADD_SCENE_PROFILE_ITEM 圖文頁右上角菜單,ADD_SCENE_PAID 支付后關注,ADD_SCENE_OTHERS 其他
                qr_scene        二維碼掃碼場景(開發者自定義)
                qr_scene_str    二維碼掃碼場景描述(開發者自定義)
        
        錯誤結果:
            {"errcode":40013,"errmsg":"invalid appid"}

        三、使用

        判斷是否關注過,此處為入口:

        public function isConcern($appId, $appSecret) {
            $param = ''; // 如果有參數
            $this->getCode($appId, U('callback', 'param='.$param), 1 ,'snsapi_base');
        }

        授權后回調

        public function callback(){
            $isconcern = 0;
            $code = $this->_get('code');
            $param = $this->_get('param');
            $appId = C('appId'); // config中配置
            $appSecret = C('appSecret');
            $accessTokenInfo = $this->getAccessToken($code, $appId, $appSecret);
            $openId = $accessTokenInfo['openid'];
            $accessToken = $accessTokenInfo['access_token'];
            $token = $this->getToken($appId, $appSecret);
            $userInfo = $this->getUserInfo($openId, $token['access_token']);
            if($userInfo['subscribe'] == 1){
                $this->assign('userInfo', $userInfo);
                $isconcern = 1; // 已關注
            } else {
                $isconcern = 0; // 未關注
            }
            $this->assign('openid', $openId);
            $this->display('page');
        }

        此時頁面上可以獲取到userInfo和isconcern,isconcern為1時表示已關注公眾號,否則未關注。

        相關推薦:

        微信公眾號開發 微信公眾號判斷用戶是否已關注php代碼解析

        PHP判斷字符類型 php判斷用戶是否關注微信公眾號

        視頻:公眾號的關注與取消操作-0基礎微信開發入門

        以上就是還是代碼好用,幾步就能判斷用戶是否已關注公眾號的詳細內容,更多請關注php中文網其它相關文章!


        微信提供公眾平臺、朋友圈、消息推送等功能,用戶可以通過“搖一搖”、“搜索號碼”、“附近的人”、掃二維碼方式添加好友和關注公眾平臺,同時微信將內容分享給好友以及將用戶看到的精彩內容分享到微信朋友圈。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲国产精品SSS在线观看AV| 亚洲最大AV网站在线观看| 亚洲精品午夜视频| 久久免费看少妇高潮V片特黄| 亚洲免费观看视频| 久艹视频在线免费观看| 亚洲人成电影亚洲人成9999网| 免费播放在线日本感人片| 亚洲男人天堂2017| **俄罗斯毛片免费| 久久久久se色偷偷亚洲精品av| 最新免费jlzzjlzz在线播放| 亚洲综合小说另类图片动图 | 成人超污免费网站在线看| 亚洲人xxx日本人18| 四虎成人免费观看在线网址 | 久久久受www免费人成| 久久久无码精品亚洲日韩蜜桃 | 黄色毛片免费在线观看| 久久国产成人精品国产成人亚洲| 三级黄色在线免费观看| 亚洲人成在线播放网站岛国| 四虎在线最新永久免费| 亚洲av无码一区二区三区在线播放| 四虎1515hm免费国产| 免费久久人人爽人人爽av| 亚洲成人在线免费观看| 国产男女性潮高清免费网站| 亚洲一级片免费看| 亚洲网址在线观看| 国产乱色精品成人免费视频| 最新久久免费视频| 亚洲最大成人网色香蕉| 亚洲国产aⅴ综合网| 在线美女免费观看网站h| 亚洲av无一区二区三区| 亚洲精品二区国产综合野狼 | 亚洲三级在线免费观看| 在线观看国产一区亚洲bd| 国产亚洲成av片在线观看| 成人啪精品视频免费网站|