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

2020-09-01 11:41:55

一:安装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' => 'jianyaneasywechatWechat',   '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)   }  } })
相关文章 大家在看