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 中执行系统外部命令
Oct 09 PHP
从Web查询数据库之PHP与MySQL篇
Sep 25 PHP
浅谈PHP 闭包特性在实际应用中的问题
Oct 30 PHP
劣质的PHP代码简化
Feb 08 PHP
关于crontab的使用详解
Jun 24 PHP
PHP定时执行任务的3种方法详解
Dec 21 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 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
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
Node.js模块加载详解
2014/08/16 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
python求绝对值的三种方法小结
2019/12/04 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
机械制造专业个人的自我评价
2013/12/28 职场文书
学校大课间活动方案
2014/01/30 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
保护环境的建议书
2014/03/12 职场文书
社区助残日活动总结
2014/08/29 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
普通党员个人整改措施
2014/10/27 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python
mysql数据库隔离级别详解
2022/06/16 MySQL