微信登陆之手机版

移动应用微信登陆是基于OAuth2.0协议标准构建的微信OAuth2.0受权登陆系统。
在进行微信OAuth2.0受权登陆接入以前,在微信开放平台注册开发者账号,并拥有一个已审核经过的移动应用,并得到相应的AppID和AppSecret,申请微信登陆且经过审核后,可开始接入流程。
目前移动应用上微信登陆只提供原生的登陆方式,须要用户安装微信客户端才能配合使用。
微信登陆的流程讲解以下。
开发者须要配合使用微信开放平台提供的SDK进行受权登陆请求接入。正确接入SDK后并拥有相关受权域权限后,开发者移动应用会在终端本地拉起微信应用进行受权登陆,微信用户确认后微信将拉起开发者移动应用,并带上受权临时票据(code)。
iOS平台应用受权登陆接入代码示例:api

-(void)sendAuthRequest
{ 
    //构造SendAuthReq结构体
    SendAuthReq* req =[[[SendAuthReq alloc ] init ] autorelease ];
    req.scope = @"snsapi_userinfo" ; req.state = @"123" ; //第三方向微信终端发送一个SendAuthReq消息结构 [WXApi sendReq:req]; } 

Android平台应用受权登陆接入代码示例:微信

{ 
    // send oauth request Final SendAuth.Req req = new SendAuth.Req(); req.scope = "snsapi_userinfo"; req.state = "wechat_sdk_demo_test"; api.sendReq(req); } 

上述数据的参数说明如表22-1所示。
app

表22-1移动应用微信登陆参数说明
微信客户端会被拉起,跳转至微信登陆受权界面,如图22-2所示。
微信支付

图22-2移动应用微信登陆
当用户点击确认登陆时,SDK经过SendAuth的Resp返回ErrCode和code等参数给调用方。相关参数的说明如表22-2所示。
url

表22-2微信支付登陆返回参数
获取第一步的code后,请求接口获取access_token,接口地址为:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
上述数据的参数说明如表22-3所示。
spa

表22-3获取access_token接口参数说明
正确建立时,返回的数据示例以下。code

{
    "access_token": "OezXcEiiBSKSxW0eoylIeOZ0dfxvb93UyrFdwznvwUv3JkVNVV1yFvQQa3IfuyMi4iZGDsAfe81sCaUXxyKrI-5XgCvhAS02eAC4MF2fJFl80Y9s-0h1EsuBmIVKgu0GnKhxCQ0M8G-gkQAJpzLzmQ", "expires_in": 7200, "refresh_token": "OezXcEiiBSKSxW0eoylIeOZ0dfxvb93UyrFdwznvwUv3JkVNVV1yFvQQa3IfuyMiH7dCabGFyMRtZHnHPHuEK78cf1eISYJ4y453T8pDa2tFAIJu8bFeLMBpeFSv9dgnGrK-ZfRxHzhq7IW4qevEMQ", "openid": "oH9d2v7NmDhsFzICG63UPSIOgUcY", "scope": "snsapi_userinfo", "unionid": "o4wcnwx0BVC4F_hSl5qCd5rC4Jps" } 

上述数据的参数说明如表22-4所示。
regexp

表22-4获取access_token接口返回参数说明
最后,能够经过access token和OpenID获取用户的基本信息。接口地址以下:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
上述数据的参数说明如表22-5所示。
blog

表22-5获取用户基本信息接口参数说明
正确建立时,返回的数据示例以下。token

{
    "openid":"oH9d2v7NmDhsFzICG63UPSIOgUcY", "nickname":"方倍", "sex":0, "language":"zh_CN", "city":"", "province":"", "country":"CN", "headimgurl":"http://wx.qlogo.cn/mmopen/pburdzLK7PUTcFw3ozK52Gravkznno51DSjnqnzsG6WzJLUOtadGBYYSVqh5YDicdawxrD6hHoR96OcyyDWAEgA/0", "privilege":[ ], "unionid":"o4wcnwx0BVC4F_hSl5qCd5rC4Jps" } 

上述数据的参数说明如表22-6所示。

表22-6获取用户基本信息接口返回参数说明至此,移动应用就完成了微信用户的登陆过程,并得到了用户的我的基本信息。

相关文章
相关标签/搜索