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文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Jun 13 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
Apr 08 PHP
PhpDocumentor 2安装以及生成API文档的方法
May 21 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
PHP中ini_set与ini_get用法实例
Nov 04 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
PHP处理会话函数大总结
Aug 05 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
使用PHP uniqid函数生成唯一ID
Nov 18 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 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+mysql)
2007/11/23 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
Python中Continue语句的用法的举例详解
2015/05/14 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
python判断自身是否正在运行的方法
2019/08/08 Python
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
给校长的建议书500字
2014/05/15 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
企业务虚会发言材料
2014/10/20 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python