namespace app\index\controller;

use think\Controller;

class Index extends controller

{

public function index(){

//获得参数 signature nonce token timestamp echostr

$nonce     = $_GET['nonce'];

$token     = 'imooc';

$timestamp = $_GET['timestamp'];

$echostr   = $_GET['echostr'];

$signature = $_GET['signature'];

//形成数组,然后按字典序排序

$array = array();

$array = array($nonce, $timestamp, $token);

sort($array);

//拼接成字符串,sha1加密 ,然后与signature进行校验

$str = sha1( implode( $array ) );

if( $str  == $signature && $echostr ){

//第一次接入weixin api接口的时候

echo  $echostr;

exit;

}else{

$this->reponseMsg();

}

}

public function reponseMsg(){

//1.获取到微信推送过来post数据(xml格式)

$postArr = $GLOBALS['HTTP_RAW_POST_DATA'];

//2.处理消息类型,并设置回复类型和内容

/*

123456789

*/

$postObj = simplexml_load_string( $postArr );

//$postObj->ToUserName = '';

//$postObj->FromUserName = '';

//$postObj->CreateTime = '';

//$postObj->MsgType = '';

//$postObj->Event = '';

// gh_e79a177814ed

//判断该数据包是否是订阅的事件推送

if( strtolower( $postObj->MsgType) == 'event'){

//如果是关注 subscribe 事件

if( strtolower($postObj->Event == 'subscribe') ){

//回复用户消息(纯文本格式)

$toUser   = $postObj->FromUserName;

$fromUser = $postObj->ToUserName;

$time     = time();

$msgType  =  'text';

$content  = '欢迎关注我们的微信公众账号'.$postObj->FromUserName.'-'.$postObj->ToUserName;

$template = "

%s

";

$info     = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);

echo $info;

}

}

}

跪求各位大神

php测试号推送消息失败,用thinkphp5做微信公众号开发为什么关注推送消息回复不了一直提示服务器出现故障?...相关推荐

  1. 微信公众号开发之关注推送图文消息

    关注/取消关注事件 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL.方便开发者给用户下发欢迎消息或者做帐号的解绑. 微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总 ...

  2. 微信公众号开发C#系列-7、消息管理-接收事件推送

    1.概述 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息.其中,某些事件推送在发生后,是允许 ...

  3. 微信公众号实现跟关注用户进行消息的交互功能(2)实现交互功能

    一.解析微信服务器传来的消息 因为微信服务器发送过来的是xml格式的消息,所以我们可以采用 开源框架dom4j去解析xml . 所用到的jar 包是:dom4j-1.6.1.jar 官网下载地址:ht ...

  4. php公众号客服消息图文,微信公众号开发系列-发送客服消息(示例代码)

    下面是做微信公众号开发用到最多的两个客服消息发送类型,文本信息和图文信息. 1.发送文本消息{ "touser":"OPENID", "msgtype ...

  5. 教程: nodejs 做微信公众号开发,回复 xml 消息

    教程: nodejs 做微信公众号开发,回复 xml 消息 首先需要你的后台跟服务器已经可以建立连接,这个不再冗述看官方教程就好 接入指南 .此篇介绍的是如何获取用户发来的信息,并回复它. 一.接收 ...

  6. 微信公众号开发-----接送事件推送之关注/取消关注

    本文主要实现的功能包括 关注/取消关注事件 阅读本文之前请先认真阅读微信公众号技术文档之接受事件推送 需注意的是:验证消息的确来自微信服务器和接收事件时微信服务器都会发送请求到填写的服务器地址URL上 ...

  7. 微信公众号开发-菜单事件推送

    菜单事件推送在微信公众号开发中也是属于比较常用的一个功能,就是用户点击菜单之后,微信会将事件推送给接口程序. 不过微信开发到现在也是老生常谈的的东西了,我就简单写一下菜单事件推送的这个过程. 注意:点 ...

  8. C#微信公众号开发系列教程三(消息体签名及加解密)

    http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C ...

  9. ThinkPHP5.0微信公众号开发之 微信公众号接入

    ThinkPHP5.0 微信公众号接入 第一步:准备工作 首先,要有自己的公众号(这句是废话),个人可以申请微信公众号的订阅号,企业才可以申请服务号,其次要有云空间或者服务器,并且将服务器IP添加至微 ...

  10. RUNTIME / 微信公众号开发—主动向用户发送消息

    来源:https://gitee.com/lxycx_xc/codes/mvesy65pt4lraw3u8x7gc81 模板消息:需要先在微信公众号管理后台申请该功能模板,拿到模板ID和模板上对应的字 ...

最新文章

  1. matlab game of life,模拟器cellular auotomata元胞自动机 matlab
  2. 学习webpack记录(一)
  3. 【7】nagios从零学习使用 - nrpe插件使用
  4. C++ Primer 5th笔记(chap 18 大型程序工具)命名空间
  5. QT的QSGSimpleMaterialShader类的使用
  6. 链路追踪在ERP系统中的应用实践
  7. 卸载一直在创建还原点_如何创建系统还原点以及如何恢复?
  8. python3-datetime 时间处理
  9. css 涟漪,CSS3水波涟漪动画定位样式如何制作
  10. 将先前的提交分成多个提交
  11. 京东18年管培生—技术方向笔试有感
  12. java-net-php-python-springboot羽毛球场地管理系统演示录像计算机毕业设计程序
  13. xamp配置多域名站点
  14. Java中对象属性的初始化顺序
  15. 笑出腹肌!程序员从不撒谎,但注释却会!
  16. LayUI动态选项卡iframe使用
  17. 苹果手机话筒声音小怎么办_手机的声音小怎么办
  18. SQL Server 缓存清除与内存释放
  19. 海航集团:曲折的发展历程
  20. ettercap局域网劫持

热门文章

  1. Ansible文件内容修改lineinfile模块(学习笔记五)
  2. 同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式
  3. iOS开发模式MVVM 2分离业务逻辑
  4. Android 自定义标题栏(title栏)
  5. jQuery .tmpl(), .template()学习资料小结
  6. 使用批处理build vs2005的工程
  7. [转]MS Sql 7105错误
  8. 让ssh跳转支持ipv6
  9. 消灭内存不能为read或written等错误
  10. C# 计算程序运行耗时的方法