验证token、回复图文\文本、推送消息的实用微信类php代码_php技巧

本文实例为大家分享了用于验证token,回复图文、文本,向用户推送消息等功能的微信类,具体代码如下

<?php
class Wechat{
  private $data = array();
  public function __construct($token){
    $this -> auth($token, $wxuser) || exit;
    if(IS_GET){
      echo($_GET['echostr']);
      exit;
    }else{
      $xml = file_get_contents("php://input");

      $xml = new SimpleXMLElement($xml);
  //file_put_contents('/var/log/test.txt', $xml,FILE_APPEND);
      $xml || exit;
      foreach ($xml as $key => $value){
        $this -> data[$key] = strval($value);
      }
    }
  }
  public function request(){
    return $this -> data;
  }
  public function response($content, $type = 'text', $flag = 0){
    $this -> data = array('ToUserName' => $this -> data['FromUserName'], 'FromUserName' => $this -> data['ToUserName'], 'CreateTime' => NOW_TIME, 'MsgType' => $type);
    $this -> $type($content);
    $this -> data['FuncFlag'] = $flag;
    $xml = new SimpleXMLElement('<xml></xml>');
    $this -> data2xml($xml, $this -> data);
    exit($xml -> asXML());
  }
  private function text($content){
    $this -> data['Content'] = $content;
  }
  private function music($music){
    list($music['Title'], $music['Description'], $music['MusicUrl'], $music['HQMusicUrl']) = $music;
    $this -> data['Music'] = $music;
  }
  private function news($news){
    $articles = array();
    foreach ($news as $key => $value){
      list($articles[$key]['Title'], $articles[$key]['Description'], $articles[$key]['PicUrl'], $articles[$key]['Url']) = $value;
      if($key >= 9){
        break;
      }
    }
    $this -> data['ArticleCount'] = count($articles);
    $this -> data['Articles'] = $articles;
  }
  private function transfer_customer_service($content){
    $this -> data['Content'] = '';
  }
  private function data2xml($xml, $data, $item = 'item'){
    foreach ($data as $key => $value){
      is_numeric($key) && $key = $item;
      if(is_array($value) || is_object($value)){
        $child = $xml -> addChild($key);
        $this -> data2xml($child, $value, $item);
      }else{
        if(is_numeric($value)){
          $child = $xml -> addChild($key, $value);
        }else{
          $child = $xml -> addChild($key);
          $node = dom_import_simplexml($child);
          $node -> appendChild($node -> ownerDocument -> createCDATASection($value));
        }
      }
    }
  }
  private function auth($token){
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode($tmpArr);
    $tmpStr = sha1($tmpStr);
    if(trim($tmpStr) == trim($signature)){
      return true;
    }else{
      return false;
    }
    return true;
  }
}
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, token
, 推送消息
, 微信类
回复文本
百度主动推送token值、数据推送token、极光推送devicetoken、信鸽推送 获取token、ios推送token,以便于您获取更多的相关知识。

时间: 2024-11-29 21:49:27

验证token、回复图文\文本、推送消息的实用微信类php代码_php技巧的相关文章

php基于curl主动推送最新内容给百度收录的方法_php技巧

本文实例讲述了php基于curl主动推送最新内容给百度收录的方法.分享给大家供大家参考,具体如下: php curl的好处可以以最快的方式并且模仿post提供我们的url地址给百度搜索引擎进行收录. 百度链接提交三种方式: 1.主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录. 2.sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度.百度会周期性的抓取检查您提交的sitemap,对其中的链接进行

leancloud-使用java代码如何调用LeanCloud(avos)推送消息?

问题描述 使用java代码如何调用LeanCloud(avos)推送消息? 使用java代码如何调用LeanCloud(avos)推送消息? 我看官网上只用使用javascript,推送消息的.现在想在代码中触发推送消息,应该如何操作. 解决方案 参照文档http://blog.csdn.net/wletv/article/details/43667521

Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSDK分享组件的,奈何需要去注册各平台的账号,还要审核,有些审核还挺久,就没办法,改为写这个Bmob了,相信大家对Bmob都是挺期待的吧,因为他作为Android后端的实现很好的支持,国内很多软件都在使用它,他的功能也是特别神奇,这里就不一一细说了,我们用实际的例子来见证他的神奇 官网:http://w

从.net项目(Windows Service)向Android手机发送推送消息

最近做的.net项目(Windows Service)需要向Android手机发送推送消息,真是有点困难,没有搞过就不停的搜文档,最后看到了一个开源项目PushSharp,可以在.net平台推送IOS,Android,Windows Phone等设备消息,大喜,然后先做了IOS的,成功了,但是做Android的时候遇到了问题,一直推送不成功,程序执行了,但是推送一直出不来,后来费劲的在网上搜,没有找到,最后放弃使用这种推送Android,另寻出路,随后找到了一种C2DM云端推送功能,但是问题又出

友盟推送 在手机端一个用户提交一个信息,其中包含一个“受理人”,让指定的受理人 收到一条推送消息

问题描述 友盟推送 在手机端一个用户提交一个信息,其中包含一个"受理人",让指定的受理人 收到一条推送消息 友盟推送 在手机端一个用户提交一个信息,其中包含一个"受理人",让指定的受理人 收到一条推送消息 怎么实现? 解决方案 首先针对某一个用户推送,必须知道对方的token(信鸽产生的token,每个手机不一样),所以你要有一个后台接口,你提交信息后,接口从数据库中查找这用户的token,然后调用信鸽的接口发推送

ios-iOS 推送消息时直接点击桌面应用图标进入,得不到推送消息?

问题描述 iOS 推送消息时直接点击桌面应用图标进入,得不到推送消息? 推送消息的时候,点击通知的显示按钮进入应用是正常的.如果从桌面应用图标点进去 它不会调用didFinishLaunchingWithOptions方法和didReceiveRemoteNotification方法.那我就得不到它的推送内容.有人说在applicationDidBecomeActive方法里面做推送消息的响应处理,那该怎么做呢? 有没有哪位大神不吝赐教,非常感谢! 解决方案 http://www.cocoach

node apn-node-apn推送消息时513错误是什么意思?

问题描述 node-apn推送消息时513错误是什么意思? var apn=require("apn") var token = '60c3b0b7 b6c464f0 e86bf6f0 ac1fc3d3 26701bae fae89183 4c2d80d9 51811965'; //长度为64的设备Token var options = { "gateway": "gateway.sandbox.push.apple.com" ,"ce

IOS在一直推送消息【以解决】

问题描述 在大约30分钟左右的时间里,IOS在一直推送消息"您有一条消息"这句话:1.APP打开和杀死两种情况都会收到,2.打开APP,并没有进入聊天界面3.在开发测试阶段从没出现过这种问题,发布上线一个月后陆续出现,刚开始只有以两个设备 解决方案 统一回复:感谢各位支持,已经找到问题根源了!解决方案二:这个需要测试打断点看下.点进去有消息内容嘛?解决方案三:app打开时是收不到离线推送的,这种情况应该是你们服务器后台的问题.解决方案四:代码里面didreceivemessage也是不

解析iOS10中的极光推送消息的适配_IOS

iOS10发布后,发现项目中的极光推送接收消息异常了. 查了相关资料后才发现,iOS10中对于通知做了不少改变.同时也发现极光也很快更新了对应的SDK. 现在就把适配修改的做法分享一下,希望对有需要的童鞋有所帮助. 具体做法如下: 注意:必须先安装Xcode8.0版本. 一.添加相关的SKD,或framework文件 1.添加UserNotification.framework 2.更新jpush的SDK(最新版本:jpush-ios-2.1.9.a)https://www.jiguang.cn