概述
原因:很简单,公司的账号登录需要用到微信扫码登录与QQ的登录功能,所以,在做好了微信的扫码登录之后,本人就写这篇微信扫码登录功能实现的教程
教程开始
需要用到的网站:
- https://open.weixin.qq.com/ 微信开放平台
- https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=a655e356d87d4d330ed5cbaf1324389741826089&lang=zh_CN 微信开放平台文档
准备工作:
1. 首先当然登录这个微信开放平台啦,不然怎么做扫码登录的功能
2. 新建一个应用
3. 新建完应用后是这样子的
4. 进行开发者认证,1年300RMB,之前开发的时候没有进行开发者认证,微信那边一直说我有错误,后面又google又百度的,直到认证后,才正常开发
5. 设置回调地址,这里的地址相当于回调域名,可以不用详细到访问的方法内(例:http://www.baidu.com)
准备工作完成,正式开发
1. 写一个获取服务器返回数据的自定义函数或者使用PHP的 file_get_content 函数
这里的自定义函数的使用CURL
PHP CURL
//php curl(GET)请求
public function curlGet($url){
if(empty($url)){
return false;
}
$output = '';
$ch = curl_init();
$str =$url;
curl_setopt($ch, CURLOPT_URL, $str);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec($ch);
return $output;
}
2. 浏览器打开网址,这个网址是一张二维码图片,二维码的信息则是你创建的应用信息
网址:https://open.weixin.qq.com/connect/qrconnect?appid=appid&redirect_uri=redirect_uri&response_type=code&scope=snsapi_login&state=state
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 应用中的APPID |
redirect_uri | 是 | 这是回调地址,先要在授权回调域设置回调的域名地址,然后这里填写的是回调域名下需要访问的方法(这里需要使用编码 URL 字符串函数urlencode()) |
response_type | 是 | code固定参数 |
scope | 是 | snsapi_login 固定参数, 这里有多个参数,可以用 ‘ , ’分隔,当前仅仅做微信登录,则填写snsapi_login这个参数 |
state | 是 | 可以不填,用于防止csrf攻击,你发送什么参数,服务器则返回什么参数给你 |
3. 用微信的扫一扫获取二维码中的code参数
参数 | 说明 |
---|---|
code | code参数 |
state | 用于防止csrf攻击,你发送什么参数,服务器相应返回什么参数给你 |
4. 发送ACCESS_TOKEN获取请求
使用 curlGet() 自定义函数访问以下网址
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 应用中的APPID |
secret | 是 | 应用中的AppSecret |
code | 是 | 上一步所获得的code参数 |
grant_type | 是 | authorization_code 固定参数 |
5. 获取ACCESS_TOKEN参数
参数 | 说明 |
---|---|
access_token | 接口调用凭证 |
expires_in | access_token接口调用凭证超时时间 |
refresh_token | 用户刷新access_token |
openid | 授权用户唯一标识 |
scope | snsapi_login 固定参数,用户授权的作用域,使用逗号(,)分隔 |
unionid | 已获得该用户的userinfo授权时,才会出现该字段。 |
6. 发送获取OPENID请求
使用 curlGet() 自定义函数访问以下网址
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 接口调用凭证 |
openid | 是 | 授权用户唯一标识 |
7. 获取用户信息
参数 | 说明 |
---|---|
openid | 授权用户唯一标识 |
nickname | 微信用户呢称 |
sex | 性别 |
province | 省份 |
city | 城市 |
country | 国家 |
headimgurl | 微信头像地址 最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空 |
privilege | 用户特权信息,json数组 |
unionid | 用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的 |
结语
到这里你已经成功的获取到你微信的对外信息了,你可以根据公司的开发需求开发出你所需要的微信扫码登录功能
转载于:https://my.oschina.net/u/3554366/blog/1506955
最后
以上就是不安野狼为你收集整理的微信扫码登录功能实现的全部内容,希望文章能够帮你解决微信扫码登录功能实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复