微信扫码登录功能实现

原因:很简单,公司的账号登录需要用到微信扫码登录与QQ的登录功能,所以,在做好了微信的扫码登录之后,本人就写这篇微信扫码登录功能实现的教程

教程开始

需要用到的网站:

  1. https://open.weixin.qq.com/ 微信开放平台
  2. 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_typecode固定参数
scopesnsapi_login 固定参数, 这里有多个参数,可以用 ‘ , ’分隔,当前仅仅做微信登录,则填写snsapi_login这个参数
state可以不填,用于防止csrf攻击,你发送什么参数,服务器则返回什么参数给你

3. 用微信的扫一扫获取二维码中的code参数

参数说明
codecode参数
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_typeauthorization_code 固定参数

5. 获取ACCESS_TOKEN参数

参数说明
access_token接口调用凭证
expires_inaccess_token接口调用凭证超时时间
refresh_token用户刷新access_token
openid授权用户唯一标识
scopesnsapi_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

  • 3
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我无法找到关于禅道实现企业微信扫码登录功能的具体信息。但是,我可以为您提供一般的步骤和示例代码来实现这个功能。 要实现企业微信扫码登录功能,您可以按照以下步骤进行操作: 1. 在企业微信开发者平台上创建一个应用,并获取到应用的CorpID和Secret。 2. 在禅道系统中创建一个新的登录方式,选择企业微信扫码登录。 3. 在禅道系统中配置企业微信扫码登录的相关参数,包括CorpID、Secret等。 4. 在禅道系统中生成一个用于回调的URL,用于接收企业微信返回的授权码。 5. 在禅道系统中生成一个用于生成二维码的URL,用于展示给用户扫码登录。 6. 在禅道系统中编写处理回调的代码,用于获取企业微信返回的授权码,并根据授权码获取用户的详细信息。 7. 在禅道系统中根据用户的详细信息进行登录或注册操作。 以下是一个简单的PHP示例代码,用于生成企业微信扫码登录二维码: ```php <?php $corpId = 'your_corp_id'; $redirectUri = 'your_callback_url'; $authUrl = 'https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=' . $corpId . '&agentid=AGENTID&redirect_uri=' . urlencode($redirectUri) . '&state=STATE'; echo '<img src="' . $authUrl . '" alt="企业微信扫码登录">'; ?> ``` 请注意,上述示例代码中的`your_corp_id`和`your_callback_url`需要替换为您自己的CorpID和回调URL。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值