首页 > 热点 > 微信 > 正文

TP5框架下微信授权登录的代码实现

2020-03-22 17:29:40
字体:
来源:转载
供稿:网友
本篇文章给大家带来的内容是关于TP5框架下微信授权登录的代码实现,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

新建配置文件wechat.php

 ?phpreturn [ oauth = [ appid = *** , appsecret = *** ,];

新建extend/wechat/WechatOauth.php

 ?phpnamespace wechat; * @package 微信授权控制器html' target='_blank'>class WechatOauth{ //微信授权配置信息 private $wechat_config = [ appid = , appsecret = , public function __construct() { $this- wechat_config = $this- wechatConfig(); * 获取秘钥配置 * @return [type] 数组 public function wechatConfig() { $wechat_config = array_merge($this- wechat_config,config( wechat.oauth  return $wechat_config; * 获取openid * @return string|mixed public function getUserAccessUserInfo($code = ) if(empty($code)){ $baseUrl = request()- url(true); $url = $this- getSingleAuthorizeUrl($baseUrl, 123  Header( Location: $url  exit(); }else{ $access_token = $this- getSingleAccessToken($code); return $this- getUserInfo($access_token); * 微信授权链接 * @param string $redirect_uri 要跳转的地址 * @return [type] 授权链接 public function getSingleAuthorizeUrl($redirect_url = ,$state = 1 ) { $redirect_url = urlencode($redirect_url); return http://open.weixin.qq.com/connect/oauth2/authorize?appid= . $this- wechat_config[ appid ] . redirect_uri= .$redirect_url. response_type=code scope=snsapi_userinfo state={$state}#wechat_redirect  * 获取token * @return [type] 返回token  public function getSingleAccessToken($code) { $url = http://api.weixin.qq.com/sns/oauth2/access_token?appid= .$this- wechat_config[ appid ]. secret= .$this- wechat_config[ appsecret ]. code= .$code. grant_type=authorization_code  $access_token = $this- https_request($url); return $access_token;  * 发送curl请求 * @param $url string * @param return array|mixed public function https_request($url) $curl = curl_init(); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $AjaxReturn = curl_exec($curl); //获取access_token和openid,转换为数组 $data = json_decode($AjaxReturn,true); curl_close($curl); return $data; * @explain * 通过code获取用户openid以及用户的微信号信息 * @return array|mixed * @remark * 获取到用户的openid之后可以判断用户是否有数据,可以直接跳过获取access_token,也可以继续获取access_token * access_token每日获取次数是有限制的,access_token有时间限制,可以存储到数据库7200s. 7200s后access_token失效 public function getUserInfo($access_token = []) if(!$access_token){ return [ code = 0, msg = 微信授权失败 ,  $userinfo_url = http://api.weixin.qq.com/sns/userinfo?access_token= .$access_token[ access_token ]. openid= .$access_token[ openid ]. lang=zh_CN  $userinfo_json = $this- https_request($userinfo_url); //获取用户的基本信息,并将用户的唯一标识保存在session中 if(!$userinfo_json){ return [ code = 0, msg = 获取用户信息失败! ,  return $userinfo_json;}

控制器调用

public function index() $wchat = new /wechat/WechatOauth(); $code = request()- param( code ,  $user = $wchat- getUserAccessUserInfo($code); }

相关推荐:

TP数据层进行增删改查操作的代码

TP中使用原生的MySQL语句的方法(代码)

以上就是TP5框架下微信授权登录的代码实现的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表