Laravel 5风格扩展一个微信小程序
小程序加解密官方SDK已经很清楚了,只是刚刚改成Laravel风格,就跟瓦工一样。在重新发明轮子方面,我发现其他人的扩展在解密用户信息时出现编码错误,并且必须安装一个 Laravel Curl 扩展而不提示用户安装。没办法,只好根据他们的源码自己写了一个,不依赖其他扩展,直接安装使用即可。
小程序 API 接口
获取用户信息:
安装
运行以下命令安装最新稳定版本:
composer require iwanli/wxxcx
或者将以下信息添加到您的 文件中:然后具体注册Laravel 中服务提供者的位置:/config/
中的providers
数组。
Iwanli\Wxxcx\WxxcxServiceProvider::class,
发布配置文件:
php artisan vendor:publish --tag=wxxcx
命令完成后, 配置文件将添加到您的配置文件夹中,例如:
/config/
。
生成配置文件后,将AppID
和AppSecret
填写到中的小程序中
在Laravel 5控制器中使用(示例)
... use Iwanli\Wxxcx\Wxxcx; class WxxcxController extends Controller { protected$wxxcx; function __construct(Wxxcx $wxxcx) { $this->wxxcx = $wxxcx; } /** * 小程序登录获取用户信息 * @author 晚黎 * @date 2017-05-27T14:37:08+0800 * @return [type] [description] */publicfunction getWxUserInfo() { //code 在小程序端使用 获取$code = request('code', ''); //encryptedData 和 iv 在小程序端使用 获取$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" } }
小程序检索代码、iv 和加密数据并向服务器发送请求。示例代码:
//调用登录接口 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(){ ... } })
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。