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 相关文章推荐
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
PHP中PDO的错误处理
Sep 04 PHP
PHP filter_var() 函数 Filter 函数
Apr 25 PHP
php二分查找二种实现示例
Mar 12 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
Jun 10 PHP
Joomla框架实现字符串截取的方法示例
Jul 18 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 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实现插入排序?
2013/04/10 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Python中replace方法实例分析
2014/08/20 Python
python图形用户接口实例详解
2019/12/16 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
新手学python应该下哪个版本
2020/06/11 Python
python的launcher用法知识点总结
2020/08/07 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
Java的for语句中break, continue和return的区别
2013/12/19 面试题
遇到的Mysql的面试题
2014/06/29 面试题
社团成立邀请函
2014/01/08 职场文书
结婚喜宴主持词
2014/03/14 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
创业计划书之餐饮
2019/09/02 职场文书
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫
MySQL创建管理HASH分区
2022/04/13 MySQL
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS
volatile保证可见性及重排序方法
2022/08/05 Java/Android