由于微信开放平台登录和微信公众平台登录获取到用户openid两个场景是无法同时使用,所以,我做了微信开放平台登录和微信公众平台登录,以下是具体实现步骤:
一、微信开放平台登录(http://open.weixin.qq.com)
1、创建网页应用
2、获取登录权限
必须获取“使用微信登录APP或者网页” 权限。AppID,AppSecret 就是下边接口需要登录使用到的。
3、应用信息配置
授权回调域:必须为填写的域名须通过ICP备案的验证。(即,登录后回调的域名)
4、具体实现代码
4.1 网页打开地址
https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=redirect_uri&response_type=code&scope=snsapi_login&state=123#wechat_redirect
参数说明:
appid: 第二步提到的appid
redirect_uri:登录后回掉地址(请使用urlEncode对链接进行处理)
scope:
snsapi_login (获取基本信息,需要的openid就够了)
4.2 微信回调域名处理
地址:https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid&secret=secret&code=code&grant_type=authorization_code
参数说明:
appid: 第二步提到的appid
secret: 第二步提到的secret
code:微信回调时候会传会该参数,直接使用就可以了
返回内容(json):
{ "access_token": "",
"expires_in": 7200,
"refresh_token": "",
"openid": "",
"scope": "",
"unionid": ""
}
access_token:获取用户详细信息会使用到的
refresh_token:刷新token,因为access_token会有expires_in的过期时效,可以使用刷新
刷新地址:https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
openid:登录用户openid
unionid:unionid
4.3 获取登录用户详细信息
地址:http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
参数说明:
access_token: 上一步获取的access_token,
openid : 用户的opneid,
返回内容就会有一些想要的内容,头像地址,性别,昵称
以上所有代码都是经过测试,并且通过的。放心使用。转载请注明出处。