Yii使用EasyWechat实现小程序获取用户的openID的方法


Posted in PHP onApril 29, 2020

一:安装EasyWechat

EasyWechat文档:https://www.easywechat.com/docs

在Yii使用EasyWechat,有两个拓展可以使用,分别为jianyan74/yii2-easy-wechat 适用于 EasyWeChat 4.x,max-wen/yii2-easy-wechat 适用于 EasyWeChat 3.x,这里我是用的是jianyan74/yii2-easy-wechat拓展

composer require jianyan74/yii2-easy-wechat

二:配置EasyWechat

1:在config/main.php 的 component中添加

'wechat' => [ 
  'class' => 'jianyan\easywechat\Wechat', 
  'userOptions' => [], // 用户身份类参数 
  'sessionParam' => 'wechatUser', // 微信用户信息将存储在会话在这个密钥 
  'returnUrlParam' => '_wechatReturnUrl', // returnUrl 存储在会话中 
  'rebinds' => [ // 自定义服务模块 
  ] 
],

2:在config/params.php文件中添加(这里我只进行小程序的配置.其他配置可参考EasyWechat官网)

// 微信小程序配置 
'wechatMiniProgramConfig' => \[ 
  'app\_id' => 'XXXX', 
  'secret' => 'XXXX', 
  // 下面为可选项 
  // 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名 
  'response\_type' => 'array', 
  //日志配置 
  'log' => \[ 
    'level' => 'debug', 
    'file' => dirname(dirname(\_\_DIR\_\_)) . '/api/runtime/wechat.log', 
  \], 
\],

三:根据前端传来的code获取用户的openID

$request = Yii::$app->getRequest(); 
$miniProgram = Yii::$app->wechat->miniProgram; 
$code2Session = $miniProgram->auth->session($request->post('code', '')); 
$openID = $code2Session\['openid'\];//用户的openID 
$sessionKey = $code2Session\['session\_key'\];//session\_key

四:小程序端的code值获取

在小程序端可以使用wx.login方法来获取code值

wx.login({ 
 success (res) { 
  if (res.code) { 
   //获取code 
   console.log(res.code) 
   }) 
  } else { 
   console.log('登录失败!' + res.errMsg) 
  } 
 } 
})

到此这篇关于Yii使用EasyWechat实现小程序获取用户的openID的方法的文章就介绍到这了,更多相关Yii 小程序获取用户的openID内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
php获取服务器信息的实现代码
Feb 04 PHP
解析PHP可变函数的经典用法
Jun 20 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
微信公众号判断用户是否已关注php代码解析
Jun 24 PHP
PHP打印输出函数汇总
Aug 28 PHP
php中str_pad()函数用法分析
Mar 28 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 #PHP
PHP扩展类型及安装方式解析
Apr 27 #PHP
PHP如何开启Opcache功能提升程序处理效率
Apr 27 #PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 #PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 #PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 #PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 #PHP
You might like
php调用mysql存储过程
2007/02/14 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP数组函数知识汇总
2016/05/12 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
js实现分割上传大文件
2016/03/09 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
临床医师专业个人自我评价
2014/01/08 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
追悼会家属答谢词
2015/09/29 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript