php微信公众平台开发(四)回复功能开发

一、简介

微信公众平台可以根据用户发送的信息进行判断,然后给出对应的回复,具有良好的交互性。下文将模拟简单的回复功能,根据这个案例,开发者也可以基本理解微信交互的原理,进行更深层次的开发。

二、思路分析

用户发送过来的文本信息,我们可以提取关键字,通过简单的 if...elseif...else... 实现。

关键代码如下:

if($keyword=="你好"){   $contentStr = "hello"; }elseif($keyword=="苏州"){   $contentStr = "上有天堂,下有苏杭"; }else{   $contentStr = "感谢您关注【卓锦苏州】 微信号:zhuojinsz"; }

如果用户发送"你好",则回复"hello",如果用户发送"苏州",则回复"上有天堂,下有苏杭",其他信息,则回复你的欢迎词。

三、完整代码

<?php /** * wechat php test */ //define your token define("TOKEN", "zhuojin"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->responseMsg(); //$wechatObj->valid(); class wechatCallbackapiTest { /*public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } }*/ public function responseMsg() { //get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract 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->handleText($postObj); break; case "event": $resultStr = $this->handleEvent($postObj); break; default: $resultStr = "Unknow msg type: ".$RX_TYPE; break; } echo $resultStr; }else { echo ""; exit; } } 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"; if($keyword=="你好"){ $contentStr = "hello"; }elseif($keyword=="苏州"){ $contentStr = "上有天堂,下有苏杭"; }else{ $contentStr = "感谢您关注【卓锦苏州】 微信号:zhuojinsz"; } $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } } public function handleEvent($object) { $contentStr = ""; switch ($object->Event) { case "subscribe": $contentStr = "感谢您关注【卓锦苏州】"."\n"."微信号:zhuojinsz"."\n"."卓越锦绣,名城苏州,我们为您提供苏州本地生活指南,苏州相关信息查询,做最好的苏州微信平台。"."\n"."目前平台功能如下:"."\n"."【1】 查天气,如输入:苏州天气"."\n"."【2】 查公交,如输入:苏州公交178"."\n"."【3】 翻译,如输入:翻译I love you"."\n"."【4】 苏州信息查询,如输入:苏州观前街"."\n"."更多内容,敬请期待..."; break; default : $contentStr = "Unknow Event: ".$object->Event; break; } $resultStr = $this->responseText($object, $contentStr); return $resultStr; } public function responseText($object, $content, $flag=0) { $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>%d</FuncFlag> </xml>"; $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag); return $resultStr; } 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; } } } ?>

四、测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-09-30 21:44:12

php微信公众平台开发(四)回复功能开发的相关文章

微信公众平台推数据统计功能 商业价值可量化

原标题:微信公众平台推出数据统计功能将引起3个变化8月29日晚,微信产品团队通过服务号"微信公众平台"发布消息,宣布"微信公众平台增加数据统计功能".与此同时,细心的用户发现登陆微信公众平台,后台界面上增加了"数据统计"的新菜单,菜单中分为用户分析.图文分析和消息分析三大项,用户可以查看从2013年7月1日起的数据情况.尽管这次"数据统计"功能在微信公众平台 灰度上线,但将引起的3个变化微妙而不乏战略意义,值得重视.变化一:大

微信公众平台上线原创声明功能暂时向微信认证媒体公测

1月22日,微信公众平台在晚间发布声明称,为维护作者权益,鼓励优质内容产生,微信公众平台上线原创声明功能,暂时面向微信认证的媒体类型公众帐号公测. 该声明表示,原创文章在原创声明成功后,微信公众平台会对该文章添加"原创"标识,当其他用户在微信公众平台发布已进行原创声明的文章时,系统会为其注明出处. 如何申请原创声明 原创者可在微信公众平台后台的"素材管理"处进入"图文消息"编辑,点击"申请原创声明".并填写提交原创声明的信息.

微信公众平台之快递查询功能用法实例_php技巧

本文实例讲述了微信公众平台之快递查询功能用法.分享给大家供大家参考.具体如下: 使用方法: #查快递(或三个首字母ckd)#快递编号#快递单号 如(查询EMS单号为1034616494006的快递): #ckd#15#1034616494006 常用快递编号:<br /> 15EMS,56申通,57顺丰,77圆通, 80韵达,87中通,85宅急送,62天天 1. class.base.php文件: <?php /** * 微信公众平台基础类 For Fshare * @author: S

微信公众平台快速上手教程Part5 开发模式讲解

中介交易 SEO诊断 淘宝客 云主机 技术大厅 这部分主要讲解微信公众平台的开发模式,首先说明一下我不是程序员,所以本篇并非讲编程代码之类的,也并非开发模式的说明书,毕竟微信官方已经有一份详细的技术说明文档(在文章尾部提供文档地址),但是由于我们正在开发微信POP营销系统,所以我对开发模式有一定了解,这些了解应该会对准备尝试做微信开发的朋友会有一定帮助,少走部分弯路吧.如果对本篇教程有任何疑问或错漏之处欢迎留言或直接联系我进行更正修改. 首先我们要明确开发模式什么可以做,什么不可以做: 一.开发

微信公众平台消息接口PHP版开发教程

原文:微信公众平台消息接口PHP版开发教程  一.写好接口程序 在你的服务器上上传好一个接口程序文件,如http://www.yourdomain.com/weixin.php  内容如下: <?php define("TOKEN", "weixin");//自己定义的token 就是个通信的私钥 $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); //$wechatObj-&

云微客微信公众平台高级接口系列功能率先推出

中介交易 SEO诊断 淘宝客 云主机 技术大厅 继上次云微客版本的更新,用户界面和功能都获得阶段性的飞跃,这少不了全国各地的代理商和准代理提出的宝贵意见.当中最受大家关注的,无疑是针对已认证服务号微信早前公布的五大接口功能,3721.html">2014年5月3日,云微客结合五大接口功能正式上线,大大丰富了商家在微信营销过程中的各项需求.以下让我们来介绍这次更新的内容: 1.数据魔方 数据魔方,全方位提供客户行为分析数据,帮助商家更精准掌握客户行为,对微信营销策划及效果评估作出实质数据支持

微信公众平台开放设备连接功能

摘要: 微信公众平台开放了设备连接功能,可以让公众号和终端设备之间互相传输数据.该功能当前支持智能可穿戴设备,其他硬件设备产品据说会陆续开放,支持蓝牙2.X,3.X,4.0,Wi-Fi以及 微信公众平台开放了设备连接功能,可以让公众号和终端设备之间互相传输数据.该功能当前支持智能可穿戴设备,其他硬件设备产品据说会陆续开放,支持蓝牙2.X,3.X,4.0,Wi-Fi以及移动网络接入. 这项功能只有获得微信资质认证和名称认证的服务号(大V)才能申请开通,官方给出的具体步骤如下: 1.厂商基本资料提交

微信公众平台新增评论管理功能 可显示用户评论

一大早打开微信公众平台,发现插件那边新增了"评论管理"功能组件,查看了一下,可以显示用户评论.微信公众平台要整合微社区的节奏? 通过腾讯微信相关公告消息称,开通微信认证的公众号可以申请添加该功能模块,发布之前选择开启评论才能评论.可以选择精选评论,公众帐号文章只显示被运营者放入精选的评论.

php版微信公众平台接口开发之智能回复开发教程_php实例

本文实例讲述了php版微信公众平台接口开发之智能回复功能实现方法.分享给大家供大家参考,具体如下: 智能回复是根据用户输入的条件来反馈结果用用户了,这个小编以前有做过信整理了一些例子供各位参考,比较完整主要是介绍在开发端了. 微信自推出后,着实火了一把,而支付功能的推出,又把微信推到了一个无可比拟的高度,然后申请微信订阅号或者服务号的人也开始比肩接踵.下面我将给大家简单讲解下微信公众平台开发接口. 先去 微信公众平台 申请账号,然后按照提示一步步.在选择订阅号和服务号上,个人只能申请订阅号,而且

php版微信公众平台接口开发之智能回复开发教程

本文实例讲述了php版微信公众平台接口开发之智能回复功能实现方法.分享给大家供大家参考,具体如下: 智能回复是根据用户输入的条件来反馈结果用用户了,这个小编以前有做过信整理了一些例子供各位参考,比较完整主要是介绍在开发端了. 微信自推出后,着实火了一把,而支付功能的推出,又把微信推到了一个无可比拟的高度,然后申请微信订阅号或者服务号的人也开始比肩接踵.下面我将给大家简单讲解下微信公众平台开发接口. 先去 微信公众平台 申请账号,然后按照提示一步步.在选择订阅号和服务号上,个人只能申请订阅号,而且