PHP微信开发---简单的文本自动回复
首先,先去微信公众平台注册一个账号(注册要填的东西挺多的),注册好之后,登录进去。
可以看到左侧的“开发者中心”,开启开发者中心前好像还要你完善一些资料,按照步骤完善即可。进入开发者中心之后,先去编辑
修改配置,修改配置的时候,注意:
URL是你自己的域名下的PHP脚本(往下读有该脚本的demo),该脚本用于和微信接口对接。比如http://www.example.com/weixin.php
Token是上述脚本里的定义的一个常量,比如你的PHP脚本里定义了:
define("TOKEN", "my_weixin");
那么,在填写Token时,你就填abcdefgh
EncodingAESKey是消息加密用。你可以自己写一个43为的数字和字母的组合,也可以选择“随机生成”,一般选择随机生成即可
填好之后,保存(如果保存时,提示Token验证失败,那么请确认token一致并多点几次保存试试)。
保存好之后,点击修改配置旁的:“开启”。
然后,就可以编辑你的PHP脚本了。(如果你没有自己的域名,可以使用新浪云的免费的SAE,并最好完成实名认证)
demo的脚本如下:关注该公众平台(比如订阅号之后),功能是:输入hehe则返回hello world!!!如果输入其他字符,则返回输入heeh试试。
header('content-type:text/html;charset=utf-8');define("TOKEN", "my_weixin"); //define your token
$wx = new wechatCallbackapiTest();if($_GET['echostr']){$wx->valid(); //如果发来了echostr则进行验证
}else{$wx->responseMsg(); //如果没有echostr,则返回消息
}class wechatCallbackapiTest{public function valid(){ //valid signature , option$echoStr = $_GET["echostr"];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"]; //接收微信发来的XML数据//extract post dataif(!empty($postStr)){//解析post来的XML为一个对象$postObj$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName; //请求消息的用户$toUsername = $postObj->ToUserName; //"我"的公众号id$keyword = trim($postObj->Content); //消息内容$time = time(); //时间戳$msgtype = 'text'; //消息类型:文本$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content></xml>";if($keyword == 'hehe'){$contentStr = 'hello world!!!';$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);echo $resultStr;exit(); }else{$contentStr = '输入hehe试试';$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);echo $resultStr;exit();}}else {echo "";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;}}
}
如果发送消息,系统提示:该公众平台暂时不能提共服务,请稍后再试。那么多半是代码语法有问题,检查好语法错误再试试。
tip:
在新用户关注你的公众号时,自动返回信息:(把这段代码加在判断$keyword之前)。
if($postObj->MsgType == 'event'){ //如果XML信息里消息类型为eventif($postObj->Event == 'subscribe'){ //如果是订阅事件$contentStr = "欢迎订阅misaka去年夏天!\n更多精彩内容:http://blog.csdn.net/misakaqunianxiatian";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);echo $resultStr;exit();}}
PHP微信开发---简单的文本自动回复相关推荐
- 微信开发简单入门01
微信开发简单入门 微信的交互原理 消息推送 消息推送 微信的交互原理 手机的微信关注某个公众号,向公众号发送消息到微信服务器,微信服务器转发到指定的URL的服务器;这台指定URL的服务器返回数据到微信 ...
- 微信开发(八)自动回复和多客服开发
文章作者:松阳 本文出自 阿修罗道,禁止用于商业用途,转载请注明出处. 原文链接:http://blog.csdn.net/fansongy/article/details/45394641 widt ...
- 【备忘】后盾网向军老师微信开发视频教程 下载
1 后盾向军微信开发宝典之微信介绍及各种公众号区别.mp4 2 后盾向军微信开发宝典之项目代码与视频介绍.mp4 3 后盾向军微信开发宝典之注册一个属于自己的公众号.mp4 4 后盾向军微 ...
- nodejs+express对微信公众号进行二次开发--接收消息,自动回复文本,图片以及代码优化
上篇说到微信开发配置,接下来着手开发,我们先来看看文本消息的接收与自动回复: 接收普通消息–当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上,当服务器接收 ...
- php微信公众号首次关注自动回复,PHP_PHP微信开发之文本自动回复,首先,先去微信公众平台注册 - phpStudy...
PHP微信开发之文本自动回复 首先,先去微信公众平台注册一个账号(注册要填的东西挺多的),注册好之后,登录进去.可以看到左侧的"开发者中心",开启开发者中心前好像还要你完善一些资料 ...
- 公众号开发精品教程(2)——将项目接入微信及简单交互
系列文章传送门 公众号开发精品教程(1)--绪论及环境搭建 公众号开发精品教程(2)--将项目接入微信及简单交互 公众号开发精品教程(3)--创建菜单 公众号开发精品教程(4)--生成带参数的二维码及 ...
- 微信开发之自动回复图文消息
最近开始做公司的微信项目,深切的感受到了微信的不同,做微信是需要从头开始好好学的,在此记录一下学习微信的过程,也希望以后能根据这些文章迅速掌握微信开发的知识.少踩坑,,(laravel框架) 1.首先 ...
- 基于Django进行简单的微信开发
代码地址如下: http://www.demodashi.com/demo/11756.html 一.微信公众号的准备: 1. 注册 访问地址:https://mp.weixin.qq.com/ 按照 ...
- 微信开发--开发模式简单配置
微信用户量很多,那么我们如何开始一个属于自己的微信小程序呢,因为自己不是高微信的.最近研究了一下微信,只是先微信的一个小功能.那么下面开始微信开发的搭建.这里如何申请微信公众号自己去官网申请就行了.最 ...
最新文章
- LeetCode简单题之数组形式的整数加法
- 解题报告(一)快速沃尔什变换FWT(ACM / OI)超高质量题解
- 避免35岁现象,我给技术人的建议永远是架构师!
- MyEclipse数据库连接配置(以Oracle为例)
- java 弱引用定位_手把手教你定位常见Java性能问题
- CISCO ACL配置全解
- java arraylist 源代码_java中ArrayList的源代码是什么
- 最长上升子序列(LIS)长度的O(nlogn)算法 (动态规划)
- 来自TMDB的5000部电影数据集
- 最后的作业——NP完全问题证明
- 微信小程序后台服务器怎么配置,如何在微信小程序后台设置服务类目
- 随机森林 matlab
- whose size is larger than the fetch size
- Python脚本系列:拳皇13一键出招以及连段实现!谁打得过我?
- huge形式_huge什么意思怎么读
- 学习与坚持是我的人生信仰
- 【观察】四川产业转型“加速跑”,鲲鹏生态助推“新升级”
- 《软件工程与实践》 |(九)软件工程新技术及体系 知识梳理
- 华为服务器忘记系统登录密码,服务器主机登陆密码忘记了
- 共建通往天堂的巴别塔
热门文章
- android矢量地图引擎,GitHub - UbiroutingDevelop/UbiMap-Android-Demo: 使用识途UbiMap矢量图引擎显示地图Demo及文档...
- Skype的P2P的技术特点是什么?
- HttpClient发送put与post请求代码实例与解析
- 宇宙中第一批恒星存在被证实!中科院最新成果,数据来自韦布望远镜
- JavaWeb 文件的上传和下载
- ROS学习笔记(3)-----创建工作区,运行hello程序
- 美国海关称区块链生物识别技术可用于旅行安全
- 【思维导图】清华2019年论文《人类大脑中听音乐和回忆音乐的神经关联》内容提炼
- MoFan.tensorflow目录
- web 设计 暑期课笔记 Ⅱ CRAP设计理论