PHP对接微信公众号实现简单自动回复[PHP教程]

功能比较简单,当用户在公众号下留言,将留言的关键词带到数据库查询并返回查询结果。
反正是以比较简单的代码做的,代码运行环境随便可以运行PHP就行。
<!DOCTYPE html>
<html>
<body>
    <head>
    <meta charset="utf-8">
    </head>
 
<?php
require_once "defs.php";
function index()
        {
 
 
                $timestamp = $_GET['timestamp'];
                $nonce = $_GET['nonce'];
                $token = 'hongming';                          //公众号里面配置的token
                $signature = $_GET['signature'];
                $echostr = $_GET['echostr'];                //每一次都要验证, 只有第一次验证才会有 echostr
                $array = array( $timestamp, $nonce, $token);
                sort( $array );
                 
                //2.将排序后的三个参数拼接之后用sha1加密
                $tempstr = implode('', $array);
                $tempstr = sha1( $tempstr );
                 
                //3.将加密后的字符串与signature进行对比,判断该请求是否来自微信
                if( $tempstr == $signature && $echostr){       //启动服务器配置 会进入到这里
                        echo $_GET['echostr'];
                        exit();
                }else{
                        reponseMsg();                               //这里是   启用成功后, 接受事件用的
                }
 
 
}
 
function reponseMsg(){
            
                $postStr = file_get_contents("php://input");
               //根据事件,进行自己的逻辑代码吧    请开始你的表演
                if (!empty($postStr)){
 
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
 
            $fromUsername = $postObj->FromUserName;
 
            $toUsername = $postObj->ToUserName;
            
            $msgtype = $postObj->MsgType;
 
            $keyword = trim($postObj->Content);
 
            $time = time();
 
            $textTpl = "<xml>
 
            <ToUserName><![CDATA[%s]]></ToUserName>
 
            <FromUserName><![CDATA[%s]]></FromUserName>
 
            <CreateTime>%s</CreateTime>
 
            <MsgType><![CDATA[%s]]></MsgType>
 
            <Content><![CDATA[%s]]></Content>
 
            <FuncFlag>0<FuncFlag>
 
            </xml>";
             
 
            if(!empty( $keyword ) & $msgtype == "text")      //文本判断
 
            {
 
                $msgType = "text";
 
                $contentStr = sousuo($keyword);
 
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
 
                echo $resultStr;
 
            }
            if($msgtype=='event'){                         // 关注判断
                $msgType = "text";
 
                $contentStr = "感谢您的关注!";
 
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
 
                echo $resultStr;
            }
            else                     // 其他类型消息判断
            {
                 
                $msgType = "text";
 
                $contentStr = "回复关键词可以查询影视资源哦!";
 
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
 
                echo $resultStr;
            }
 
        }
                
                
       }
 
      
 
index();
 
 
          
?>
 
</body
</html>

 其他的可以去看看官方的开发文档。

PHP对接微信公众号实现简单自动回复[PHP教程]-度崩网-几度崩溃

 

给TA打赏
共{{data.count}}人
人已打赏
Java

以下语句是否会使用索引?

2020-7-31 5:58:20

PHP

[调试逆向] PHP解密:zym加密 带乱码调试过程

2019-12-17 17:51:15

本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策。若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
⚠️
本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策
若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索