微信小程序用户信息 API 接口
用户登录:wx.login
获取用户信息:wx.getUserInfo
执行以下命令安装扩展:
composer require iwanli/wxxcx
注册服务提供者到 Laravel 中 /config/app.php 的 providers 数组
Iwanli\Wxxcx\WxxcxServiceProvider::class,
发布配置文件
php artisan vendor:publish --tag=wxxcx
生成/config/wxxcx.php配置文件后,将小程序的 AppID 和 AppSecret 填写到 /config/wxxcx.php 文件中
为方便管理将配置信息存放在.env文件中
修改wxxcx.php 文件如下:
return [
/**
* 小程序APPID
*/
'appid' => env('WECHAT_MINI_PROGRAM_APPID', ''),
/**
* 小程序Secret
*/
'secret' => env('WECHAT_MINI_PROGRAM_SECRET', ''),
/**
* 小程序登录凭证 code 获取 session_key 和 openid 地址,不需要改动
*/
'code2session_url' => "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code",
];
在 Laravel 5 控制器中使用 (示例)
......
use Iwanli\Wxxcx\Wxxcx;
use Iwanli\Wxxcx\WXBizDataCrypt;
class WxxcxController extends Controller
{
protected $wxxcx;
function __construct(Wxxcx $wxxcx)
{
$this->wxxcx = $wxxcx;
}
/**
* 小程序登录获取用户信息
*/
public function getWxUserInfo(Request $request)
{
//code 在小程序端使用 wx.login 获取
$code = $request->get('code');
//encryptedData 和 iv 在小程序端使用 wx.getUserInfo 获取
$encryptedData = $request->get('encryptedData');
$iv = $request->get('iv');
// 根据 code 获取用户 openid, session_key
$loginInfo = $this->wxxcx->getLoginInfo($code);
// 获取解密后的用户信息
$userInfo = $this->wxxcx->getUserInfo($encryptedData, $iv);
return $userInfo;
}
......
}
用户信息返回格式:
{
"openId": "xxxx",
"nickName": "统天科技",
"gender": 1,
"language": "zh_CN",
"city": "",
"province": "GuangZhou",
"country": "CN",
"avatarUrl": "http://wx.qlogo.cn/mmopen/xxxx",
"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(){
... }
})