返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php+laravel 扫码二维码签到功能
  • 477
分享到

php+laravel 扫码二维码签到功能

2024-04-02 19:04:59 477人浏览 安东尼
摘要

简介 为满足公司签到业务场景 最终敲定使用微信二维码来实现 微信公众号相关配置 在微信公众平台登陆上去后,点开开发中的基本配置看到的基本信息 框架及拓展包 laravel ov

简介

为满足公司签到业务场景 最终敲定使用微信二维码来实现

微信公众号相关配置
在微信公众平台登陆上去后,点开开发中的基本配置看到的基本信息

微信公众平台配置

框架及拓展包


laravel
overtrue/laravel-wechat  
安装方式:composer require "overtrue/laravel-wechat:^6.0"

详细了解请看:laravel-wechat

配置文件及对应信息


config/wechat.PHP
	
    'official_account' => [
        'default' => [
            'app_id'  => env('WECHAT_OFFICIAL_ACCOUNT_APPID', 'your-app-id'),         // AppID
            'secret'  => env('WECHAT_OFFICIAL_ACCOUNT_SECRET', 'your-app-secret'),    // AppSecret
            'token'   => env('WECHAT_OFFICIAL_ACCOUNT_TOKEN', 'your-token'),           // Token
            'aes_key' => env('WECHAT_OFFICIAL_ACCOUNT_AES_KEY', ''),                 // EncodingAESKey

        ],
    ],

生成二维码


<?php

namespace App\Model\WeChat;

use Illuminate\Database\Eloquent\Model;

class Qrcode extends Model
{
	private static $app;
	public function __construct(){
	    self::$app = app('wechat.official_account');
	}
	
    
	public function temporary($action_info,$expire_seconds = 30*24*60*60){
	    $result =  self::$app->qrcode->temporary($action_info, $expire_seconds);
		$ticket = $result['ticket'];
		$url = $this -> qrcode_url($ticket);
		$result['url1'] = $url;
		$result['action_info'] = $action_info;
		return $result;
	}

    
	public function forever($action_info){
	    $result =  self::$app->qrcode->forever($action_info);
		$ticket = $result['ticket'];
		$url = $this -> qrcode_url($ticket);
		$result['url1'] = $url;
		$result['action_info'] = $action_info;
		return $result;
	}

    
	public function qrcode_url($ticket){
		$url = self::$app->qrcode->url($ticket);
		return $url;
	}
}

实现一个简单的推送


<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Log;

class WeChatController extends Controller
{

    
    public function serve()
    {
        Log::info('request arrived.'); # 注意:Log 为 Laravel 组件,所以它记的日志去 Laravel 日志看,而不是 EasyWeChat 日志

        $app = app('wechat.official_account');
        $app->server->push(function($message){
            return "hello everyone!";
        });

        return $app->server->serve();
    }
}

处理事件


<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\Request;
use App\Model\SCAN;

class WeChatController extends Controller
{

    
    public function serve()
    {
        Log::info('request arrived.'); # 注意:Log 为 Laravel 组件,所以它记的日志去 Laravel 日志看,而不是 EasyWeChat 日志

        $app = app('wechat.official_account');
        $app->server->push(function($message){
            case 'event':
                    switch ($message['Event']) {
                        case 'subscribe':  //关注事件, 扫描带参数二维码事件(用户未关注时,进行关注后的事件推送)
                            return "hello everyone!";
                            break;
                        case 'unsubscribe':  //取消关注事件
                            break;
                        case 'SCAN':  //扫描带参数二维码事件(用户已关注时的事件推送)
							$obj = new SCAN(); //处理扫码相关业务逻辑
							$info = $obj -> index($message);
							Log::info($info);
                            return $info;
                            break;
                        default:
                            return $message['Event'];
                            break;
                    }
					break;
        });

        return $app->server->serve();
    }
}

业务模块并推送模版消息


<?php

namespace App\Model;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class SCAN extends Model
{
    //扫码
	public function index($message){
		$openid = $message['FromUserName'];
		$evenkey = $message['EvenTKEy'];
		$preg = '/^aaa-/';
		preg_match_all($preg,$evenkey,$evenkey_arr);
		if(!empty($evenkey_arr[0])){
			$new_evenkey = $evenkey_arr[0][0];
			$reg = "/^$new_evenkey/";
			$evenkey = trim(preg_replace($reg, ' ', $evenkey));
			if($new_evenkey == "aaa-"){  //生成二维码时所传人的参数
				$this -> operation($evenkey,$openid);
			}
		}else{
			return;
		}
	}

    
    public function operation($evenkey,$openid)
    {
       //此处省略业务逻辑 根据一个状态判断 大家直接套用就好
       $status = 1;
       if($status == 1){
           $this->success($openid);
       }else{
           $this->error($openid);
       }
    }


    
	public function success($openid){
		$app = app('wechat.official_account');

        //这里可以填写您选择的公众号中模版消息的模版id
        $template_id = '';  
        
        //$data是模版中的详细内容 按照微信中的内容进行填写 下面只是一个例子
		$data = array(
            "first"  => '',
            "keyWord1"   => '',
            "keyword2"  => '',
			"keyword3"  => date('Y-m-d H:i'),
			"keyword4" => '',
            "remark" => ''
        );

        //最后发送的信息
		$info = [
			'touser' => $openid,
			'template_id' => $template_id,
			'url' => '',
			'data' => $data,
		];

		return $app -> template_message ->send($info);
	}


    
	public function error($openid){
		$app = app('wechat.official_account');

        //这里可以填写您选择的公众号中模版消息的模版id
        $template_id = '';  
        
        //$data是模版中的详细内容 按照微信中的内容进行填写 下面只是一个例子
		$data = array(
            "first"  => '',
            "keyword1"   => '',
            "keyword2"  => '',
			"keyword3"  => date('Y-m-d H:i'),
			"keyword4" => '',
            "remark" => ''
        );

        //最后发送的信息
		$info = [
			'touser' => $openid,
			'template_id' => $template_id,
			'url' => '',
			'data' => $data,
		];

		return $app -> template_message ->send($info);
	}
}

以上是我的使用心得 谢谢大家!

到此这篇关于php+laravel 扫码二维码签到功能的文章就介绍到这了,更多相关php二维码签到内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: php+laravel 扫码二维码签到功能

本文链接: https://lsjlt.com/news/126064.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php+laravel 扫码二维码签到功能
    简介 为满足公司签到业务场景 最终敲定使用微信二维码来实现 微信公众号相关配置 在微信公众平台登陆上去后,点开开发中的基本配置看到的基本信息 框架及拓展包 laravel ov...
    99+
    2024-04-02
  • 怎么在php中使用laravel 实现一个二维码签到功能
    怎么在php中使用laravel 实现一个二维码签到功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。框架及拓展包laravelovertrue/laravel-wechat&...
    99+
    2023-06-15
  • Flutter实现扫二维码功能
    本文实例为大家分享了Flutter实现扫二维码功能的具体代码,供大家参考,具体内容如下 首先在pubspec.yaml中添加: dependencies:   qrscan: ^0....
    99+
    2024-04-02
  • vue实现二维码扫码功能(带样式)
    需求: 利用vue实现二维码扫描; 插件: QRCodeReader; 插件下载 npm install --save vue-qrcode-reader 注意: 需要在https协...
    99+
    2024-04-02
  • Flutter如何实现扫二维码功能
    这篇文章主要为大家展示了“Flutter如何实现扫二维码功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flutter如何实现扫二维码功能”这篇文章吧。具体内容如下首先在pubspec.yam...
    99+
    2023-06-29
  • 通过vue方式实现二维码扫码功能
    提示 这个插件只能在https协议下才能访问,http协议不好使,最好用vue2,vue3容易报错!!!!! 描述 通过vue的方式,实现扫码功能 参考文档:vue-qrcode-r...
    99+
    2024-04-02
  • PHP laravel 生成二维码
      php laravel框架生成二维码_51CTO博客_php laravel框架  参考 一、配置 1.在项目根目录输入命令 composer require simplesoftwareio/simple-qrcode 1.3.* ...
    99+
    2023-09-02
    php laravel 开发语言
  • iOS 二维码扫描相关功能实现
    写在前面 最近项目要实现相机扫描二维码功能,具体要求:1、扫描框 2、扫描动画 3、相册识别二维码 4、声音反馈。 记得之前用过三方库做过类似功能,但是也是知其然不知其所以然,然后今...
    99+
    2022-06-04
    iOS 二维码 扫描
  • H5如何制作二维码扫描功能
    这篇文章主要为大家展示了“H5如何制作二维码扫描功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“H5如何制作二维码扫描功能”这篇文章吧。引子: 最近公司项目有...
    99+
    2024-04-02
  • jQuery如何实现二维码扫描功能
    这篇文章主要介绍了jQuery如何实现二维码扫描功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。二维码:利用图形模拟二进制0、1的概念,达...
    99+
    2024-04-02
  • flutter开发实战-flutter二维码条形码扫一扫功能实现
    flutter开发实战-flutter二维码条形码扫一扫功能实现 flutter开发实战-flutter二维码扫一扫功能实现,要使用到摄像头的原生的功能,使用的是插件:scan 效果图如下 一、扫一...
    99+
    2023-09-02
    flutter 扫一扫 二维码 条形码
  • Android | 教你如何开发扫二维码功能
    目录前言官网的Demo和Sample代码体验1 开发准备1.1 android studio 安装1.2 在项目级gradle里添加华为mave...
    99+
    2022-06-06
    二维 二维码 Android
  • Android中的二维码生成与扫描功能
    0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描。本篇旨在帮助...
    99+
    2022-06-06
    二维 二维码 Android
  • 基于barcodescanner实现Android二维码扫描功能
    二维码扫描现在成为一种非常常见的APP基础功能,附录1是我曾经用过的二维码/条形码扫描开源项目,但是附录1的项目集成和二次定制比较繁琐和麻烦,因此可以发现不少人基于ZXing做了二次的开发,并贡献出这些项目,发到github上,其中barc...
    99+
    2023-05-30
    android 二维码 barcodescanner
  • Android中怎么实现二维码扫描功能
    这期内容当中小编将会给大家带来有关Android中怎么实现二维码扫描功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 开发准备1.1 android studio 安装&emsp;&e...
    99+
    2023-06-04
  • 如何通过vue方式实现二维码扫码功能
    这篇文章主要为大家展示了“如何通过vue方式实现二维码扫码功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何通过vue方式实现二维码扫码功能”这篇文章吧。提示这个插件只能在https协议下才...
    99+
    2023-06-25
  • 如何使用HTML5实现二维码扫描功能
    本篇内容介绍了“如何使用HTML5实现二维码扫描功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
    99+
    2024-04-02
  • PHP教程:如何在容器中实现二维码扫描功能?
    二维码扫描功能已经成为现代社会中非常常见的一种功能,它的应用场景也越来越广泛。而在开发中,我们经常需要在应用程序中加入二维码扫描功能。本文将介绍如何在容器中实现二维码扫描功能。 一、准备工作 在开始之前,我们需要准备一些东西: 安装 D...
    99+
    2023-07-09
    教程 二维码 容器
  • Angular.js实现扫码枪扫码并生成二维码
    目录前言扫码枪扫码生成二维码前言 举个例子: 商品都有自己的序列号 SN。那么当我们将这些商品打包的时候,我们就需要生成一份商品的 SN 清单,将其贴在箱子的表面以查看。但是冗长的...
    99+
    2023-03-08
    Angular.js生成二维码 Angular.js扫码枪扫码
  • PHP开发点餐系统的二维码扫码功能实现方法是什么?
    PHP开发点餐系统的二维码扫码功能实现方法是什么?随着移动支付的普及,在餐饮行业中,二维码扫码点餐的方式越来越受欢迎。利用二维码扫码点餐,不仅能提高用户点餐的效率,还能减少人员成本,提升客户体验。那么在PHP开发点餐系统中,如何实现二维码扫...
    99+
    2023-11-01
    PHP开发 点餐系统 二维码扫码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作