关于微信接入第三方域名进行业务开发的相关说明已在另外一篇做了说明,这里不做赘述,接入步骤请移步

https://blog.csdn.net/qq_43638176/article/details/88915436

本篇示范微信交互过程中的几个基础事件,主要判断标准参数为$postObj->MsgType,分别介绍当用户对公众号上传一个图片,回复一个文本以及关注事件的几个推送,其他诸如音乐回复将在下一篇做总结。

可以查看官方文档:

接受普通消息:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453

被动回复:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543

具体代码实现:

<?phpnamespace app\index\controller;
use think\Controller;
use think\Request;header("Content-type: text/html; charset=utf-8");
define("TOKEN","token");//定义识别码 需要跟微信公众平台上保持一致
class Blog extends Controller
{public function index(){$this->valid(); }//微信验证public function valid(){ $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; exit; } } //检查微信签名private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];    $token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}public function responseMsg(){$poststr = file_get_contents('php://input'); //如果推送消息 或者推送事件存在,进行处理if(!empty($poststr)){libxml_disable_entity_loader(true);$postObj = simplexml_load_string($poststr, 'SimpleXMLElement', LIBXML_NOCDATA);$msgType = $postObj->MsgType;//判断事件类型,进行对应事件类型处理switch ($msgType) {//当回复公众号时case 'text':$resultStr =  $this->handleText($postObj);break;case 'image':$resultStr =  $this->handleImage($postObj);break;case 'voice':$resultStr =  $this->handleVoice($postObj);break;case 'video':$resultStr =  $this->handleVideo($postObj);break;case 'shortvideo':$resultStr =  $this->handleShortVideo($postObj);break;case 'location':$resultStr =  $this->handleLocation($postObj);break;case 'link':$resultStr =  $this->handleLink($postObj);break;case 'event':$resultStr =  $this->handleEvent($postObj);break;default:$resultStr =  "Unknow msg type: ".$msgType;break;}return $resultStr;}}////回复消息public function handleText($postObj){$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$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";$contentStr = "Welcome to wechat world!";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}else{echo "Input something...";}}
}

tp5微信公众号开发(2) ---- 微信被动回复,图文回复,图片回复等 demo实例相关推荐

  1. 视频教程-基于python的微信公众号开发教程-微信开发

    基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...

  2. 微信公众 mysql回复图片_微信公众号开发之微信公共平台消息回复类实例

    本文实例讲述了微信公众号开发之微信公共平台消息回复类.分享给大家供大家参考.具体如下: 微信公众号开发代码我在网上看到了有不少,其实都是大同小义了都是参考官方给出的demo文件进行修改的,这里就给各位 ...

  3. 微信公众号开发之微信公众平台与公众号第三方平台区别

    微信公众号开发分为微信公众平台和公众号第三方平台. 首先需要一个认证服务号,然后在设置,基本配置里面配置公众号开发信息和服务器配置. 这是我们会得到开发者ID(AppID),开发者密码(AppSecr ...

  4. ThinkPHP5.0微信公众号开发之 微信公众号接入

    ThinkPHP5.0 微信公众号接入 第一步:准备工作 首先,要有自己的公众号(这句是废话),个人可以申请微信公众号的订阅号,企业才可以申请服务号,其次要有云空间或者服务器,并且将服务器IP添加至微 ...

  5. php获取微信收款记录,微信公众号开发之微信支付代码记录的实现

    需求说明 这个需求说明是完全没有必要的,但是还是写一下吧,但凡是做公众号的,一般都是需要了解这个微信支付的,不然基本的业务都没办法走,所以今天简单的记录一下微信支付的一些问题以及流程是怎么样的.记录的 ...

  6. 微信公众号开发之微信买单

    微信开发交流群:148540125 欢迎留言.转发.打赏 微信极速开发系列文章:http://www.jianshu.com/p/a172a1b69fdd 首先来看看微信支付都有哪些产品 此篇文章聊聊 ...

  7. Java微信公众号开发之微信素材管理工具类

    1.前言 微信公众号在使用接口的时候是通过传入media_id来进行调用的,所以在使用的接口的时候我们往往需要先上传素材,然后拿到微信返回给我们的media_id去调用相关接口,素材管理分为临时素材和 ...

  8. 微信公众号开发,微信支付功能开发(网页JSAPI调用)

    1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...

  9. Java微信公众号开发之微信公众平台接入开发者

    微信开发者接入官方文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 一.微信公共号通讯机制 作为开发 ...

  10. 微信公众号开发 (1) 微信接入认证成为开发者

    一.前言 本系列教程将基于springboot2.1.8.RELEASE完成 本文将实现 注册账号 接入微信 认证成为开发者 二.进入微信公众平台注册账号 https://mp.weixin.qq.c ...

最新文章

  1. docker容器运行mysql持久化_docker容器实现数据持久化的两种方式及其区别
  2. webpack教程(一)
  3. 如何绕过浏览器的弹窗拦截机制
  4. SAP CRM Fiori My Appointment应用里点了Edit按钮后三个Roundtrip分析
  5. Idea搭建一个JavaWeb项目(一)
  6. Ubuntu12.04password正确 入口的桌面(测试的恢复正常)
  7. java双向链表结构_【Java数据结构】2.3双向链表的迭代实现
  8. php如何做支付,php实现银联支付
  9. java 爬虫 抓取 网易云音乐
  10. 如何做一个淘宝客(前期为自己省钱)
  11. lammps教程:Ovito中多晶不同颜色显示技巧
  12. 库缓存(Library Cache)内存结构
  13. html页面保存为图片不显示,有效保存Html页面为图片格式的详细方法
  14. 解决 Web、软件 视频播放黑屏
  15. 定时备份网站数据文件到阿里网盘
  16. CEF3 C++接口实现自定义浏览器[simple version]
  17. CAN bus的移植
  18. 串口调试助手使用说明
  19. Web变灰-grayscale
  20. 可信、安全、稳定构建金融科技新局面

热门文章

  1. 【3】SALSA-基于HIC数据辅助组装长读长组装结果
  2. 后端工作中遇到的问题总结(一)
  3. Ioc之Bean基础
  4. buu crypto 变异凯撒
  5. GG-Editor介绍-在线绘图软件
  6. “日历提醒app”程序说明文档
  7. seaborn画分组箱线图
  8. ES6常见面试题(二)
  9. 【Unity笔记】连招动画切换方式(一)
  10. Matlab 动态心形线GIF图