php微信开发之音乐回复功能


Posted in PHP onJune 14, 2018

本文实例为大家分享了php微信音乐回复功能的具体代码,供大家参考,具体内容如下

<?php
/**
 * wechat php test
 */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
 public function valid()
 {
  $echoStr = $_GET["echostr"];

  //valid signature , option
  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"];

  //extract post data
  if (!empty($postStr)){

    $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $keyword = trim($postObj->Content);
    $time = time();
    $textTpl = "<xml>
       <ToUserName><![CDATA[%s]]></ToUserName>
       <FromUserName><![CDATA[%s]]></FromUserName>
       <CreateTime>%s</CreateTime>
       <MsgType><![CDATA[%s]]></MsgType>
       <Content><![CDATA[%s]]></Content>
       <FuncFlag>0</FuncFlag>
       </xml>";    
    if(!empty( $keyword ))
    {
     $msgType = "text";
     if($keyword=="1"){
     $contentStr = "qiphon";}
     if($keyword=="2"){
     $contentStr = "最新资讯:《环境违法行为举报奖励办法》";}
     if($keyword=="3"){
     $contentStr = "31离婚协议\n32租房合同\n33交通事故协议书";}     
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     echo $resultStr;
    }else{
     echo "Input something...";
    }

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

?>

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

PHP 相关文章推荐
php flv视频时间获取函数
Jun 29 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
Codeigniter的dom类用法实例
Jun 26 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
Dec 18 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 PHP
php layui实现前端多图上传实例
Jul 30 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 PHP
php微信开发之关键词回复功能
Jun 13 #PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 #PHP
微信公众号开发之获取位置信息php代码
Jun 13 #PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 #PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 #PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 #PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 #PHP
You might like
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
2020/06/17 Javascript
浅析Python多线程下的变量问题
2015/04/28 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
Linux如何为某个操作添加别名
2013/03/01 面试题
团日活动总结书
2014/05/08 职场文书
体育专业求职信
2014/07/16 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书