PHP开发微信被动回复消息遇到的大坑

最近开始做CMS后台与微信公众号的整合,在做被动回复消息时,按照官方文档的XML格式回复消息,总是提示“该公众号提供的服务出现故障,请稍后再试”。但是通过微信提供的接口调试工具看我的接口貌似也没什么问题,给出的提示也是请求成功。

最后认真学习了其它网友的方案,才发现官方文档上提供的XML格式有问题,稍微修改后就可以正常的收到自定义的被动消息回复了,如果有和我类似情况的朋友,一定要注意下面XML格式啊。

我的后台是PHP,核心代码很简单。

    $HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : file_get_contents("php://input");
    $post_obj = simplexml_load_string($HTTP_RAW_POST_DATA, 'SimpleXMLElement', LIBXML_NOCDATA);

    $msg_type = $post_obj->MsgType;

    switch ($msg_type) {
        case 'text':
            $keyword = trim($post_obj->Content);
            $msg_tpl = '<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>';
            $result =  sprintf($msg_tpl,$post_obj->FromUserName, $post_obj->ToUserName, time(), '欢迎访问大江小浪!');
            echo $result;
            return;
            break;
        
        default:
            # code...
            break;
    }

下面是能够正常回复的效果。

本文为作者原创。

参考资料: 1、微信公众平台 被动回复消息 2、php版微信开发之接收消息,自动判断及回复相应消息的方法 3、微信开发被动回复消息:该公众号暂时无法提供服务,请稍后再试 4、微信被动回复用户消息

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WeTest质量开放平台团队的专栏

【长文干货】浅析分布式系统

我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ、微信、淘宝。那么,一个互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一...

12920
来自专栏李俊飞的专栏

数据库性能评测:整体性能对比

随着版本升级,关系型数据库和缓存数据库整体性能比之前都有大幅度的提升,衡量数据库性能的三个重要指标是:数据库吞吐量(QPS)、延迟时长(Latency)和稳定性...

3.6K00
来自专栏人人都是极客

聊聊Linux IO(下)

广义上Cache的同步方式有两种,即Write Through(写穿)和Write back(写回). 从名字上就能看出这两种方式都是从写操作的不同处理方式引出...

42910
来自专栏Crossin的编程教室

微信机器人进化指南

听说阿尔法狗又要挑战柯杰了。时至今日,人工智能不断刷新我们对这个世界的理解。或许再过不久,你真的不知道跟你在网上聊天的对象还是不是一个“人”,也不知道自己的工作...

80770
来自专栏mySoul

测试用例概念 原则

测试用例为一组条件或变量,根据其来确定应用软件是否能够正常的工作。其条件和变量为测试用例。

13720
来自专栏微信公众号:Java团长

分布式与集群的区别

简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

16210
来自专栏deed博客

Android手机批量删除和添加.nomedia文件

26030
来自专栏java工会

如何恢复oracle中误删除表(drop掉的)?

以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 ― 当然是意外地删除 ― 并需要尽快地恢复。(在某些时候,这个不幸的用户可能就是 DBA!)

8730
来自专栏Web 开发

额,算是半个轻量级WEB开发软件-WebMatirx

Microsoft WebMatrix 是微软最新的 Web 开发工具,它包含了构建网站所需要的一切元素。您可以从开源 Web 项目或者内置的 Web 模板开始...

7310
来自专栏Crossin的编程教室

一键下载:将知乎专栏导出成电子书

老是有同学问,学了 Python 基础后不知道可以做点什么来提高。今天就再用个小例子,给大家讲讲,通过 Python 和爬虫,可以完成怎样的小工具。

31710

扫码关注云+社区

领取腾讯云代金券