Fork me on GitHub

Laravel wxxcx 微信小程序获取用户信息

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

部署

1
2
3
4
5
6
7
8
# 安装
$ composer require iwanli/wxxcx
# 注册服务
# 在 /config/app.php 中的 providers 数组添加
Iwanli\Wxxcx\WxxcxServiceProvider::class,
# 发布配置文件
$ php artisan vendor:publish --tag=wxxcx
# 即生成 config/wxxcx.php,在其中填写 appid 和 secret

获取 openid, session_key, userInfo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
...

use Iwanli\Wxxcx\Wxxcx;

class WxxcxController extends Controller
{
protected $wxxcx;

function __construct(Wxxcx $wxxcx)
{
$this->wxxcx = $wxxcx;
}

public function getWxUserInfo()
{
// code 在小程序端使用 wx.login 获取
$code = request('code', '');
// encryptedData 和 iv 在小程序端使用 wx.getUserInfo 获取
$encryptedData = request('encryptedData', '');
$iv = request('iv', '');

// 根据 code 获取用户 openid, session_key
$loginInfo = $this->wxxcx->getLoginInfo($code);

// 获取解密后的用户信息
$userInfo = $this->wxxcx->getUserInfo($encryptedData, $iv);

return [
"loginInfo" => $loginInfo,
"userInfo" => $userInfo,
];

/*
数据格式:
loginInfo : {
openid : "xxx",
session_key : "xxx",
}
userInfo : {
openId: "xxx",
nickName: "用户昵称",
gender: 1,
language: "zh_CN",
city: "",
province: "Beijing",
country: "China",
avatarUrl: "用户头像",
watermark: {
timestamp: 1544277591,
appid: "xxx"
}
}
*/
}
}

备注

1
openid 即用户在当前小程序中的唯一标识,不同的小程序 openid 不同
-------------感谢您的阅读 有问题请留言(或mailto:frostbelt@sina.cn)-------------