php微信公众号开发之音乐信息


Posted in PHP onOctober 20, 2018

本文实例为大家分享了php微信公众号音乐信息的具体代码,供大家参考,具体内容如下

  • 高品质—-HQMusicUrl
  • 低品质—-MusicUrl  

php微信公众号开发之音乐信息

php微信公众号开发之音乐信息

核心代码如下:

$textTpl = "<xml>
        <ToUserName><![CDATA[%s]]></ToUserName>
        <FromUserName><![CDATA[%s]]></FromUserName>
        <CreateTime>%s</CreateTime>
        <MsgType><![CDATA[music]]></MsgType>
        <Music>
          <Title><![CDATA[欢乐颂]]></Title>
          <Description><![CDATA[贝多芬]]></Description>
          <MusicUrl><![CDATA[http://1.dq095.applinzi.com/欢乐颂.mp3]]></MusicUrl>
          <HQMusicUrl><![CDATA[http://1.dq095.applinzi.com/欢乐颂.mp3]]></HQMusicUrl>
        </Music>
        <FuncFlag>0</FuncFlag>
      </xml>";       



if(!empty( $keyword ))
 {           
  $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time);
  echo $resultStr;
 }else{
  echo "Input something...";
 }

index.php代码如下:

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

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$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[music]]></MsgType>
               <Music>
               <Title><![CDATA[欢乐颂]]></Title>
               <Description><![CDATA[贝多芬]]></Description>
               <MusicUrl><![CDATA[http://1.dq095.applinzi.com/欢乐颂.mp3]]></MusicUrl>
               <HQMusicUrl><![CDATA[http://1.dq095.applinzi.com/欢乐颂.mp3]]></HQMusicUrl>
               </Music>
              <FuncFlag>0</FuncFlag>
              </xml>";       



        if(!empty( $keyword ))
        {

          $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time);
          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
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
Oct 04 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
Linux系统下php获得系统分区信息的方法
Mar 30 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 PHP
php实例化对象的实例方法
Nov 17 PHP
php微信公众号开发之欢迎老朋友
Oct 20 #PHP
php微信公众号开发之秒杀
Oct 20 #PHP
php微信公众号开发之关键词回复
Oct 20 #PHP
php微信公众号开发之图片回复
Oct 20 #PHP
php5.x禁用eval的操作方法
Oct 19 #PHP
django中的ajax组件教程详解
Oct 18 #PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 #PHP
You might like
基于mysql的bbs设计(三)
2006/10/09 PHP
PHP4实际应用经验篇(2)
2006/10/09 PHP
php简单提示框alert封装函数
2010/08/08 PHP
php命令行用法入门实例教程
2014/10/27 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
python编写暴力破解FTP密码小工具
2014/11/19 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
详解python中的json的基本使用方法
2016/12/21 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
pandas中的series数据类型详解
2019/07/06 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android