1. 程式人生 > >h5 微信授權

h5 微信授權

今天準備詳細講解h5頁面嵌入微信公眾號中 然後獲取使用者的openid

一:微信授權域名

 1.首先去登入微信開發者平臺 公眾號設定-》功能設定 “網頁授權域名”去設定 (請注意,①:這裡填寫的是域名(是一個字串),而不是URL,因此請勿加 http:// 等協議頭 ②:配置www.qq.com 域名 那http://www.qq.com/land.html或者  http://www.qq.com/login.html都可以進行授權)

2.將開發者ID appId記錄下來 並將下面MP_開頭的檔案下載下來 放在域名的根目錄下面。

二:獲取code

1.window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

"

引數具體參見以上 。

三.使用者同意授權後

 使用者授權後會跳到你redirect_uri設定的url 後面加上  redirect_uri/?code=CODE&state=STATE 這裡要擷取url帶的code並準備調下一個介面

四:獲取openid

  因為我的scope設定的是snsapi_base 我只要拿到openid就好了 ,所以到這一步就截止了

  這一步微信提供了https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

引數具體參見以上

  但是會有一個跨越問題,所以這一步的介面需要後臺去調,前端把引數傳給後臺 ,後臺返回資料就可以解決跨越問題

注意:之前我在寫的時候 把這兩個介面呼叫全部放在一個頁面 然後會導致微信不停的授權 其實是錯的。然後我就把第一個介面呼叫放在一個loading頁面 設定redirect_uri是真正需要openid的頁面,也就是loading只是用來跳轉用的,當然loading頁面也是在之前設定的域名下面。

  還有一個問題 就是微信的pc瀏覽器是不解析es6語法 只能識別es5語法 

  以上內容具體參見微信開發者文件  https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842