手机版

微信公众号开发之文本消息自动回复服务器端编程语言(专业超文本预处理器的缩写)代码

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

本文实例为大家分享了服务器端编程语言(专业超文本预处理器的缩写)微信文本消息自动回复别代码,供大家参考,具体内容如下

1.服务器端编程语言(专业超文本预处理器的缩写)示例代码下载下载地址1:http://夏仔。JB 51。net/201608/马援/phpwx(jb51.net).rar下载地址2:https://MP。微信。QQ。com/wiki/home/index。html(开始开发-》接入指南-》PHP示例代码下载)

2.wx_sample.php初始代码

?php/** *微信PHP测试*///定义你的tokendefine('TOKEN ',' weixin ');$微信bj=新微信callbackapitet();$微信对象-有效();班级微信callbackapist { public function valid(){ $ echoStr=$ _ GET[' echoStr '];//有效签名,选项if($ this-CheckSignature()){ echo $ echoStr;退出;} }公共函数responseMsg(){//获取邮政数据,可能是由于环境不同$ PostStr=$ GLOBALS[' HTTP _ RAW _ POST _ DATA '];//提取帖子数据if(!空($ PostStr)){/* libxml _ disable _ Entity _ loader是为了防止xml外部实体注入,最好的方法是自己检查可扩展置标语言的有效性*/libxml _ disable _ Entity _ loader(true);$ PostObj=simple XML _ load _ string($ PostStr,' SimpleXMLElement ',LIBXML _ NocDATa);$ from username=$ PostObj-from username;$ touser name=$ PostObj-touser name;$关键字=trim($ PostObj-Content);$ time=time();$textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content func flag 0/func flag/XML ';if(!空($关键字)){ $ msgType=' text$contentStr='欢迎来到微信世界!$resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$ content str);回应$ resultStr }其他{回应'输入某物.} } else { echo退出;} }私有函数checkSignature() { //如果(!已定义(“TOKEN”){ 0引发新异常(' TOKEN未定义!');} $ signature=$ _ GET[' signature '];$时间戳=$_GET['时间戳'];$ nonce=$ _ GET[' nonce '];$ TOKEN=TOKEN $ TMParr=array($ TOKEN,$timestamp,$ nonce);//使用排序字符串规则sort($tmpArr,SORT _ STRING);$tmpStr=内爆($ TMParr);$ TMPstr=sha1($ TMPstr);if($ TMPstr==$ signature){ 0返回true}否则{返回false} }?3.调用回复信息方法在wx_sample.php文件中注释掉$微信对象-有效();在其下增加一句" $微信object-responseMsg();”。

?php/** *微信PHP测试*///定义你的tokendefine('TOKEN ',' weixin ');$微信bj=新微信callbackapitet();//$微信对象-valid();//接口验证$微信对象响应消息();//调用回复消息方法班级微信callbackapist { public function valid(){ $ echoStr=$ _ GET[' echoStr '];//有效签名,选项if($ this-CheckSignature()){ echo $ echoStr;退出;} }公共函数responseMsg(){//获取邮政数据,可能是由于环境不同$ PostStr=$ GLOBALS[' HTTP _ RAW _ POST _ DATA '];//提取帖子数据if(!空($ PostStr)){/* libxml _ disable _ Entity _ loader是为了防止xml外部实体注入,最好的方法是自己检查可扩展置标语言的有效性*/libxml _ disable _ Entity _ loader(true);$ PostObj=simple XML _ load _ string($ PostStr,' SimpleXMLElement ',LIBXML _ NocDATa);$ from username=$ PostObj-from username;$ touser name=$ PostObj-touser name;$关键字=trim($ PostObj-Content);$ time=time();$textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content func flag 0/func flag/XML ';if(!空($关键字)){ $ msgType=' text$contentStr='欢迎来到微信世界!$resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$ content str);回应$ resultStr }其他{回应'输入某物.} } else { echo退出;} }私有函数checkSignature() { //如果(!已定义(“TOKEN”){ 0引发新异常(' TOKEN未定义!');} $ signature=$ _ GET[' signature '];$时间戳=$_GET['时间戳'];$ nonce=$ _ GET[' nonce '];$ TOKEN=TOKEN $ TMParr=array($ TOKEN,$timestamp,$ nonce);//使用排序字符串规则sort($tmpArr,SORT _ STRING);$tmpStr=内爆($ TMParr);$ TMPstr=sha1($ TMPstr);if($ TMPstr==$ signature){ 0返回true}否则{返回false} }?4.关键词自动回复和关注回复$关键字保存着用户微信端发来的文本信息。官方开发者文档:https://MP。微信。QQ。com/wiki/home/index。html(消息管理-》接收消息-接收事件推送-》1.关注/取消关注事件)

关注事件与一般的文本消息有两处不同,一是MsgType值是事件,二是增加了事件值是订阅。由于官方文档(最初的wx_sample.php)没有提取这个参数,需要我们自己提取。在程序中增加两个变量$msgType和$活动。

?php/** *微信PHP测试*///定义你的tokendefine('TOKEN ',' weixin ');$微信bj=新微信callbackapitet();//$微信对象-valid();//接口验证$微信对象响应消息();//调用回复消息方法班级微信callbackapist { public function valid(){ $ echoStr=$ _ GET[' echoStr '];//有效签名,选项if($ this-CheckSignature()){ echo $ echoStr;退出;} }公共函数responseMsg(){//获取邮政数据,可能是由于环境不同$ PostStr=$ GLOBALS[' HTTP _ RAW _ POST _ DATA '];//提取帖子数据if(!空($ PostStr)){/* libxml _ disable _ Entity _ loader是为了防止xml外部实体注入,最好的方法是自己检查可扩展置标语言的有效性*/libxml _ disable _ Entity _ loader(true);$ PostObj=simple XML _ load _ string($ PostStr,' SimpleXMLElement ',LIBXML _ NocDATa);$ from username=$ PostObj-from username;$ touser name=$ PostObj-touser name;$关键字=trim($ PostObj-Content);$ time=time();$ MSgtype=$ PostObj-MSgtype;//消息类型$ Event=$ PostObj-Event;//时间类型,订阅(订阅)、取消订阅(取消订阅)$textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content func flag 0/func flag/XML ';switch($ msgType){ case ' event ' : if($ event==' subscribe '){ $ content str=' Hi,欢迎关注海仙日用百货!'。\n .'回复数字'1',了解店铺地址.'。\n .'回复数字'2',了解商品种类.';} break case ' text ' : switch($ keyword){ case ' 1 ' : $ content str='店铺地址:'.\n .'杭州市江干艮山西路233号新东升市场地下室第一排.';打破;案例2': $contentStr='商品种类:'.\n .'杯子、碗、棉签、水桶、垃圾桶、洗碗巾(刷)、拖把、扫把、' .'衣架、粘钩、牙签、垃圾袋、保鲜袋(膜)、剪刀、水果刀、饭盒等.';打破;' default: $contentStr='对不起,你的内容我会稍后回复;} break } $ msgType=' text $ resultStr=sprintf($ text TPL,$fromUsername,$toUsername,$time,$ msgType,$ content str);echo $ resultStr } else { echo退出;} }私有函数checkSignature() { //如果(!已定义(“TOKEN”){ 0引发新异常(' TOKEN未定义!');} $ signature=$ _ GET[' signature '];$时间戳=$_GET['时间戳'];$ nonce=$ _ GET[' nonce '];$ TOKEN=TOKEN $ TMParr=array($ TOKEN,$timestamp,$ nonce);//使用排序字符串规则sort($tmpArr,SORT _ STRING);$tmpStr=内爆($ TMParr);$ TMPstr=sha1($ TMPstr);if($ TMPstr==$ signature){ 0返回true}否则{返回false} }?以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:微信公众号开发之文本消息自动回复服务器端编程语言(专业超文本预处理器的缩写)代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。