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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
简化php模板页面中分页代码的解析
Feb 06 PHP
PHP操作MongoDB时的整数问题及对策说明
May 02 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
php实现通过ftp上传文件
Jun 19 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
php获取excel文件数据
Apr 21 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 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
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
php 求质素(素数) 的实现代码
2011/04/12 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
css图片自适应大小
2007/11/28 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
详解使用PM2管理nodejs进程
2017/10/24 NodeJs
基于Vue制作组织架构树组件
2017/12/06 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
简单的三步vuex入门
2018/05/20 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
python基于opencv检测程序运行效率
2019/12/28 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
国庆节演讲稿
2014/05/27 职场文书
护士求职信
2014/07/05 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
论文致谢词范文
2015/05/14 职场文书
招商银行收入证明
2015/06/17 职场文书
关于远足的感想
2015/08/10 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
导游词幽默开场白
2019/06/26 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang