微信自定義菜單view類型獲取openid訪問網頁


用戶點擊view類型按鈕后,微信客戶端將會打開開發者在按鈕中填寫的url值 (即網頁鏈接),達到打開網頁的目的,但是view不能獲取用戶的openid,需與網頁授權獲取用戶基本信息接口結合使用,獲得用戶的登入個人信息。

工具/原料

 
  • 微信公眾平台

  • 微信公眾平台認證-高級接口

方法/步驟

 
  1.  

    對比view和click菜單

    {        

     "type":"click",      

     "name":"今日歌曲",      

     "key":"V1001_TODAY_MUSIC" 

     },  

    {      

         "type":"view",     

         "name":"歌手簡介",     

         "url":"http://www.baidu.com/" 

     } 

    從上面可以看出,click類型的菜單有key屬性,而view類型的菜單沒有key屬性,與之對應的是url屬性。key值是用於判斷用戶點擊了哪個click類型的菜單項。而view類型的菜單沒有key屬性,無法在公眾賬號后台判斷是否有用戶點擊了view類型的菜單項,也就沒辦法知道哪個用戶點擊了view類型的菜單項,好在騰訊開放了高級接口,運用OAuth2.0網頁授權接口可以獲取openid,下面將介紹網頁授權獲取用戶基本信息接口。

     

  2.  

    網頁授權獲取用戶基本信息

     

    服務號獲得高級接口后,默認帶有scope參數中的snsapi_base和snsapi_userinfo。這里使用snsapi_base獲取openid,把上面的url換成

     

     

     

     

     

     

    微信自定義菜單view類型獲取openid訪問網頁
  3.  

    配置授權回調頁面域名

     

    進入微信公眾平台后台后,依次進入 服務-我的服務,找到OAuth2.0網頁授權,

     

    微信自定義菜單view類型獲取openid訪問網頁
  4.  

    點擊右側的修改

    授權回調域名配置規范為全域名並且不帶http。

    這里我們填寫上面的ip地址,192.168.1.1

     

    微信自定義菜單view類型獲取openid訪問網頁
    微信自定義菜單view類型獲取openid訪問網頁
  5.  

    用戶授權並獲取code,把菜單更換成

    {      

         "type":"view",     

         "name":"歌手簡介",     

         "url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxcd983566d32442bc&redirect_uri=http://192.168.1.1/weixin/weixin.do?action=viewtest&response_type=code&scope=snsapi_base&state=1#wechat_redirect" 

     } 

    菜單跳轉的action

     String code = request.getParameter("code");//我們要的code

     

    code說明 : code作為換取access_token的票據,每次用戶授權帶上的code將不一樣,code只能使用一次,5分鍾未被使用自動過期。

     

    微信自定義菜單view類型獲取openid訪問網頁
  6.  

    使用code換取access_token

    網頁授權的作用域為snsapi_base,本步驟中獲取到網頁授權access_token的同時,也獲取到了openid,snsapi_base式的網頁授權流程即到此為止。

    換取網頁授權access_token頁面的構造方式:

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

     

    微信自定義菜單view類型獲取openid訪問網頁
  7.  

    正確時返回json數據

    {   "access_token":"ACCESS_TOKEN",   

        "expires_in":7200,  

        "refresh_token":"REFRESH_TOKEN",   

        "openid":"OPENID",  

        "scope":"SCOPE" 

    }

    到此我們成功獲取到了用戶的openid

     

    微信自定義菜單view類型獲取openid訪問網頁
  8.  


免責聲明!

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



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