本篇转自猪年大吉博客:地址 https://blog.csdn.net/qq_43638176

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

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...";}}}

su先生给你加油噢!!!

微信公众号开发 微信被动回复,图文回复,图片回复相关推荐

  1. 视频教程-SpringBoot微信公众号开发-微信开发

    SpringBoot微信公众号开发 就职于国内知名在线互联网旅游公司,10+互联网开发经验,精通前后端开发 刘志强 ¥149.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免 ...

  2. 视频教程-微信公众号开发-微信开发

    微信公众号开发 云知梦创始人,国际架构师,11年互联网培训和开发经验,曾在港电讯盈科.北大青鸟集团.远大教育.北京易第优教育等公司任职曾获得美国红帽RHCA构架师和RHCDS数据中心讲师,在国内排名第 ...

  3. 微信公众号开发--微信JS-SDK分享到朋友圈和分享给朋友

    之前写过一篇使用微信JS-SDK来实现扫一扫功能的博客 微信公众号开发–微信JS-SDK扫一扫功能 在该博客里介绍了微信JS-SDK的基本用法,其中包括以下几个步骤 还详细介绍了通过config接口注 ...

  4. 微信公众号开发-----实现模板、图文、文本、音乐、图片推送

    本篇文章实现模板.图文.文本.音乐.图片推送,前提是已经搭建了微信开发环境.读完本文后,实现的主要效果如下 在测试账号中配置模板 登录测试公众号/正式公众号(认证后的服务号),测试公众号:模板消息接口 ...

  5. 微信公众号 服务器配置 token 测试,微信公众号开发:基本配置Token验证简单事件回复...

    公众号配置的URL就是你自己服务器上验证TOKEN的方法的地址 比如我验证TOKEN的方法访问地址是http://www.aaa.cn/wx_api.php 那我公众号配置的URL就要填http:// ...

  6. 微信公众号开发---微信开发学习路线(及供参考)

    目录(?)[-] 1.       热门学习 1.        微信支付之H5页面WAP端接入 2.        微信支付开发系统开发流程及完整Demo展示 3.        微信公共服务平台开 ...

  7. Java微信公众号开发微信网页授权之前端传递code方式获取用户信息

    本片博客讲解的网页授权分为两步,前端先传递backUrl(回调地址)到后台网页授权接口,该接口拿到回调地址后组装授权连接,重定向到前端页面,前端页面截取Code,传入后端获取用户信息方法,获取用户信息 ...

  8. c# sha1签名 微信_微信公众号开发——微信JSSDK使用(踩坑)

    这段时间有个工作,是要在移动端给地图上加上导航功能,找了一圈,最后决定使用微信JSSDK的'打开地理位置接口'来开发,也是着实踩了下坑啊,分享一下 微信JSSDK介绍 因为微信公众号的开通对于大部分开 ...

  9. jssdk信息验证失败_微信公众号开发——微信JSSDK使用

    微信JSSDK介绍 官方文档地址: 概述 | 微信开放文档​links.jianshu.com 因为微信公众号的开通对于大部分开发人员来说还是一个稍高的门槛,所以,微信搞了一个微信测试号,开发人员使用 ...

  10. 微信公众号开发——微信获取、操作公众号文章

    微信获取,操作公众号文章 项目地址:https://gitee.com/wrzhxy/wx_article 我以为微信支付和微信企业付款文档就够坑爹了,直到我遇到了微信获取公众号文章... 微信获取公 ...

最新文章

  1. linux路由内核实现分析 四,linux路由内核实现分析(二)---FIB相关数据结构(4)
  2. 不懂装饰器,就不是真正会 Python
  3. 如何实现远程控制你的电脑? 网穿软件
  4. Oracle RAC禁用DRM
  5. 北航计算机科学与技术专业培养计划,北京航空航天大学2020年计算机科学与技术专业培养计划...
  6. 数学--数论--HDU 4675 GCD of Sequence(莫比乌斯反演+卢卡斯定理求组合数+乘法逆元+快速幂取模)
  7. python医疗发票 信息抽取_PYTHON网络爬虫与信息提取[信息的组织与提取](单元五)...
  8. linux权限最小化分级,vim可视化Linux系统安全最小化原则 su sudo
  9. Android笔记-对称与非对称加密及DH密钥交换
  10. oracle删除资产模块凭证,请教老师,固定资产凭证不小心给删除了,然后在固定资产模块那边说已经存在了,那我要怎么做?...
  11. JavaScript-Load-Image
  12. Rational RequisitePro
  13. Win10 开机密码破解
  14. HTML 教程-菜鸟教程
  15. 【网络安全】OSSIM平台网络日志关联分析实战
  16. mmdetection - config配置文件之schedule(learning rate)
  17. 家用计算机初步,职称计算机Internet基础知识:配置家庭局域网
  18. linux mysql 1055_mysql 1055错误
  19. 软件加壳的简易实现方式
  20. 关于在 firefox 主页自定义背景可以用的图片

热门文章

  1. 【100%通过率】华为OD机试真题 C++ 实现【最优芯片资源占用】【2023 Q1 | 100分】
  2. OpenGL超级宝典笔记——光照参数与材料属性
  3. 【MAC工具】各个Xcode版本对应macOS的版本下载
  4. ENQUEUE_MIGRATED
  5. [Migrated]榜样
  6. ANSYS APDL中的ASEL面选择命令
  7. FreeSWITCH的端口设置
  8. VS2019 测试使用libusb
  9. precision 为什么和recall成反比
  10. python 循环写入excel_用PYTHON将“for”循环的输出写到excel中