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函数utf8转gb2312编码
Dec 21 PHP
php 多个submit提交表单 处理方法
Jul 07 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
PHP的SQL注入过程分析
Jan 06 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 PHP
因str_replace导致的注入问题总结
Aug 08 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 jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
Python生成器(Generator)详解
2015/04/13 Python
python中实现k-means聚类算法详解
2017/11/11 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python__name__原理及用法详解
2019/11/02 Python
django实现类似触发器的功能
2019/11/15 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
广州一家公司的.NET面试题
2016/06/11 面试题
《四季》教学反思
2014/04/08 职场文书
大学专科求职信
2014/07/02 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
死亡证明书样本说明
2014/10/18 职场文书
婚庆答谢词
2015/01/04 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
七年级上册生物的课件
2019/08/07 职场文书