功能概述
掃碼登錄能力,指的是開發(fā)者可在移動應(yīng)用內(nèi)使用此能力,拉取二維碼,用戶使用微信客戶端掃描二維碼后可以登錄此移動應(yīng)用。此能力可被應(yīng)用在多設(shè)備登錄、智能硬件、電視盒子等場景。

scanlogin.gif
iOS掃碼授權(quán)獲得Code流程
步驟一:請求函數(shù)
#import <WechatAuthSDK.h>
/*! @brief 發(fā)送登錄請求,等待WechatAuthAPIDelegate回調(diào)
*
* @param appId 微信開發(fā)者ID
* @param nonceStr 一個隨機(jī)的盡量不重復(fù)的字符串,用來使得每次的signature不同
* @param timeStamp 時間戳
* @param scope 應(yīng)用授權(quán)作用域,擁有多個作用域用逗號(,)分隔
* @param signature 簽名
* @param schemeData 會在掃碼后拼在scheme后
* @return 成功返回YES,失敗返回NO
注:該實現(xiàn)只保證同時只有一個Auth在運(yùn)行,Auth未完成或未Stop再次調(diào)用Auth接口時會返回NO。
*/
- (BOOL)Auth:(NSString *)appId
nonceStr:(NSString *)nonceStr
timeStamp:(NSString*)timeStamp
scope:(NSString *)scope
signature:(NSString *)signature
schemeData:(NSString *)schemeData;
步驟二:監(jiān)聽二維碼回調(diào),回調(diào)的時候顯示二維碼
- (void)onAuthGotQrcode:(UIImage *)image; //得到二維碼
步驟三:用戶確認(rèn)登錄之后回調(diào)authCode
- (void)onAuthFinish:(int)errCode AuthCode:(NSString *)authCode; //成功登錄
步驟四:使用authCode獲取 access_token,unionid,openid
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
參數(shù)說明.
| 參數(shù) | 是否必須 | 說明 |
|---|---|---|
| appid | 是 | 應(yīng)用唯一標(biāo)識,在微信開放平臺提交應(yīng)用審核通過后獲得 |
| secret | 是 | 應(yīng)用密鑰AppSecret,在微信開放平臺提交應(yīng)用審核通過后獲得 |
| code | 是 | 填寫第三步獲取的authCode參數(shù) |
| grant_type | 是 | 填authorization_code |
返回說明
正確的返回:
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",
"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"
}