基于ThinkPHP5.0的微信小程序登录流程封装

所需积分  0 4848
基于ThinkPHP5.0的微信小程序登录流程封装

基于ThinkPHP5.0的微信小程序composer包。

安装方法:

  1. composer require xxh/think-wxminihelper

你只需要两部就可以实现微信的登录验证,验证成功后会自动返回一个3rd_session,和用户的基本信息

这里要注意的是,获取3rd_session因为微信官网建议Linux下面读取/dev/urandom设备, 所以这段代码只适合用于linux系统,但是如果你需要在Windows系统上测试,那么可以修改 WXLoginHelper下的randomFromDev方法

1、在config.php配置文件中加入必须的配置

  1. // wx配置
  2. 'wx'  => [
  3.     'url' => 'https://api.weixin.qq.com/sns/jscode2session',
  4.     'appid' => 'wxde3ea15f3a18f7f6',
  5.     'secret' => '53b1a4e12b88d78f3bcc2786fb72adcf',
  6.     'grant_type' => 'authorization_code'
  7. ]

2、使用checkLogin进行验证

  1. $code = input("code", '', 'htmlspecialchars_decode');
  2. $rawData = input("rawData", '', 'htmlspecialchars_decode');
  3. $signature = input("signature", '', 'htmlspecialchars_decode');
  4. $encryptedData = input("encryptedData", '', 'htmlspecialchars_decode');
  5. $iv = input("iv", '', 'htmlspecialchars_decode');
  6.  
  7. $wxHelper = new WXLoginHelper();
  8. $data = $wxHelper->checkLogin($code, $rawData, $signature, $encryptedData, $iv);

当然,如果你自己有一套登录验证流程,你也可以使用decryptData进行解密验证前面的正确性

  1. $appid = 'wx4f4bc4dec97d474b';
  2. $sessionKey = 'tiihtNczf5v6AKRyjwEUhQ==';
  3. $encryptedData="CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZM
  4.                 QmRzooG2xrDcvSnxIMXFufNstNGTyaGS
  5.                 9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+
  6.                 3hVbJSRgv+4lGOETKUQz6OYStslQ142d
  7.                 NCuabNPGBzlooOmB231qMM85d2/fV6Ch
  8.                 evvXvQP8Hkue1poOFtnEtpyxVLW1zAo6
  9.                 /1Xx1COxFvrc2d7UL/lmHInNlxuacJXw
  10.                 u0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn
  11.                 /Hz7saL8xz+W//FRAUid1OksQaQx4CMs
  12.                 8LOddcQhULW4ucetDf96JcR3g0gfRK4P
  13.                 C7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB
  14.                 6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns
  15.                 /8wR2SiRS7MNACwTyrGvt9ts8p12PKFd
  16.                 lqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYV
  17.                 oKlaRv85IfVunYzO0IKXsyl7JCUjCpoG
  18.                 20f0a04COwfneQAGGwd5oa+T8yO5hzuy
  19.                 Db/XcxxmK01EpqOyuxINew==";
  20. $iv = 'r7BXXKkLb8qrSNn05n0qiA==';
  21. $pc = new \think\wxmini\WXBizDataCrypt($appid, $sessionKey);
  22. $errCode = $pc->decryptData($encryptedData, $iv, $data );
  23. if ($errCode == 0) {
  24.     print($data . "\n");
  25. } else {
  26.     print($errCode . "\n");
  27. }


展开

jvalidator异步表单验证器

jvalidator是一个支持表达式的异步表单验证器插件,使用方法:第1步设置好表单,为需要验证的字段设置 data-jvalidator-pattern ,该内容是你可以使用的验证器<form id="form1

ThinkPHP5微信支付扩展库

ThinkPHP5微信支付扩展库使用说明在默认配置情况下,将文件夹**拷贝到根目录**即可, 其中 extend 目录为扩展目录需要在配置文件 /extend/wxpay/lib/WxPayConfig.php 中填写必要的参数如有退款操作

PHP爬虫实例-4K壁纸爬取测试

PHP爬虫实例,4K壁纸爬取测试。本实例的目标网站是一个叫《彼岸网》的壁纸网站,使用技术是 QueryList(php爬虫库)。只要爬取.clearfix li>a>img元素里面的src属性和alt属性即可获得图片u

基于jQuery的分页组件-jqPaginator分页组件

jqPaginator是一款基于jQuery的简洁、高度自定义的jQuery分页组件,适用于多种应用场景。用法很简单,首先引入jQuery和jqPaginator,之后就可以初始化分页了$('#id').jqPaginato

Python海报生成器源码

海报编辑器最左侧是组件列表。可以在最左侧选择组件,比如文本、二维码、图片等添加到最中间的画布区域,通过右侧的属性调节面板调节添加组件的样式。快速:三步完成海报开发工作:启动服务 > 编辑海报 > 生成代码简单:组件丰富、支持拖拽

Dropzone.js实现文件拖拽上传实例

Dropzone.js是一个开源的JavaScript库,提供 AJAX 异步文件上传功能,支持拖拽文件、支持最大文件大小、支持设置文件类型、支持预览上传结果,不依赖jQuery库。本实例实现了基本的拖拽上传功能,供大家参考。实例相关教程:

基于Focusky.js的高逼格故宫介绍网页PPT展示效果

基于Focusky.js的高逼格故宫介绍网页PPT展示效果,Focusky.js是一款能制作网页格式的类似PPT模仿动画的JS插件,本例通过制作一款故宫介绍网页实现PPT播放效果,学习Focusky.js,有兴趣的可以下载下来共同学习一下。

ThinkPHP5电脑与手机支付扩展库

ThinkPHP5电脑与手机支付扩展库,在默认配置情况下,将文件夹拷贝到根目录即可。其中extend目录为支付扩展目录, application\extra\alipay.php为配置文件需要在配置文件application\ex

基于Vue.js的表格分页组件-BootPage

基于Vue.js的表格分页组件-BootPage,一款支持静态数据和服务器数据的表格分页组件,支持调整每页显示行数和页码显示个数,样式基于bootstrap。注:在使用ES6及vue-loader的vue项目中才能使用本组件,请求本地jso

ThinkPHP在线更新解决方案/PHP在线更新方案实例代码

ThinkPHP在线更新解决方案实例代码,基本实现了网站应用程序的在线更新功能。大家可以参考其中的实现思路,再略加完善,整合到自己的系统中,就能实现系统的在线更新功能。其中ThinkPHP版本为5.0,代码中的更新接口地址需要更具自己的实际

Thinkphp5-支付宝alipay/电脑与手机支付扩展库

Thinkphp5-支付宝alipay电脑与手机支付扩展库,代码非常清晰明了,拿来即用。使用说明在默认配置情况下,将文件夹拷贝到根目录即可, 其中extend目录为支付扩展目录, application\extra\alipay.

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐

    Python海报生成器源码
    PHP+Mysql+jQuery找回密码实例