欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > Laravel5微信小程序登录获取用户信息扩展

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:789

HTML5自适应律师工作室类网

2020-04-04   浏览:654

高端HTML5响应式企业通用网

2020-05-06   浏览:560

html5响应式外贸网站英文版

2020-05-08   浏览:545

HTML5影视传媒文化公司类网

2020-05-12   浏览:543

Laravel5微信小程序登录获取用户信息扩展

发布时间:2021-01-02  

小程序官方的加解密 SDK 已经非常清楚了,只不过改成 Laravel 风格而已,仅仅相当于搬砖工。至于重复造轮子,我发现其他人的扩展解密用户信息的时候代码出错了,并且需要安装一个 Laravel 的 Curl 扩展也没说。只好 ...

 

 

 

小程序官方的加解密 SDK 已经非常清楚了,只不过改成 Laravel 风格而已,仅仅相当于搬砖工。至于重复造轮子,我发现其他人的扩展解密用户信息的时候代码出错了,并且需要安装一个 Laravel 的 Curl 扩展也没说。只好自己去根据他们的源码自己写一个0.0 ,不依赖其他扩展,直接安装使用即可。 
小程序API接口

用户登录:wx.login 
获取用户信息:wx.getUserInfo 
安装

执行以下命令安装最新稳定版本:

 

composer require iwanli/wxxcx

或者添加如下信息到你的 composer.json 文件中 :

 

"iwanli/wxxcx":"^1.0",

然后注册服务提供者到 Laravel中 具体位置:/config/app.php 中的 providers 数组:

 

Iwanli\Wxxcx\WxxcxServiceProvider::class,

发布配置文件:

 

php artisan vendor:publish --tag=wxxcx

命令完成后,会添加一个wxxcx.php配置文件到您的配置文件夹 如 : /config/wxxcx.php。

生成配置文件后,将小程序的 AppID 和 AppSecret 填写到 /config/wxxcx.php 文件中

在Laravel 5控制器中使用 (示例)

 

...

 

useIwanli\Wxxcx\Wxxcx;

 

classWxxcxControllerextendsController

{

protected $wxxcx;

 

function __construct(Wxxcx $wxxcx)

{

$this->wxxcx = $wxxcx;

}

 

/**

* 小程序登录获取用户信息

* @author 晚黎

* @date 2017-05-27T14:37:08+0800

* @return [type] [description]

*/

publicfunction getWxUserInfo()

{

//code 在小程序端使用 wx.login 获取

$code = request('code','');

//encryptedData 和 iv 在小程序端使用 wx.getUserInfo 获取

$encryptedData = request('encryptedData','');

$iv = request('iv','');

 

//根据 code 获取用户 session_key 等信息, 返回用户openid 和 session_key

$userInfo = $this->wxxcx->getLoginInfo($code);

 

//获取解密后的用户信息

return $this->wxxcx->getUserInfo($encryptedData, $iv);

}

}

用户信息返回格式:

 

{

"openId":"xxxx",

"nickName":"晚黎",

"gender":1,

"language":"zh_CN",

"city":"",

"province":"Shanghai",

"country":"CN",

"avatarUrl":"",

"watermark":{

"timestamp":1495867603,

"appid":"your appid"

}

}

小程序端获取 code、iv、encryptedData 向服务端发送请求示例代码:

 

//调用登录接口

wx.login({

success:function(response){

var code = response.code

wx.getUserInfo({

success:function(resp){

wx.request({

url:'your domain',

data:{

code: code,

iv: resp.iv,

encryptedData: resp.encryptedData

},

success:function(res){

console.log(res.data)

}

})

}

})

},

fail:function(){

...

}

})

如有bug,请在 Issues 中反馈,非常感谢!