千家信息网

微信公众平台消息接口开发从Hello2BizUser文本到subscribe事件的示例分析

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要介绍了微信公众平台消息接口开发从Hello2BizUser文本到subscribe事件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带
千家信息网最后更新 2025年11月10日微信公众平台消息接口开发从Hello2BizUser文本到subscribe事件的示例分析

这篇文章主要介绍了微信公众平台消息接口开发从Hello2BizUser文本到subscribe事件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、Hello2BizUser旧事件的处理

在老的关注事件中,用户关注微信公众平台账号后,系统会帮用户发送一条Hello2BizUser的文本给公众账号,公众账号后台开发模式下通过判断Hello2BizUser这个词来实现发送欢迎词。

代码样例如下:

if ($keyword == "Hello2BizUser"){    $contentStr = "";    $resultStr = $this->transmitText($object, $contentStr, $funcFlag);    return $resultStr;}

做出基础接口上的修改,影响会是所有人。一般不会轻易做这样的改动。

为什么微信要修改这一事件了,这个方法的弊端在于,如果用户没有判断这一事件,那么就不会有欢迎词,本来这也没什么关系,不出现欢迎词也不影响什么。但很多人的程序代码里面,所有流程直接就是判断关键词。比如我们曾看到过一家医院的微信账号,用户发送挂号的号码,就显示前面有多少人排列,但后台程序没有做区分,把Hello2BizUser也当成挂号单发送过去,返回没有找到Hello2BizUser这一挂号,不知道前面有多少人,搞得用户莫名奇妙。还有就是用户如果主动发送一个Hello2BizUser过去,那么得到的也是和欢迎词一样的内容,虽然很少有用户会去发这个东西。

另一方面,将用户关注做成事件,更有利于统计功能的实现。利用这个事件,我们就更能容易的判断出关注人数和退订人数,而原来的Hello2BizUser文本推送判断是有可能不准确的,因为用户可以手工发送,形成虚假关注统计。

二、"subscribe"订阅事件判断

subscribe是一种新的事件,我们先需要做事件类型做判断,我们在官方样例中增加对这一事件的判断,修改如下:

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$RX_TYPE = trim($postObj->MsgType);switch ($RX_TYPE){    case "text":        $resultStr = $this->receiveText($postObj);        break;    case "event":        $resultStr = $this->receiveEvent($postObj);        break;    default:        $resultStr = "unknow msg type: ".$RX_TYPE;        break;}

然后在事件接收处理函数中再判断订阅事件 :

private function receiveEvent($object){    $contentStr = "";    switch ($object->Event)    {        case "subscribe":            $contentStr = "您好,欢迎关注方倍工作室。新感觉,新体验!";            break;    }    $resultStr = $this->transmitText($object, $contentStr);    return $resultStr;}

这样就完成了"subscribe"的订阅事件下的处理。

二、完整代码

responseMsg();class wechatCallbackapiTest{    public function responseMsg()    {        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];        if (!empty($postStr)){            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);            $RX_TYPE = trim($postObj->MsgType);            switch ($RX_TYPE)            {                case "text":                    $resultStr = $this->receiveText($postObj);                    break;                case "event":                    $resultStr = $this->receiveEvent($postObj);                    break;                default:                    $resultStr = "unknow msg type: ".$RX_TYPE;                    break;            }            echo $resultStr;        }else {            echo "";            exit;        }    }    private function receiveText($object)    {        $funcFlag = 0;        $keyword = trim($object->Content);        $resultStr = "";        $cityArray = array();        $contentStr = "";        $needArray = false;        $illegal = false;        $saytome = false;                if ($keyword == "Hello2BizUser"){            $contentStr = "欢迎关注方倍工作室,这其实是老的欢迎词,你关注时收不到了";            $resultStr = $this->transmitText($object, $contentStr, $funcFlag);            return $resultStr;        }else {                }    }    private function receiveEvent($object)    {        $contentStr = "";        switch ($object->Event)        {            case "subscribe":                $contentStr = "您好,欢迎关注方倍工作室。新感觉,新体验!";                break;        }        $resultStr = $this->transmitText($object, $contentStr);        return $resultStr;    }        private function transmitText($object, $content, $flag = 0)    {        $textTpl = "%s%d";        $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);        return $resultStr;    }}?>

感谢你能够认真阅读完这篇文章,希望小编分享的"微信公众平台消息接口开发从Hello2BizUser文本到subscribe事件的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

事件 用户 公众 欢迎词 文本 篇文章 账号 平台 接口 开发 代码 工作室 处理 工作 订阅 消息 示例 分析 您好 人数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 sql批量更新文件数据库 中兴做网络安全的部门 mysql数据库还原命令 软件开发人员笔试试题 电子邮箱系统数据库设计 创造与魔法选择哪个服务器能玩久 软件开发企业毛利 安全华为云云数据库哪家便宜 大数据网络技术开发机构 软件开发前端后端什么意思 报告网络安全相关报告 和平精英国际服上的服务器怎样 不发生重大网络安全事件 公司软件开发能力说明 计算机网络技术 电子教案 网络安全教育视频第二课 换服务器需要备份什么东西 vb 随机数据库 互联网金融科技新规 南宁市信息网络安全协会王胜军 万方数据库官网入口学术猫 恩牛网络技术 部门设置 个人服务器架设与管理 服务器租用如何提升安全性 论坛网络安全 出国人员培训大数据库 升凯网络技术有限公司怎么样 行业网络安全应急队伍建设 怎么加入网络安全大赛 lol服务器ms不一样
0