1. 程式人生 > >微信公眾號登陸微商城

微信公眾號登陸微商城

Oauth2.0

微信網頁授權  首先要獲取appID和appsecret

 

後臺設定授權域名 支援IP

 

後臺設定域名或者IP時不要加http://或者https://   直接填寫域名即可 如果使用ip地址除錯 直接輸入IP即可(211.32.122.77) 如上圖

 

業務流程

1.在開發者開發的系統上引導使用者點選微信登入,點選微信登入時會訪問類似如下url

https://open.weixin.qq.com/connect/oauth2/authorize?appid=申請到的APPID&redirect_uri=

填寫使用者同意授權後跳轉的地址,域名或者ip前需要加http://或者https://&response_type=code&scope=snsapi_userinfo(如果填寫snsapi_base則通過access_token拉去使用者資訊時會報錯,無法獲取到使用者的頭像、暱稱等資訊)&state=STATE#wechat_redirect

測試時不能使用微信PC版,如果遇到回撥時提示 ****點選繼續訪問  此時不要點選 繼續訪問 按鈕 可以點選 底部 訪問原網頁

解釋:回撥後code只能使用一次,如果使用某code請求了微信的介面,再次請求時會提示code被使用過,無法獲取到access_token

 

2.使用者在微信內訪問上述url地址時會提醒使用者授權(彈出授權確認框,只有scope為snsapi_userinfo時才會彈出授權確認框),使用者確認授權後悔跳轉到步驟1中的redirect_uri引數對應的url,並且會在地址中傳入code引數,此時會請求開發者設定的url 並執行對應的程式

 

3.在redirect_uri對應的url中需要獲取code,加上appsecret 請求微信的介面 請求地址如下

https://api.weixin.qq.com/sns/oauth2/access_token?appid=申請到的APPID&secret=

申請到的appsecret&code=get傳遞的code引數&grant_type=authorization_code

請求時可以使用file_get_contents 但是不推薦,推薦使用curl的方式抓取,並且設定超時時間 防止伺服器有過度的資源消耗

如果資料正常會獲取到access_token和openid(注:此請求只能請求一次,因為code只能使用一次)

 

4.通過access_token抓取使用者資訊

請求https://api.weixin.qq.com/sns/userinfo?access_token=步驟3中的access_token&openid=步驟3中的openid&lang=zh_CN

openid是微信使用者的唯一標識,和appid繫結