广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Thinkphp5微信小程序如何实现获取用户信息接口
  • 443
分享到

Thinkphp5微信小程序如何实现获取用户信息接口

2024-04-02 19:04:59 443人浏览 薄情痞子
摘要

这篇文章主要为大家展示了“ThinkPHP5微信小程序如何实现获取用户信息接口”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Thinkphp5微信小程序如何实现

这篇文章主要为大家展示了“ThinkPHP5微信小程序如何实现获取用户信息接口”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Thinkphp5微信小程序如何实现获取用户信息接口”这篇文章吧。

Thinkphp5微信小程序获取用户信息接口的实例详解

首先在官网下载示例代码, 选php的,

官方的php文件,编码是UTF-8+的, 所以要把文件改为UTF-8

然后在Thinkphp5 extend文件夹下建立Wxxcx命名空间,把官方的几个类文件放进去(这里要注意文件夹名, 命名空间名, 类名的, 大小写,一定要一样,官方的文件名和类名大小写不一样)

然后是自己的thinkphp接口代码:

<?php 
 
 
namespace app\api\controller\v1; 
 
 
use think\Loader; 
use think\Request; 
use Workerman\Protocols\Http; 
use Wxxcx\WXBizDataCrypt; 
use first\second\Foo; 
 
class Index 
{ 
  public function index($id) 
  { 
 
    return JSON(['msg' => $id]); 
  } 
 
  public function dologin() 
  { 
    $code = Request::instance()->param('code'); 
    $encryptedData = Request::instance()->param('encryptedData'); 
    $iv = Request::instance()->param('iv'); 
 
    $appid = "你的小程序appid"; 
    $secret = "你的小程序secret"; 
    //appid={$appid}&secret={$secret}&js_code={$code}&grant_type=authorization_code 
    $param = array( 
      'appid' => $appid, 
      'secret' => $secret, 
      'js_code' => $code, 
      'grant_type' => 'authorization_code' 
    ); 
  //http函数为封装的请求函数 
    $res = http("https://api.weixin.qq.com/sns/jscode2session", $param, 'post'); 
 
    $arr = json_decode($res, true); 
 
    $result = $this->wxdecode($encryptedData, $iv, $arr['session_key'], $appid); 
 
    //return json($result); 
    if ($result) { 
      return json(['code' => 1]); 
    } else { 
      return json(['code' => -1]); 
    } 
 
  } 
 
  public function wxdecode($encryptedData, $iv, $sessionKey, $appid) 
  { 
    //Loader::import('Wxxcx\WXBizDataCrypt', EXTEND_PATH); 
    $pc = new WXBizDataCrypt($appid, $sessionKey); 
    $data = null; 
    $errCode = $pc->decryptData($encryptedData, $iv, $data); 
    //echo $data; 
    //return json(['data'=>$data]); 
    $data = json_decode($data); 
 
    if ($errCode == 0) { 
      //print($data . "\n"); 
      //dump($data); 
      return $data; 
    } else { 
      //print($errCode . "\n"); 
      //dump($errCode); 
      return $errCode; 
    } 
 
  } 
}

http封装函数:

 
function http($url, $params, $method = 'GET', $header = array(), $multi = false){ 
  $opts = array( 
    CURLOPT_TIMEOUT    => 30, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_SSL_VERIFYHOST => false, 
    CURLOPT_HTTPHEADER   => $header 
  ); 
   
  switch(strtoupper($method)){ 
    case 'GET': 
      $opts[CURLOPT_URL] = $url . '?' . http_build_query($params); 
      break; 
    case 'POST': 
      //判断是否传输文件 
      $params = $multi ? $params : http_build_query($params); 
      $opts[CURLOPT_URL] = $url; 
      $opts[CURLOPT_POST] = 1; 
      $opts[CURLOPT_POSTFIELDS] = $params; 
      break; 
    default: 
      throw new Exception('不支持的请求方式!'); 
  } 
   
  $ch = curl_init(); 
  curl_setopt_array($ch, $opts); 
  $data = curl_exec($ch); 
  $error = curl_error($ch); 
  curl_close($ch); 
  if($error) throw new Exception('请求发生错误:' . $error); 
  return $data; 
}

然后是小程序的代码:

// 获取用户信息 
  wx.getSetting({ 
   success: res => { 
    if (res.authSetting['scope.userInfo']) { 
     // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 
     wx.getUserInfo({ 
      success: res => { 
       console.log(res); 
       var encryptedData = res.encryptedData 
       var iv = res.iv 
       wx.request({ 
        url: "https://你的服务器地址/dologin",//dologin是访问后端的方法 
        method: "post", 
        data: { 
         code: code, 
         encryptedData: encryptedData, 
         iv: iv 
        }, 
        success: function (ret) { 
         console.log(ret); 
        } 
       }) 
        
        
       // 可以将 res 发送给后台解码出 uNIOnId 
       this.globalData.userInfo = res.userInfo 
 
       // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 
       // 所以此处加入 callback 以防止这种情况 
       if (this.userInfoReadyCallback) { 
        this.userInfoReadyCallback(res) 
       } 
      } 
     }) 
    } 
   } 
  }) 
 },

以上是“Thinkphp5微信小程序如何实现获取用户信息接口”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: Thinkphp5微信小程序如何实现获取用户信息接口

本文链接: https://www.lsjlt.com/news/70748.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Thinkphp5微信小程序如何实现获取用户信息接口
    这篇文章主要为大家展示了“Thinkphp5微信小程序如何实现获取用户信息接口”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Thinkphp5微信小程序如何实现...
    99+
    2022-10-19
  • 微信小程序获取用户信息
    要在微信小程序中获取用户信息,你可以按照以下步骤进行操作: 在小程序的app.json文件中添加"scope.userinfo"权限,例如: ``` "permission": {   "scope.userinfo": {     "d...
    99+
    2023-09-21
    微信小程序 小程序
  • 微信小程序如何获取用户信息
    自我介绍 我是IT果果日记,微信公众号请搜索 IT果果日记 一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。 微信小程序用户基本信息有哪些? 除了基本信息,微信还会提供openId和union...
    99+
    2023-09-05
    微信小程序 小程序 微信 Powered by 金山文档
  • 微信小程序开发之获取用户信息
    环境 微信开发者工具 Stable 1.06.2303220云开发控制台 v1.5.47 用户的openid和头像名称信息 openid 是小程序用户的唯一标识。注意, openid 并不是微信用户的...
    99+
    2023-09-27
    微信小程序
  • 微信小程序开发中如何获取用户信息
    这篇文章主要为大家展示了微信小程序开发中如何获取用户信息,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“微信小程序开发中如何获取用户信息”这篇文章吧。wx.getUserInfo(OBJECT)获取...
    99+
    2023-06-26
  • 微信小程序实现授权登录之获取用户信息
    本文实例为大家分享了微信小程序实现获取用户信息的具体代码,供大家参考,具体内容如下 小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内...
    99+
    2022-11-13
  • 微信小程序开发怎么获取用户信息
    这篇文章主要介绍了微信小程序开发怎么获取用户信息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序开发怎么获取用户信息文章都会有所收获,下面我们一起来看看吧。第一中直接授权获取(在同一页面之中):首先在微...
    99+
    2023-06-29
  • 小程序如何获取用户信息
    这篇文章主要为大家展示了小程序如何获取用户信息,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“小程序如何获取用户信息”这篇文章吧。获取用户信息,withCredentials 为 true 时需要先...
    99+
    2023-06-26
  • 微信小程序如何授权获取用户详细信息openid
    这篇文章主要介绍微信小程序如何授权获取用户详细信息openid,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!小程序获取用户的头像昵称openid之类第一种使用wx.getUserIn...
    99+
    2022-10-19
  • 微信小程序分享及授权获取用户信息接口调整的方法
    这篇文章主要介绍了微信小程序分享及授权获取用户信息接口调整的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序分享及授权获取用户信息接口调整的方法文章都会有所收获,下面我们一起来看看吧。调整方案具体如...
    99+
    2023-06-26
  • 微信小程序使用uni-app一键获取用户信息
    用户不想输入账号密码,一键登录  <label for="" @click="LoginDL">一键登陆</label> uni.getUserPr...
    99+
    2023-01-28
    微信小程序使用uni-app一键获取用户信息 uni-app一键获取微信小程序用户信息
  • 微信小程序如何使用uni-app一键获取用户信息
    本篇内容介绍了“微信小程序如何使用uni-app一键获取用户信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用户不想输入账号密码,一键登录...
    99+
    2023-07-05
  • 微信小程序实现授权登录之怎么获取用户信息
    这篇文章主要讲解了“微信小程序实现授权登录之怎么获取用户信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序实现授权登录之怎么获取用户信息”吧!小程序登录小程序可以通过微信官方提供的...
    99+
    2023-06-30
  • 微信小程序中如何获取系统信息
    这篇“微信小程序中如何获取系统信息”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“微信小程序中如何获取系统信息”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入...
    99+
    2023-06-26
  • 微信小程序获取用户openid
    小程序端直接获取: 实现代码:直接简单 wx.login({ success(res) { if (res.code) { //发起网络请求 wx.request({ ...
    99+
    2023-08-17
    微信小程序 前端 小程序
  • 微信小程序如何同时获取用户信息和用户手机号
    今天在写登陆页面的时候,由于需要的个人信息和手机号的授权,但是如果在页面上直接放2个按钮,岂不是很呆??? 索性就写了一个mask层,去引导用户授权手机号。 1. 当我点击快捷登录...
    99+
    2022-11-12
  • IVX低代码平台——微信小程序获取用户信息
    写在前面 小程序可以通过方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。本文将向大家展示低代码开发:小程序实现获取用户信息的方法,供大家参考。 文章目录 写在前面开发概述准备工作用户组件发起小程序登录用户组件获...
    99+
    2023-08-17
    低代码 微信小程序 小程序
  • C#微信小程序服务端如何获取用户解密信息
    这篇文章主要为大家展示了“C#微信小程序服务端如何获取用户解密信息”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#微信小程序服务端如何获取用户解密信息”这篇文...
    99+
    2022-10-19
  • 微信小程序——获取接口调用凭据access_token
    问题背景 今天在搞一个微信小程序的时候,使用到了发布内容的问题,然后想使用微信请求接口,结果遇到了请求接口需要获取调用凭证access_token。 查看微信小程序开发文档 打开微信小程序开发文档后,打开服务端相关文档,如下图: 图中可以...
    99+
    2023-09-14
    微信小程序 小程序 微信
  • 小程序如何获取用户信息失败
    这篇文章主要介绍小程序如何获取用户信息失败,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  在使用小程序时,很多人会不授权导致授权失败场景,但是小程序第二次不在启动授权信息弹层,遇到这种情况,为了用户体验我们需要这样...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作