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 相关文章推荐
第1次亲密接触PHP5(1)
Oct 09 PHP
十天学会php之第一天
Oct 09 PHP
再次研究下cache_lite
Feb 14 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
Apr 24 PHP
PHP在不同页面间传递Json数据示例代码
Jun 08 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
PHP实现简单爬虫的方法
Jul 29 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 19 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 传值赋值与引用赋值的区别
2010/12/29 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
详解php反序列化
2020/06/10 PHP
日期 时间js控件
2009/05/07 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
Javascript的this用法
2017/01/16 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
在Python中使用模块的教程
2015/04/27 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
简述Python2与Python3的不同点
2018/01/21 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
德国网上药房:Apotal
2017/04/04 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
酒店总经理岗位职责
2015/04/01 职场文书
工资证明格式模板
2015/06/12 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
学习经验交流会总结
2015/11/02 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
python自动化测试通过日志3分钟定位bug
2021/11/20 Python
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers