Laravel/php开发网站微信扫码登录

Song93 次浏览0个评论2021年08月06日
Laravel/php开发网站微信扫码登录完整教程,保姆式教程

一、申请微信网站登录

前往微信微信开发平台申请网站登录;

申请微信网站登录

记得授权域名填写基础网址,否则可能出现redirect_uri 参数错误

二、编写前端代码

参考官方文档网站应用微信登录开发指南 ,我们编写前端代码。


<!DOCTYPE html>
 <html>
 <head>
    <meta charset="UTF-8"/>
    <title>微信登录页面</title>
    <style>
        body{
            background-color: rgb(51, 51, 51);
        }
    </style>
    <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
 </head>
 <body>
    <div id="obj" style="text-align: center">

    </div>
    <script type="text/javascript">
        var obj = new WxLogin({
            self_redirect:true,
            id:"obj",
            appid: "你的APPID",
            scope: "snsapi_login",
            redirect_uri: "URLEncode(回调网址)",
            state: "",
            style: "white",
            href: ""
        });
    </script>
</body>
</html>

解析Code获取基本信息

手机扫描二维码以后会访问我们之前设置的回调地址,可以得到请求tokencode,拿到token以后就可以通过token去获取用户的基本信息:

1、通过code获取access_token

通过code获取access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
  • appid 是应用唯一标识,在微信开放平台提交应用审核通过后获得
  • secret 是应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
  • code 是填写第一步获取的code参数
  • grant_type 填authorization_code

2、授权后获取用户信息

参考官方文档 授权后接口调用(UnionID)

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
  • ccess_token 是 调用凭证
  • openid 是 普通用户的标识,对当前开发者帐号唯一
  • lang 否 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为en
{
"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "https://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege":[
"PRIVILEGE1",
"PRIVILEGE2"
],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"

}

常见错误

1、redirect_uri 参数错误

redirect_uri 参数错误

  • 可能你在认证配置页填写的不是基础域名
  • redirect_uri必须URLEncode转换
请登录后评论
    当前暂无评价,快来发表您的观点吧...
    公告提示
    本站主要用于学习交流Laravel技术,分享Laravel优秀案例;同时非常欢迎大家投稿哦!如果有招聘信息也可以联系我我帮忙发布哦!