首页 > 作文

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

更新时间:2023-04-09 03:05:14 阅读: 评论:0

简介

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

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

框架及拓展包

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

详细了解请看:

配置文件及对应信息

config/wechat.php/*     * 公众号     */    'official_account' => [        'default' => [            'app_id'  => env('wechat_official_account_appid', 'your-app-id'),         // appid            'cret'  => env('wechat_official_account_cret', 'your-app-cret'),    // appcret            'token'   => env('wechat_official_account_token', 'your-token'),           // token            'aes_key' => env('wechat_official_account_aes_key', ''),                 // encodingaeskey        ],    ],

生成二维码

<?phpnamespace app\model\wechat;u illuminate\databa\eloquent\model;class qrcode extends model{private static $app;public function __construct(){    lf::$app = app('wechat.official_account');}    /**     * @title 生成临时二维码     * @param $action_info     * @param float|int $expire_conds     * @return $result     * @return $result[ticket]  获取的二维码ticket,凭借此ticket可以在有效时间内换取二维码。     * @return $result[expire_conds]  该二维码有效时间,以秒为单位。 最大不超过2592000(即30天)     * @return $result[url]  二维码图片解析后的地址,开发者可根据该地址自行生成需要的二维码图片     * @return $result[url1]  通过ticket换取二维码后地址     */public function temporary($action_info,$expire_conds = 30*24*60*60稳稳的幸福歌词){    $result =  lf::$app->qrcode->temporary($action_info, $expire_conds);$ticket = $result['ticket'];$url = $this -> qrcode_url($ticket);$result['url1'] = $url;$result['action_info'] = $action_info;return $result;}    /**     * @title 生成永久二维码     * @param $action_info     * @return $result     * @return $result[ticket] 获取的二维码ticket,凭借此ticket可以在有效时间内换取二维码     * @return $result[expire_conds] 该二维码有效时间,以秒为单位。 最大不超过2592000(即30天)     * @return $result[url] 二维码图片解析后的地址,开发者可根据该地址自行生成需要的二维码图片     * @return $result[url1] 通过ticket换取二维码后地址     */public function forever($acti7 14是什么节日on_info){    $result =  lf::$app->qrcode->forever($action_info);$ticket = $result['ticket'];$url = $this -> qrcode_url($ticket);$result['url1'] = $url;$result['action_info'] = $action_info;return $result;}    /**     * @title 获取二维码url     * @param $ticket     * @return $url 二维码url     */public function qrcode_url($ticket){$url = lf::$app->qrcode->url($ticket);return $url;}}

实现一个简单的推送

<?phpnamespace app\http\controllers;u app\http\controllers\controller;u illuminate\support\facades\log;class wechatcontroller extends controller{    /**     * 处理微信的请求消息     *     * @return string     */    public function rve()    {        log::info('request arrived.'); # 注意:log 为 laravel 组件,所以它记的日志去 laravel 日志看,而不是 easywechat 日志        $app = app('wechat.official_account');        $app->rver->push(function($message){            return "hello everyone!";    马剑琴    });        return $app->rver->rve();    }}

处理事件

<?phpnamespace app\http\controllers;u app\http\controllers\controller;u illuminate\support风景的文案\facades\log;u illuminate\http\request;u app\model\scan;class wechatcontroller extends controller{    /**     * 处理微信的请求消息     *统计联网直报平台官网     * @return string     */    public function rve()    {        log::info('request arrived.'); # 注意:log 为 laravel 组件,所以它记的日志去 laravel 日志看,而不是 easywechat 日志        $app = app('wechat.official_account');        $app->rver->push(function($message){            ca 'event':                    switch ($message['event']) {                        ca 'subscribe':  //关注事件, 扫描带参数二维码事件(用户未关注时,进行关注后的事件推送)                            return "hello everyone!";                            break;                        ca 'unsubscribe':  //取消关注事件                            break;                        ca 'scan':  //扫描带参数二维码事件(用户已关注时的事件推送)$obj = new scan(); //处理扫码相关业务逻辑$info = $obj -> index($message);log::info($info);                            return $info;                            break;                        default:                            return $message['event'];                            break;                    }break;        });        return $app->rver->rve();    }}

业务模块并推送模版消息

<?phpnamespace app\model;u illuminate\databa\eloquent\model;u illuminate\support\facades\db;class scan extends model{    //扫码public function index($message){$openid = $message['fromurname'];$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);}}el{return;}}    /**    * @param evenkey 参数    * @param openid 要向哪个用户推送信息    */    public function operation($evenkey,$openid)    {       //此处省略业务逻辑 根据一个状态判断 大家直接套用就好       $status = 1;       if($status == 1){           $this->success($openid);       }el{           $this->error($openid);       }    }    /**    * @title 扫码成功    * @param openid 用户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 = ['tour' => $openid,'template_id' => $template_id,'url' => '','data' => $data,];return $app -> template_message ->nd($info);}    /**    * @title 扫码失败    * @param openid 用户openid    */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 = ['tour' => $openid,'template_id' => $template_id,'url' => '','data' => $data,];return $app -> template_message ->nd($info);}}

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

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

本文发布于:2023-04-09 03:05:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/8c632542778c4b209736bdec54c7f4d4.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php+laravel 扫码二维码签到功能.doc

本文 PDF 下载地址:php+laravel 扫码二维码签到功能.pdf

标签:二维码   模版   事件   地址
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图