首页 > 开发 > PHP > 正文

基于CI框架的微信网页授权库示例

2024-05-04 22:50:47
字体:
来源:转载
供稿:网友

本文实例讲述了基于CI框架的微信网页授权库。分享给大家供大家参考,具体如下:

这里演示建立在CI框架上的微信网页授权功能。

1. 微信小类库,网页授权放置在libraries文件夹

<?phpif ( ! defined('BASEPATH')) exit('No direct script access allowed');Class Weixin{    private $appId;    private $appSecret;    function __construct()    {      $this->appId = trim('你的appid');      $this->appSecret = trim('你的appsecret');    }    function redirect_url($redirect)    {      /*授权页面*/      $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$this->appId&redirect_uri=$redirect&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";      return $url;    }    /* 通过code换取access_token*/    function access_token($code)    {      /*获取到的code换取access_token和openid*/      $post_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$this->appId&secret=$this->appSecret&code=$code&grant_type=authorization_code";             // echo $post_url;exit();      $return = $this->postdata($post_url);      // print_r($return);exit();      $access_token = $return['access_token'];      $openid = $return['openid'];      /*获取微信用户数据*/      $get_userinfo = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";      $userinfo = json_decode(file_get_contents($get_userinfo));      return $userinfo;    }    function eff($access_token,$openid)    {      /*检测access_token是否正确,errcode=0 为正确*/      $eff_url = "https://api.weixin.qq.com/sns/auth?access_token=$access_token&openid=$openid";      $get_eff =json_decode(file_get_contents($eff_url));      return $get_eff;    }    //通过curl方式提交code换取access_token数据    function postdata($url)    {       header('Content-Type:text/html;charset=utf-8');       // echo $url;exit();      $curl = curl_init();      curl_setopt($curl, CURLOPT_URL, $url);      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);      curl_setopt($curl, CURLOPT_SSLVERSION, 1);      // if (!empty($data)){        // curl_setopt($curl, CURLOPT_POST, 1);        // curl_setopt($curl, CURLOPT_POSTFIELDS, $data);      // }      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);      $output = curl_exec($curl);      curl_close($curl);      // var_dump($output);exit();      // print_r($output);exit();      $access = json_decode($output,true);      return $access;    }    /*      这个位置开始是控制器index()传入的微信用户资料处理    */      function save_session($data)      {        foreach ($data as $key => $value) {          // $_SESSION['uid'] = $value['uid'];          // $_SESSION['nickname'] = $value['nickname'];          // $_SESSION['fullname'] = $value['fullname'];          // $_SESSION['status'] = $value['status'];          // $_SESSION['groups'] = $value['groups'];          $_SESSION[$key] = $value;        }        return $_SESSION;        // print_r($_SESSION);exit();        // unset($_SESSION[0]);      }    function obj_to_arr($data)    {      // 进行转换成数组 使用 obj_to_arr方式      $data = is_object($data)?get_object_vars($data):$data;        foreach ($data as $key => $value)        {          $arr[$key] = $value;        }        return $arr;    }}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表