Thinkphp5微信小程序获取用户信息接口的实例详解!(干货)(小程序获取用户信息接口调整)

Thinkphp5微信小程序获取用户信息接口的实例详解!(干货)(小程序获取用户信息接口调整)

微信小程序

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

话不多说直接上实例代码!

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

这里有个坑

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

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

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

/** * Created by PhpStorm. * User: leeoo * Date: 2018/10/14 0014 * Time: 10:43 */namespace appapicontrollerv1; use thinkLoader; use thinkRequest; use WorkermanProtocolsHttp; use WxxcxWXBizDataCrypt; use firstsecondFoo; 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(\’WxxcxWXBizDataCrypt\’, 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封装函数:

/** * 发送HTTP请求方法 * @param string $url 请求URL * @param array $params 请求参数 * @param string $method 请求方法GET/POST * @return array $data 响应数据 */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(\’不支持的请求方式!\’); } /* 初始化并执行curl请求 */ $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) } } }) } } }) },

自己实际操作一下会更好!


今日资料:4个G的PHP微信二次开发教程分享,第三方接口和小程序支付功能。

领取方式:关注然后私信回复PHP即可获得!

再次注意:有需要的可以关注私信取,只送50份!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月9日 上午9:07
下一篇 2024年5月9日 上午9:19

相关推荐

  • PpT倒计时插件

    欢迎来到PpT倒计时插件的世界! PpT倒计时插件是一款非常有趣的插件,它可以帮助您倒计时PpT(价值约1000人民币的数字货币),并且为您提供一种独特的方式来规划您的投资计划。 …

    科研百科 2024年10月15日
    3
  • 国铁集团党支部建设工作细则

    国铁集团党支部建设工作细则 为了加强国铁集团党支部建设,提高党支部的组织力和凝聚力,根据国铁集团党支部建设工作计划,制定了本细则。 一、目的 通过加强党支部建设,提高党支部的工作效…

    科研百科 2024年11月1日
    7
  • 湖南省交通厅项目办主任(湖南省交通厅科研项目)

    湖南省交通厅科研项目 湖南交通厅一直致力于推动交通运输事业的发展,尤其是在科技创新方面。作为湖南省交通厅的重要科研项目之一,“智能交通系统优化与监管研究”项目旨在通过对交通信号、交…

    科研百科 2024年4月11日
    113
  • 解读和评价Gartner中国低代码市场竞争格局报告(gartner 低代码)

    文/明道云创始人任向晖 Gartner在上月底发布了中国低代码平台市场竞争格局报告(Competitive Landscape:Enterprise Low-Code Applic…

    科研百科 2024年7月7日
    49
  • 课题报销软件著作权费

    课题报销软件著作权费 随着课题报销软件的普及,越来越多的人开始使用这种方便的工具来管理他们的课题报销。但是,随着软件的广泛应用,著作权费用也成为了一个引人注目的问题。下面,我们将探…

    科研百科 2024年10月23日
    0
  • 广西科技厅 项目答辩

    广西科技厅项目答辩广西科技厅项目答辩1、广西工业大学在全国、江苏省和江苏省通用;重庆大学在全国、江苏省、湖北省、重庆市等省(区)通用;北师大附中。2、安徽中医药大学在全国、全国各校…

    科研百科 2024年11月22日
    1
  • 常见的网络管理软件

    常见的网络管理软件 随着互联网的普及,越来越多的人开始使用网络。网络已经成为我们日常生活中不可或缺的一部分。但是,在使用网络的过程中,我们也需要一些网络管理软件来帮助我们更好地管理…

    科研百科 2024年10月1日
    29
  • 教科研课题申报表

    教科研课题申报表 尊敬的领导: 我是XXX,现就本次教科研课题申报表提交如下: 1. 课题名称:XXX 2. 课题简介:XXX 3. 研究目的:XXX 4. 研究内容:XXX 5….

    科研百科 2024年8月20日
    28
  • 广工项目管理(广州管理项目系统)

    广州管理项目系统 随着现代项目管理的日益普及,广州管理项目系统成为了项目管理中不可或缺的一部分。广州管理项目系统是一种功能强大的项目管理工具,可以帮助企业或组织更好地管理项目,提高…

    科研百科 2024年6月6日
    33
  • 坚持“四个融入”突出党建引领–长江电力党委推动党建工作与生产经营深度融合

    坚持“四个融入”突出党建引领–长江电力党委推动党建工作与生产经营深度融合 近年来,长江电力党委始终坚持把党建工作与生产经营深度融合,以推动企业高质量发展为目标,充分发挥…

    科研百科 2024年10月18日
    13