摘要:小程序官方的加解密已经非常清楚了,只不过改成风格而已,仅仅相当于搬砖工。至于重复造轮子,我发现其他人的扩展解密用户信息的时候代码出错了,并且需要安装一个的扩展,没有提示用户去安装。
小程序API接口小程序官方的加解密 SDK 已经非常清楚了,只不过改成 Laravel 风格而已,仅仅相当于搬砖工。至于重复造轮子,我发现其他人的扩展解密用户信息的时候代码出错了,并且需要安装一个 Laravel 的 Curl 扩展,没有提示用户去安装。只好自己去根据他们的源码自己写一个0.0 ,不依赖其他扩展,直接安装使用即可。
用户登录:wx.login
获取用户信息:wx.getUserInfo
安装执行以下命令安装最新稳定版本:
composer require iwanli/wxxcx
或者添加如下信息到你的 composer.json 文件中 :
"iwanli/wxxcx": "^1.0",
然后注册服务提供者到 Laravel中 具体位置:/config/app.php 中的 providers 数组:
IwanliWxxcxWxxcxServiceProvider::class,
发布配置文件:
php artisan vendor:publish --tag=wxxcx
命令完成后,会添加一个wxxcx.php配置文件到您的配置文件夹 如 : /config/wxxcx.php。
生成配置文件后,将小程序的 AppID 和 AppSecret 填写到 /config/wxxcx.php 文件中
在Laravel 5控制器中使用 (示例)... use IwanliWxxcxWxxcx; class WxxcxController extends Controller { protected $wxxcx; function __construct(Wxxcx $wxxcx) { $this->wxxcx = $wxxcx; } /** * 小程序登录获取用户信息 * @author 晚黎 * @date 2017-05-27T14:37:08+0800 * @return [type] [description] */ public function 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": "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(){ ... } })
github地址:https://github.com/lanceWan/wxxcx
packagist地址: https://packagist.org/packages/iwanli/wxxcx
个人博客地址:http://blog.iwanli.me/
如有bug,请在 Issues 中反馈,非常感谢!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/23029.html
摘要:功能介绍本扩展包包含用户详细信息解密带参数小程序码生成并保存在本地目录功能。用户详细信息解密官方也提供多种语言版本,在本扩展包中仅仅做封装处理。 功能介绍 本扩展包包含用户详细信息解密、带参数小程序码生成并保存在本地目录功能。用户详细信息解密官方也提供多种语言版本SDK(C++、PHP、Node、Python),在本扩展包中仅仅做封装处理。带参数小程序码生成,官方给出三种接口,在此扩展...
摘要:最佳实践良好的编码规范单元测试持续集成文档,从一开始就形成良好的编码习惯。真实的电商业务所有的业务需求来自真实的客户,并且线上良好运营中。 重要通知: Laravel + 小程序的开源电商版本源码已经在 github 上拉,欢迎提交 issue 和 star :) 开源电商 Server 端: Laravel API源码 开源电商 client 端:小程序源码 iBrand 简介...
摘要:对于这个页面,如果微信用户没有系统角色,则跳转到登录页。令人忧桑的是,微信小程序并没有提供针对实例的中间件机制。即使用户身份校验不通过,小程序也并不会阻塞页面的渲染。 场景 小程序有52个页面,其中13个页面无需任何身份,另外39个页面需要系统角色。对于这39个页面,如果微信用户没有系统角色,则跳转到登录页。 是否有系统角色信息需要通过异步请求来获取。 需求分析&实现 对需求进行抽...
摘要:平日学习接触过的网站积累,以每月的形式发布。年以前看这个网址概况在线地址前端开发群月报提交原则技术文章新的为主。 平日学习接触过的网站积累,以每月的形式发布。2017年以前看这个网址:http://www.kancloud.cn/jsfron... 概况 在线地址:http://www.kancloud.cn/jsfront/month/82796 JS前端开发群月报 提交原则: 技...
阅读 3698·2021-10-11 10:59
阅读 1251·2019-08-30 15:44
阅读 3458·2019-08-29 16:39
阅读 2866·2019-08-29 16:29
阅读 1781·2019-08-29 15:24
阅读 790·2019-08-29 15:05
阅读 1249·2019-08-29 12:34
阅读 2281·2019-08-29 12:19