公众号配置的URL就是你自己服务器上验证TOKEN的方法的地址

比如我验证TOKEN的方法访问地址是http://www.aaa.cn/wx_api.php

那我公众号配置的URL就要填http://www.aaa.cn/wx_api.php(配置完之后记得点启用哦)

/**

* wechat php test

*/

header('Content-type:text');

//定义TOKEN 与公众号的配置要相同

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();

if (isset($_GET['echostr'])) {//验证TOKEN

$wechatObj->valid();

}else{//公众号被动回复

$wechatObj->responseMsg();

}

class wechatCallbackapiTest

{

public function valid()

{

$echoStr = $_GET["echostr"];

if($this->checkSignature()){

echo $echoStr;

exit;

}

}

public function responseMsg()

{

if (!empty($postStr)){

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

$open_id = $postObj->FromUserName;

var_dump($open_id);

$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 $postStr;

exit;

}

}

public function handleText($postObj)

{

$fromUsername = $postObj->FromUserName;

$toUsername = $postObj->ToUserName;

$keyword = trim($postObj->Content);

$time = time();

$textTpl = "

%s

0

";

if(!empty( $keyword ))

{

$msgType = "text";

if($keyword=="你好"){

$contentStr = "你好呀";

}elseif($keyword=="你是猪"){

$contentStr = "你才是猪";

}else{

$contentStr = "感谢您关注【XXX】";

}

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}else{

echo "Input something...";

}

}

public function handleEvent($object)

{

//$arrObj = self::std_class_object_to_array($object);//将对象转化为数组(可不要,就是方便有数据库操作需要数组的操作)

//var_dump($arrObj);

$contentStr = "";

switch ($object->Event)

{

case "subscribe":

$contentStr = "感谢您关注【XXX】";

break;

default :

$contentStr = "Unknow Event: ".$object->Event;

break;

}

$resultStr = $this->responseText($object, $contentStr);

return $resultStr;

}

public function responseText($object, $content, $flag=0)

{

$textTpl = "

%s

%d

";

$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;

}

}

static function std_class_object_to_array($stdclassobject)

{

$_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject;

$array = array();

foreach ($_array as $key => $value) {

$value = (is_array($value) || is_object($value)) ? self::std_class_object_to_array($value) : $value;

$array[$key] = $value;

}

return $array;

}

}

?>

如果你验证token的方法地址和公众号回复的方法地址不一样

公众号配置时URL先填验证token的方法地址,验证成功之后把公众号回复的方法代码写到验证token的方法里去,把原验证token方法的代码注释掉

emmmm....对就这样hi hi

然后推荐一个微信公众号开发的免费在线调试工具:

只需要填URL就好了 Token的话最好填weixin

消息类型就根据自己测试需求选,完了之后点击发送消息/验证token就好了,接收消息栏会返回你调试打印的东西和回复的东西

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

  1. 微信公众号服务器配置会员卡链接,微信公众号实现会员卡领取功能

    1.会员卡的领取也需要js-sdk接口(可以参考获取微信公众号获取用户的地理位置信息)(借鉴网址:http://gaoboy.com/article/25.html) 2. 比获取用户地理位置信息多了 ...

  2. 公众号服务器配置如何不显示,公众号服务器配置信息怎么设置

    公众号服务器配置信息怎么设置 内容精选 换一换 通过华为云创建的ECS服务器默认使用华为云提供的内网DNS进行解析.内网DNS不影响ECS服务器对公网域名的访问.同时,还可以不经Internet,直接 ...

  3. android 微信检测工具,Android 如何测试微信小游戏小程序?

    "微信小游戏性能评测标准建立的初衷是希望能引导开发者优化相关性能数据,提升用户体验.评测标准根据小游戏整体的性能数据表现.玩家体验评价,结合操作系统.机型分档.网络条件等多种维度建立.&qu ...

  4. 微信支付的服务器配置url超时,微信H5支付商家存在未配置的参数,请联系商家解决的...

    前言 考虑到网络上微信的h5支付都是讲解原生app的,ionic3的基本没有,我自己总结下. 大致流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下 ...

  5. 公众号服务器配置url证书问题,公众号服务器配置url,验证token一直出错,为什么?...

    详细日志: org.xml.sax.SAXParseException: 文件提前结束. at com.sun.org.apache.xerces.internal.util.ErrorHandler ...

  6. php 微信公众号服务器配置首次验证

    php 微信公众号服务器配置首次验证 首先要确定你有微信公众号和服务器: 登录微信公众号平台,左侧最下方的 开发->基本配置 我这里用了get_event方法接受验证,既你在服务器的丢出来一个可 ...

  7. 测试公总号加入微信开放平台

    测试公总号加入微信开放平台 1. 测试公总号加入微信开放平台 上图:

  8. 《移动App测试的22条军规》—App测试综合案例分析23.4节测试微信App的手势操作...

    本节书摘来自异步社区<移动App测试的22条军规>一书中的App测试综合案例分析,第23.4节测试微信App的手势操作,作者黄勇,更多章节内容可以访问云栖社区"异步社区" ...

  9. iOS如何测试微信小游戏小程序?

    "微信小游戏性能评测标准建立的初衷是希望能引导开发者优化相关性能数据,提升用户体验.评测标准根据小游戏整体的性能数据表现.玩家体验评价,结合操作系统.机型分档.网络条件等多种维度建立.&qu ...

最新文章

  1. 网络工程师_记录的一些真题_2014上半年上午
  2. 反射机制(java)
  3. linux脚本求命令行上整数和,shell脚本--cut命令与awk简单使用
  4. 服务端 https和SSL
  5. C#的变迁史08 - C# 5.0 之并行编程总结篇
  6. 从soso改版说如何针对soso做优化
  7. Python入门--函数传递过程中实参的变化
  8. DOM-window下的常用子对象-location-刷新页面
  9. 【渝粤教育】电大中专消费者心理学作业 题库
  10. SVN仓库解决APIcloud2检出错误
  11. iOS面试开发-这样的简历才是面试官想看的
  12. 用pcdet跑deecamp20_liadr3-1
  13. CSS实现折角效果:
  14. QT 矢量绘图和非矢量绘图(一)
  15. 木马专杀软件测试自学,5款免费杀软“紫狐”木马查杀测试
  16. 爬取年报数据、解析PDF提取数据、分析代码(巨潮 Python)
  17. ConcurrentHashMap插入与遍历时出现混乱
  18. 招银网络java面经
  19. Uni-app 小程序 APP 的广告变现之路:插屏广告
  20. 编程中的幂等性 —— HTTP幂等性

热门文章

  1. C++中出现“找到一个或多个多重定义的符号”的解决方案
  2. oracle 11.2.0.4 mos,Oracle 11.2.0.4 最终版本发布以来的 Oracle PSU 列表
  3. 谷歌面试 扔鸡蛋_如何解决Google招聘人员关于从建筑物中扔鸡蛋的难题
  4. C++中a += b和a = a + b的区别
  5. python的标准类型内建函数有_python标准内建函数_python 内建函数(四)
  6. 空间谱估计matlab实现,相干信号空间谱估计测向Matlab仿真研究
  7. 常用的http状态码查询大全
  8. C#学习笔记:总结提升
  9. 深圳建立强制立体绿化制度 今年将超额完成46万平方米
  10. 如何办理深圳营业执照?深圳营业执照网上办理的流程