如果從微信公眾號通過菜單的響應類型view來打開網頁,首先這個網頁必須要有正常的域名,不允許是ip地址。如果這個網頁沒有備案或者說這個域名沒有備案,那么進入這個網頁之前微信會先彈出一個網頁提示我們是繼續訪問或者使用原網頁打開,這是非常煩人的,因為每次你用a標簽或者href來跳轉網頁時都會這樣。最簡單的辦法就是使用備案的域名綁定你的服務器上網頁地址。如果你實在覺得備案麻煩,那么你也可以這樣這樣做:
使用微信對網頁授權的辦法進入頁面。可以先了解https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842,微信網頁授權說明。我們只要看第一步:用戶同意授權,獲取code, 就好了。在確保微信公眾賬號擁有授權作用域(scope參數)的權限的前提下(服務號獲得高級接口后,默認擁有scope參數中的snsapi_base和snsapi_userinfo),引導關注者打開如下頁面:
參考鏈接(請在微信客戶端中打開此鏈接體驗):
scope為snsapi_base
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdap
ter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_bas
e&state=123#wechat_redirect
scope為snsapi_userinfo
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=
code&scope=snsapi_userinfo&state=STATE#wechat_redirect
上面的內容來自於微信公眾平台開發者文檔。
有必要說一下的是,scope為snsapi_base時獲取到的只是openid而已,而scope為snsapi_userinfo 獲取到用戶的詳細信息,這里我們只是為了給網頁授權避免彈出詢問網頁而已,所以我們選擇第一個。redirect_uri這個參數寫上自己要跳轉的地址,但是要注意的是填寫的url地址后面不能帶像&xx=xx這樣的參數,如果想要傳參可以同意放在url?xx=xx中也就是,比如:http://www.baidu.com/index/html?xx=這里填寫你要傳的數據集,數據集可以用多個字符串拼接起來。
本文主要是用網頁簽名來解決沒有備案的域名訪問的問題。具體的想要通過網頁簽名獲取用戶的詳細信息的方法請直接閱讀公眾平台開發文檔https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842。