第三方APP集成微信登陸功能詳解


授權后接口調用(UnionID)

通過code獲取access_token
接口說明

通過code獲取access_token的接口。

請求說明

http請求方式: GET

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
返回說明

正確的返回:


"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", 
"scope":"SCOPE" 
}

參數 說明
access_token 接口調用憑證
expires_in access_token接口調用憑證超時時間,單位(秒)
refresh_token 用戶刷新access_token
openid 授權用戶唯一標識
scope 用戶授權的作用域,使用逗號(,)分隔

錯誤返回樣例:

{
"errcode":40029,"errmsg":"invalid code"
}

刷新或續期access_token使用
接口說明

access_token是調用授權關系接口的調用憑證,由於access_token有效期(目前為2個小時)較短,當access_token超時后,可以使用refresh_token進行刷新,access_token刷新結果有兩種:

1.若access_token已超時,那么進行refresh_token會獲取一個新的access_token,新的超時時間;

2.若access_token未超時,那么進行refresh_token不會改變access_token,但超時時間會刷新,相當於續期access_token。

refresh_token擁有較長的有效期(30天),當refresh_token失效的后,需要用戶重新授權,所以,請開發者在refresh_token即將過期時(如第29天時),進行定時的自動刷新並保存好它。

請求方法

使用/sns/oauth2/access_token接口獲取到的refresh_token進行以下接口調用:

http請求方式: GET

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參數
返回說明

正確的返回:


"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN", 
"openid":"OPENID", 
"scope":"SCOPE" 
}

參數 說明
access_token 接口調用憑證
expires_in access_token接口調用憑證超時時間,單位(秒)
refresh_token 用戶刷新access_token
openid 授權用戶唯一標識
scope 用戶授權的作用域,使用逗號(,)分隔

錯誤返回樣例:

{
"errcode":40030,"errmsg":"invalid refresh_token"
}

 

接口說明

檢驗授權憑證(access_token)是否有效

請求說明

http請求方式: GET

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"
}

獲取用戶個人信息(UnionID機制)
接口說明

此接口用於獲取用戶個人信息。開發者可通過OpenID來獲取用戶基本信息。特別需要注意的是,如果開發者擁有多個移動應用、網站應用和公眾帳號,可通過獲取用戶基本信息中的unionid來區分用戶的唯一性,因為只要是同一個微信開放平台帳號下的移動應用、網站應用和公眾帳號,用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平台下的不同應用,unionid是相同的。請注意,在用戶修改微信頭像后,舊的微信頭像URL將會失效,因此開發者應該自己在獲取用戶信息后,將頭像圖片保存下來,避免微信頭像URL失效后的異常情況。

請求說明

http請求方式: GET

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

參數說明
參數 是否必須 說明
access_token 調用憑證
openid 普通用戶的標識,對當前開發者帳號唯一
  lang   否 國家地區語言版本,zh_CN 簡體,zh_TW 繁體,en 英語,默認為zh-CN
返回說明

正確的Json返回結果:


"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege":[
"PRIVILEGE1", 
"PRIVILEGE2"
],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"

}

參數 說明
openid 普通用戶的標識,對當前開發者帳號唯一
nickname 普通用戶昵稱
sex 普通用戶性別,1為男性,2為女性
province 普通用戶個人資料填寫的省份
city 普通用戶個人資料填寫的城市
country 國家,如中國為CN
headimgurl 用戶頭像,最后一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空
privilege 用戶特權信息,json數組,如微信沃卡用戶為(chinaunicom)
unionid 用戶統一標識。針對一個微信開放平台帳號下的應用,同一用戶的unionid是唯一的。

建議:

開發者最好保存unionID信息,以便以后在不同應用之間進行用戶信息互通。

錯誤的Json返回示例:


"errcode":40003,"errmsg":"invalid openid"
}

調用頻率限制
接口名 頻率限制
通過code換取access_token 1萬/分鍾
刷新access_token 5萬/分鍾
獲取用戶基本信息 5萬/分鍾

 


免責聲明!

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



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