栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

微信场景值二维码生成及扫码关注回复

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

微信场景值二维码生成及扫码关注回复

鉴于之前在网上一直没有搜索到关于这块的内容,经过实际,特写此文章,仅供参考,如有错误,
敬请提出!
本次采用的 是一个开源的 微信 非官方 SDK(EasyWeChat),相关文档内容参考链接:
https://www.easywechat.com/docs/master

1.根据需要配置微信信息
public function __construct()
{
    $this->options = [
        'debug' => true,
        'app_id' => Config::get('mp')['app_id'],
        'secret' => Config::get('mp')['secret'],
        'token' => Config::get('mp')['token'],
        'aes_key' => Config::get('mp')['aes_key'],
        'log' => [
            'level' => 'debug',
            'file' => '/tmp/easywechat.log',
        ],
    ];
}
2.生成二维码
a.临时二维码
//$id 为场景值,也可是参数
public function getTimeQrCode($id)
{
    //1.获取ticket
    $app = new Application($this->options);
    $result = $app->qrcode->temporary($id, 6 * 24 * 3600);
    $url = $app->qrcode->url($result['ticket']);
    return $url;
}
b.永久二维码
//$id 为场景值,也可是参数
public function getForeverQrCode($id)
{
    //1.获取ticket
    $app = new Application($this->options);
    $result = $app->qrcode->forever($id);
    $url = $app->qrcode->url($result['ticket']);
    return $url;
}

3.编写扫码关注事件(还有其它事件,暂不一样列举)
及再次扫码后微信回调的相关数据,都是推送到该服务器的地址,以下是进行图文回复的设置
public function server()
{
    //扫码关注参数
    $postArr = file_get_contents("php://input");
    //防止sql注入
    libxml_disable_entity_loader('true');
    $postObj = simplexml_load_string($postArr, 'SimpleXMLElement', LIBXML_NOCDATA);
    $log_model = new Data('kqLog');
    $log['msg'] = $postArr;
    $log['add_up_time'] = date('Y-m-d H:i:s', time());
    $log_model->insertData($log);
    $msg_type = $postObj->MsgType;
    $app = new Application($this->options);
    if ($msg_type == 'event') {
        if (strtolower($postObj->Event) == 'subscribe') {//关注事件
            $app->server->setMessageHandler(function ($message) {
                $messageArray = json_decode($message, true);
                $log_model = new Data('kqLog');
                $log['msg'] = $message;
                $log['add_up_time'] = date('Y-m-d H:i:s', time());
                $log_model->insertData($log);
                $scene_id = substr($messageArray['EventKey'],8);
                $meeting_model = new Data('kqConference');
                $meeting = $meeting_model->find(['id' => $scene_id], 'id,name,start_datetime');
                $items = array(
                    'title' => $meeting['name'].'报名入口,点击进入',//标题
                    'description' => '',//描述
                    'url' => 'http://xxx.com/index/paymentList', ['id' => $scene_id]),//图文跳转地址
                    'image' => 'http://xxx.com/static/index/query_new/meet.png'//图片地址
                );
                $news = new News($items);
                return $news;
            });
            $response = $app->server->serve();
            $response->send();
        } elseif(strtolower($postObj->Event) == 'scan') {//扫码事件
            $app->server->setMessageHandler(function ($message) {
                $messageArray = json_decode($message, true);
                $log_model = new Data('kqLog');
                $log['msg'] = $message;
                $log['add_up_time'] = date('Y-m-d H:i:s', time());
                $log_model->insertData($log);
                $scene_id = $messageArray['EventKey'];
                $meeting_model = new Data('kqConference');
                $meeting = $meeting_model->find(['id' => $scene_id], 'id,name,start_datetime');
                $items = array(
                    'title' => $meeting['name'].'报名入口,点击进入',
                    'description' => '',
                    'url' => 'http://' . $_SERVER['HTTP_HOST'] . url('index/html5/paymentList', ['id' => $scene_id]),
                    'image' =>'http://xxx.com/static/index/query_new/meet.png'
                );
                $news = new News($items);
                return $news;
            });
            $response = $app->server->serve();
            $response->send();
        }
    }
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/227202.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号