首先,先去微信公众平台注册一个账号(注册要填的东西挺多的),注册好之后,登录进去。

可以看到左侧的“开发者中心”,开启开发者中心前好像还要你完善一些资料,按照步骤完善即可。进入开发者中心之后,先去编辑

修改配置,修改配置的时候,注意:

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微信开发---简单的文本自动回复相关推荐

  1. 微信开发简单入门01

    微信开发简单入门 微信的交互原理 消息推送 消息推送 微信的交互原理 手机的微信关注某个公众号,向公众号发送消息到微信服务器,微信服务器转发到指定的URL的服务器;这台指定URL的服务器返回数据到微信 ...

  2. 微信开发(八)自动回复和多客服开发

    文章作者:松阳 本文出自 阿修罗道,禁止用于商业用途,转载请注明出处. 原文链接:http://blog.csdn.net/fansongy/article/details/45394641 widt ...

  3. 【备忘】后盾网向军老师微信开发视频教程 下载

    1 后盾向军微信开发宝典之微信介绍及各种公众号区别.mp4   2 后盾向军微信开发宝典之项目代码与视频介绍.mp4   3 后盾向军微信开发宝典之注册一个属于自己的公众号.mp4   4 后盾向军微 ...

  4. nodejs+express对微信公众号进行二次开发--接收消息,自动回复文本,图片以及代码优化

    上篇说到微信开发配置,接下来着手开发,我们先来看看文本消息的接收与自动回复: 接收普通消息–当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上,当服务器接收 ...

  5. php微信公众号首次关注自动回复,PHP_PHP微信开发之文本自动回复,首先,先去微信公众平台注册 - phpStudy...

    PHP微信开发之文本自动回复 首先,先去微信公众平台注册一个账号(注册要填的东西挺多的),注册好之后,登录进去.可以看到左侧的"开发者中心",开启开发者中心前好像还要你完善一些资料 ...

  6. 公众号开发精品教程(2)——将项目接入微信及简单交互

    系列文章传送门 公众号开发精品教程(1)--绪论及环境搭建 公众号开发精品教程(2)--将项目接入微信及简单交互 公众号开发精品教程(3)--创建菜单 公众号开发精品教程(4)--生成带参数的二维码及 ...

  7. 微信开发之自动回复图文消息

    最近开始做公司的微信项目,深切的感受到了微信的不同,做微信是需要从头开始好好学的,在此记录一下学习微信的过程,也希望以后能根据这些文章迅速掌握微信开发的知识.少踩坑,,(laravel框架) 1.首先 ...

  8. 基于Django进行简单的微信开发

    代码地址如下: http://www.demodashi.com/demo/11756.html 一.微信公众号的准备: 1. 注册 访问地址:https://mp.weixin.qq.com/ 按照 ...

  9. 微信开发--开发模式简单配置

    微信用户量很多,那么我们如何开始一个属于自己的微信小程序呢,因为自己不是高微信的.最近研究了一下微信,只是先微信的一个小功能.那么下面开始微信开发的搭建.这里如何申请微信公众号自己去官网申请就行了.最 ...

最新文章

  1. LeetCode简单题之数组形式的整数加法
  2. 解题报告(一)快速沃尔什变换FWT(ACM / OI)超高质量题解
  3. 避免35岁现象,我给技术人的建议永远是架构师!
  4. MyEclipse数据库连接配置(以Oracle为例)
  5. java 弱引用定位_手把手教你定位常见Java性能问题
  6. CISCO ACL配置全解
  7. java arraylist 源代码_java中ArrayList的源代码是什么
  8. 最长上升子序列(LIS)长度的O(nlogn)算法 (动态规划)
  9. 来自TMDB的5000部电影数据集
  10. 最后的作业——NP完全问题证明
  11. 微信小程序后台服务器怎么配置,如何在微信小程序后台设置服务类目
  12. 随机森林 matlab
  13. whose size is larger than the fetch size
  14. Python脚本系列:拳皇13一键出招以及连段实现!谁打得过我?
  15. huge形式_huge什么意思怎么读
  16. 学习与坚持是我的人生信仰
  17. 【观察】四川产业转型“加速跑”,鲲鹏生态助推“新升级”
  18. 《软件工程与实践》 |(九)软件工程新技术及体系 知识梳理
  19. 华为服务器忘记系统登录密码,服务器主机登陆密码忘记了
  20. 共建通往天堂的巴别塔

热门文章

  1. android矢量地图引擎,GitHub - UbiroutingDevelop/UbiMap-Android-Demo: 使用识途UbiMap矢量图引擎显示地图Demo及文档...
  2. Skype的P2P的技术特点是什么?
  3. HttpClient发送put与post请求代码实例与解析
  4. 宇宙中第一批恒星存在被证实!中科院最新成果,数据来自韦布望远镜
  5. JavaWeb 文件的上传和下载
  6. ROS学习笔记(3)-----创建工作区,运行hello程序
  7. 美国海关称区块链生物识别技术可用于旅行安全
  8. 【思维导图】清华2019年论文《人类大脑中听音乐和回忆音乐的神经关联》内容提炼
  9. MoFan.tensorflow目录
  10. web 设计 暑期课笔记 Ⅱ CRAP设计理论