- 微信提供給開發者的測試賬號平台
- 微信網頁開發文檔
- 微信JS接口簽名校驗工具
- 參數
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
-
- code
- code作為換取access_token的票據,每次用戶授權帶上的code將不一樣,code只能使用一次,5分鍾未使用自動過期
- 存在:已授權
- 不存在:未授權,則跳轉微信授權鏈接,
- appid(必填)
- 公眾號的唯一標識
- redirect_url(必填)
- 授權成功后跳轉的地址,微信會跳轉到改鏈接,並通過?的形式拼接code,請使用urlEncode對鏈接進行處理
- response_type(必填)
- 返回類型,請填寫code
- scope(必填)
- 應用授權作用域
- 靜默授權(scope=snsapi_base):不彈出授權頁面,直接跳轉,只能獲取用戶openid
- 非靜默授權(scope=snsapi_userinfo):彈出授權頁面,可通過openid拿到昵稱、性別、所在地,即使在未關注的情況下,只要用戶授權,也能獲取其信息。
- 應用授權作用域
- state
- 重定向后會帶上state參數,開發者可以填寫a-zA-Z0-9的參數值,最多128字節
- #wechat_redirect(必填)
- 無論直接打開還是做頁面302重定向時,必須帶此參數
- 提示
-
若提示“該鏈接無法訪問”,請檢查參數是否填寫錯誤,是否擁有scope參數對應的授權作用域權限。
-
由於授權操作安全等級較高,所以在發起授權請求時,微信會對授權鏈接做正則強匹配校驗,如果鏈接的參數順序不對,授權頁面將無法正常訪問。
-
跳轉回調redirect_uri,應當使用https鏈接來確保授權code的安全性。
-
- code
- 步驟
- 用戶同意授權,獲取code
- 通過code換區網頁授權access_token
- 獲取access_token
-
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
- 參數
- appid(必填,同上)
- secret(必填)
- 公眾號的appsecret
- code(必填)
- 填寫第一步獲取的code參數
- grant_type(必填)
- 填寫為authorization_code
-
- 正確返回的json數據包
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
- 參數
- access_toke
- 網頁授權接口調用憑證:此access_token與基礎支持的access_token不同
- expires_in
- 調用憑證超時時間,單位(秒)
- refresh_token
- 用戶刷新access_token
- openid
- 用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的頁面,也會產生一個用戶和公眾號唯一的OpenId
- scope
- 用戶授權的作用於,使用逗號(,)分隔
- access_toke
- 參數
- 錯誤返回的json數據包
{"errcode":40029,"errmsg":"invalid code"}
- 獲取access_token
- 刷新access_token(如果需要)
- 較短有效期,當超時后,可以使用refresh_token進行刷新,refresh_token有效期為30天,當refresh_token失效后,需要用戶重新授權
- 請求
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
-
-
-
- 參數
- appid(必填,同上)
- grant_type(必填)
- 填寫為refresh_token
- refresh_token(必填)
- 填寫通過access_token獲取到的refresh_token參數
- 正確返回的json數據包
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
- 參數(參數介紹,同上)
- 錯誤返回的json數據包
{"errcode":40029,"errmsg":"invalid code"}
- 參數
-
-
-
- 拉去用戶信息(需要scope為snsapi_userinfo)
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
-
-
- 參數
- aceess_token(同上)
- openid(同上)
- lang
- 返回國家地區語言版本,zh_CN簡體,zh_TW繁體,en英語
- 正確返回的json數據包
{ "openid":" OPENID", " nickname": NICKNAME, "sex":"1", "province":"PROVINCE", "city":"CITY", "country":"COUNTRY", "headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", "privilege":[ "PRIVILEGE1" "PRIVILEGE2" ], "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }
- 參數
- openid(同上)
- nickname
- 用戶昵稱
- sex
- 用戶性別,1=>男,2=>女,0=>未知
- province
- 用戶個人資料填寫的省份
- city
- 普通用戶個人資料填寫的城市
- country
- 國家,如中國為CN
- headimgurl
- 用戶頭像
- privilege
- 用戶特權信息
- unionid
- 只有在用戶將公眾號綁定到微信開放平台后,才會出現該字段
- 參數
- 錯誤返回的json數據包
{"errcode":40003,"errmsg":" invalid openid "}
- 參數
-
- 附:檢驗授權憑證(access_token)是否有效
https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID
-
- 參數
- access_token(同上)
- openid(同上)
- 正確返回的json數據包
{ "errcode":0,"errmsg":"ok"}
- 錯誤返回的json數據包
{ "errcode":40003,"errmsg":"invalid openid"}
- 參數