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

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. 管理大师基本功:目标拆解能力
  2. Linux 用echo输出带特效的字体
  3. windows下配置ssh(FreeSSHD + putty)
  4. iOS开发之第三方框架Masonry
  5. oracle8修改最大连接数,ORACLE查看并修改最大连接数的具体步骤
  6. oracle 并行用索引,分区索引并行导致的性能问题
  7. 本周新出开源计算机视觉代码汇总(含图像超分辨、视频目标分割、行人重识别、点云识别等)...
  8. mysql optimize 参数查看_Mysql High Performance:Optimize Setting
  9. selenium的定位方式
  10. 滚动效果--marquee的使用
  11. pandas.DataFrame.set_index
  12. 【现代软件工程】第一次作业——词频统计
  13. 响应式开发---网页的布局方式、媒体查询、栅格化布局、less语言
  14. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
  15. linux佳入门教程,命令行基础工具的更佳替代品
  16. 【Android】移动端接入Cronet实践
  17. nginx自动切割访问日志
  18. 51单片机硬件设计-最小系统(一)
  19. 谈谈低延迟对音质的负面影响,顺便谈谈WASAPI
  20. 3D文物博物馆新体验——会动的三星堆

热门文章

  1. 【美团滑块】猫眼下单、点评
  2. 语音信号的基音参数提取
  3. 基音周期 检测 matlab,语音信号基音周期检测的matlab程序
  4. iPhoneXR为最畅销iPhone难解外界对苹果的担忧
  5. java提取word中的图片_Java怎么获取Word批注的文字和图片
  6. NOI openjudge 1.1 01:Hello, World!
  7. 俄语入门难不难-大舌音难学吗-弹舌难学吗
  8. 小暑将至,这组小暑海报送给你们
  9. 限制网页只能在微信浏览器打开
  10. 何恺明 matlab,[论文复现]何恺明博士CVPR2009去雾算法(1)