IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> php微信公众号扫描二维码关注后自动回复 -> 正文阅读

[PHP知识库]php微信公众号扫描二维码关注后自动回复

一:前往微信公众平台基本配置,配置服务器配置
在这里插入图片描述
二:服务器地址URL要对应控制器中的方法

	public function valid(){
        $xml_str = file_get_contents("php://input");
        //如果不知道扫码进来是个什么东西,那就存数据库(或日志看看)
        //Db::name('aaaa')->insert(['content'=>$xml_str]);
        $xml = (array)simplexml_load_string($xml_str,"SimpleXMLElement",LIBXML_NOCDATA);
        //判断是否首次关注
        if ($xml['MsgType'] == 'event')
        {
            if ($xml['Event'] == 'subscribe')
            {
                if(empty($xml['EventKey'])){
                    $res = new Wechattwo();
                    $a = $res -> getUserMessage($xml['FromUserName'],0);//获取用户信息的方法
                    if($a){
                        $msg = '感谢关注';
                    }
                }else{
                    $uid = str_replace('qrscene_','',$xml['EventKey']);
                    $res = new Wechattwo();
                    $a = $res -> getUserMessage($xml['FromUserName'],$uid);//获取用户信息的方法
                    if($a){
                        $msg = '已经关注过了';
                    }
                }
                echo $this->sendText($msg,$xml);
                die;
            }
            if ($xml['Event'] == 'unsubscribe')
            {
                echo "取消关注";die;
            }
        }
    }

三:扫描二维码(我生成的是静态二维码)直接通过app_id 和 app_secret 获取(没有获取code)

//获取accesstoken
	public function getToken($appid,$appsecret){
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $appsecret;
        $token = $this->http_curl($url, 'get');
        $access_token = $token['access_token'];
        return $access_token;
    }
    /**
     * @param $accesstoken  token
     * @param $uid 我给二维码传的参数
     * @return string
     */
    public function qrCode($accesstoken,$uid){

        $u = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" . $accesstoken;
        $param = array();
        $param['action_name'] = "QR_LIMIT_SCENE";
        $param['action_info'] = array('scene' => array('scene_id' => $uid));
        $param = json_encode($param);

        // 返回二维码的ticket和二维码图片解析地址
        $res = $this->http_curl($u, 'post', 'json', $param);

        // 通过ticket换取二维码
        $qrcode = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . $res['ticket'];

        return $qrcode;
    }

附加:这个是curl接口代码

	/*
         * $url  curl要抓取数据地址
         * $type curl抓取数据的类型 是post类型还是get类型
         * $res  抓取完成后,返回的数据类型 默认为json
         * $arr  如果是post类型 需要给post类型传递数据,数据是json形式的
        */
    public function http_curl($url, $type = 'get', $res = 'json', $arr = '')
    {
        //初始化curl
        $ch = curl_init();
        //设置curl的参数
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        //判断传递数据是什么类型 get还是post
        if ($type == 'post') {
            //是否开启post传递
            curl_setopt($ch, CURLOPT_POST, 1);
            //传递数据 $arr是在post方式中要传递的数据 是json形式的
            curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);
        }
        //采集数据 因为get根本不需要上面 那2行代码 所以 type=get的话直接就可以采集了
        $output = curl_exec($ch);
        //判断返回信息的类型 默认为json
        if ($res == 'json') {
            if (curl_errno($ch)) {
                //请求失败 返回错误信息
                return curl_error($ch);
            } else {
                //请求成功
                return json_decode($output, true);//curl抓取的返回值 然后返回数组形式
            }
        }
        //关闭curl
        curl_close($ch);
    }

这样扫描二维码就直接进入公众号关注页面了。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:25:23  更:2021-08-23 16:26:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:36:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码