首页 > 技术分享 > 原生PHP
收藏

PHP实现第三方微信登录,PHP获取微信用户的基本信息

11/20 17:53
大潇博客 原创文章,转载请标明出处

简述微信登录流程:

微信登录可以获取用户的openid、昵称、头像、性别等等

微信登录只能用认证过的服务号,有了认证的服务号后,在微信公众平台中,拿到公众号的appid和appsecret,绑定“授权回调页面域名”,准备工作结束


流程:微信登录需要做重定向做验证,下面的三个步骤中,第一步会重定向跳转,第二、第三步每个步骤都会请求微信接口


1、首先访问自己定义的方法,此方法中拼接获取微信code需要的参数和获取code后跳转的redirect_uri,

例如:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=认证服务号的appid&redirect_uri=微信重定向的地址&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect

在上面的链接中添加appid和redirect_uri即可,redirect_uri可以是非静态路径

此步需要重定向跳转两次,第一次跳转到微信接口中,第二次微信(带code)跳转回用户接口中


2、微信重定向到redirect_uri,在此路径的方法中,$_GET到微信传来的code,拼接到下面的api中:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=认证服务号的appid&secret=认证服务号的appsecret&code=接收到的code&grant_type=authorization_code

请求上面的微信接口,拿到数据,json_decode后会得到access_token和用户openid,


3、把拿到的access_token和openid拼接到下面的api中:

https://api.weixin.qq.com/sns/userinfo?access_token=微信返回的access_token&openid=微信返回的openid&lang=zh_CN

请求上面的微信接口,拿到数据,json_decode后会得到用户在微信中的基本信息


代码为:

第一个方法(页面)中:

$appid = "";

$redirect_uri = "http://xxx.xxx.com/wx_login.php";

$api = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";

header("Location:$api");


微信重定向的方法(页面)中:

wx_login.png


Demo下载:

打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311