TP之移动端微信授权登录的实现方法

  介绍

这篇文章主要介绍了TP之移动端微信授权登录的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强> 1,网页端微信登录必须在微信中实现。

和PC端扫码登录不同,移动端网页无法使用普通浏览器微信授权登录,必须在微信中使用,这是必须要明确的。

<强> 2,准备工作。

我们需要有一个已经认证的微信服务号,这是必备条件。我们打开登录微信公众平台,找到“接口权限”。

 TP之移动端微信授权登录的实现方法

我们已经有了获取网页用户信息的权限,如果服务号没有认证的话,这个权限是没有的。

之后点击修改,配置需要微信授权的域名。注意授权需要写www.abc.com,不能带http、错误写法:http://www.abc.com。

<强> 3,微信授权获取微信用户信息

准备工作做好后,我们就可以按照文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html来一步步进行了。

第一步:用户同意授权、获取代码。

public  function  wechat_login () {      ,,,,,,,,,,,$ appid=& # 39; wxff5b68b041a4fb11& # 39;;//公众号基本配置中获取   ,,,,,,,,,,,$ redirect_uri=& # 39; http://a.xx.cn/mobile/user/weixin_m.html& # 39;;//用户授权后跳转处理的地址   ,,,,,,,,,,,$ url=癶ttps://open.weixin.qq.com/connect/oauth3/authorize?appid="。美元appid干净,redirect_uri=啊C涝猺edirect_uri干净,response_type=code&范围=snsapi_userinfo&状态=# wechat_redirect";   ,,,,,,,,,,,return 重定向($ url);   ,,,,,,,}

我们引导用户去访问wechat_login这个方法,这里需要准备两个参数,appid在公众号基本配置中获取,redirect_uri是微信用户授权后的处理地址回调,这里一定要写http绝对地址,外网能够访问的地址。

第二步:通过代码换取网页授权access_token

我们建立第一步的回调方法weixin_m。我们先打印代码,检测我们是否能够获取,这也是程序调试的常用步骤,这步骤没问题再进行下面的。

public  function  weixin_m () {   ,,,,,,,,,,,代码=输入美元(& # 39;get.code& # 39;);   ,,,,,,,,,,,停止($代码);   }

 TP之移动端微信授权登录的实现方法

接下来我们再获取access_token。

public  function  weixin_m () {   ,,,,,,,,,,,代码=输入美元(& # 39;get.code& # 39;);   ,,,,,,,,,,,$ appid=& # 39; wxff5b68b241a4fb11& # 39;;//公众号基本配置中获取   ,,,,,,,,,,,$ appsecret=& # 39; 412 a24b17e61317d589b8bf92f374ffc& # 39;;   ,,,,,,,,,,,$ url=癶ttps://api.weixin.qq.com/sns/oauth3/access_token?appid="。美元appid !”,秘密=啊C涝猘ppsecret !”,代码=啊4?”美元,grant_type=authorization_code";   ,,,,,,,,,,,$ res=json_decode (file_get_contents (url)美元,真);//json转数组   }

我们去请求地址获取access_token,其中需要三个参数:appid, appsecret, code.appsecret同样也是在公众号基本配置中获取。

获取后微信默认返回是json格式,所以我们把json转成数组,这样就方便进行操作。

打印数组如下:

数组:6,(   ,,,,,,,,,,,,,,,“access_token",=祝辞,“37 _3rrxoqzkuecspcfgmylco-1zxu_uhtkdku_m29u4xfsq9-ve_0fn5_k6vubpkil1ixrpebepofemzza7tgm-bg"   ,,,,,,,,,,,,,,,,“expires_in",=在7200年   ,,,,,,,,,,,,,,,“refresh_token",=祝辞,“37 _cjmxjzqbcqiivh3akjr22rqnicr_7dyyjygodmonv5822fnfkuq0vwos0b9dfuchf6gxtjxbczruws5nikgaww"   ,,,,,,,,,,,,,,,,“openid",=祝辞,“oaq-51XAHNaj9qUxVwYu3-elVTa0"   ,,,,,,,,,,,,,,,,“scope",=祝辞,“snsapi_userinfo"   ,,,,,,,,,,,,,,,,“unionid",=祝辞,“oO0Bhv6ZSw4ZYV60CMzi2p4eUO7s"   ,,,,,,,,,,,)

这样我们就成功获取到了access_token和openid。

第三步:拉取用户信息(需范围为snsapi_userinfo)

我们依然按照文档去请求地址:

,user_url=懊涝?https://api.weixin.qq.com/sns/userinfo?access_token="。美元res (& # 39; access_token& # 39;]干净,openid=皉es美元。[& # 39;openid # 39;]干净,lang=zh_CN",,,,,,,,,,,,,   美元,用户数据=https://www.yisu.com/zixun/json_decode (file_get_contents (user_url美元),真的);//json转数组   null

TP之移动端微信授权登录的实现方法