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

所需积分  0 4617
基于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. }


展开

jQuery年终奖抽奖系统代码

公司年终奖抽奖系统,基于jQuery,兼容Chrome,火狐等现代浏览器,其他浏览器未做兼容性测试

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

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

jvalidator异步表单验证器

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

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

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

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

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

小人举牌图片表情生成代码实例

小人举牌图片表情生成代码实例,可以实时在线生成小人举牌的聊天表情图片文件。你可以用来做一个API接口,用于在线聊天软件使用。

PHP生成中间带LOGO图像的二维码实例

这是一个二维码生成器,它可以帮助你以简单的方式生成二维码,并且可以设置二维码中间的小logo图标。使用非常简单,并且提供了一个Symfony包,可以快速整合到你的项目中。

PHP微信扫码关注公众号并授权登录源码

PHP微信扫码登录看起来简单,但做起来有点麻烦,开发起来就会浪费很多的时间。PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像、openid和省市等信息源码。使用方法:1、把 wx 目录放到网站根目录2、登录https://mp.

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

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

仿美图秀秀html5版canvas自由拼图实例

基于canvas自由拼图实例,可以自由拖动,仿美图秀秀自由拼图,并可以对插入图片旋转,拖拽,缩放。当然,如果用户对插入的图片不满意,可以用另一张图片替换选中的图片,或者删除选中图片。

wangEditor4使用表单提交实例

wangEditor官方的文档发现做起来比较麻烦,虽然说很方便,但是对新手来说还是不太好集成的自己的系统中,下面整理了一个创建隐藏input作为表单提交的组件事件的方法。用起来就方便多了。只需要在需要的位置放以下代码即可

ThinkPHP5电脑与手机支付扩展库

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

评论(0)条

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

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

    编辑推荐

    jvalidator异步表单验证器