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

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

核心代码如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

$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代码如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

<?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] LAMP兄弟连李文凯讲ThinkPHP 视频教程 教学视频 百度网盘下载
[PHP] 向军老师PHP视频教程 教学视频 百度网盘下载
[PHP] PHP经典项目开发实例讲解合集 视频教程 教学视频 百度网盘下载
[PHP] PHP高性能架构班视频教程 教学视频 百度网盘下载
[PHP] 传智播客PHP培训 第二版PHP视频教程 大型门户网站核心技术 memcached
[PHP] 深入编程系列PHP 5.0网络编程技术视频教程 教学视频 百度网盘下载
[PHP] 后盾网千元级别远程培训班第二期之PHP课堂视频教程 教学视频 百度网盘下载
[PHP] PHP技术实践增强视频教程(共46课) 教学视频 百度网盘下载
[PHP] 传智播客 第二版PHP视频教程 大型网站核心技术(页面静态化)韩顺平主讲 视频教程
[PHP] 布尔商城PHP实战视频程 (70集全)视频教程 教学视频 百度网盘下载
[PHP] ThinkPHP搭建CMS项目设计 视频教程 教学视频 百度网盘下载
[PHP] 后盾网PHP实战视频VIP全套122课(附源文件) 视频教程 教学视频 百度网盘下载
[PHP] PHPer求职系列(高级16讲) 视频教程 教学视频 百度网盘下载
[PHP] PHPChina学院PHP零基础课程 视频教程 教学视频 百度网盘下载
[PHP] 李炎恢thinkphp3.2版本框架视频教程 教学视频 百度网盘下载
PHP+Ajax+jQuery网站开发项目实战视频
Laravel + AngularJS 实战开发知乎
Laravel5.2官方文档详细讲解 
Laravel实战开发短链生成器
Yii2框架基础学习视频教程

原文地址:https://www.cnblogs.com/virginiaff/p/10164525.html

时间: 2024-08-26 00:20:07

php微信公众号开发之音乐信息的相关文章

微信公众号开发获取用户信息

一.获取用户基本信息接口 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称.头像.性别.所在城市.语言和关注时间. 获取用户基本信息 开发者可通过OpenID来获取用户基本信息.请使用https协议. 接口调用请求说明 http请求方式: GET https://api.weixin.qq.com/cgi-bin

微信公众号开发--获取用户信息中文乱码的解决方案

在微信开发中我们会经常需要获取用户的信息. 微信给我们提供了获取用户信息的api, 地址为 https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 将其中的access_token替换为我们的access_token openid为关注用户的openid就可以获取到用户的信息了. 问题描述 不过获取到的数据却是中文乱码 而用Java程序获取的结果也是一样的

微信公众号开发之配置信息错误(-106,-107错误)

最近开弄一个自己的订阅号,照着网络上面教程一步一步弄(开发语言用java写了个servlet demo) 在第一步成为开发者这边出了点问题. 教程引用别人的: https://www.cnblogs.com/jerehedu/p/6377759.html 在这过程中,映射工具我先用了花生壳,发现花生壳80要钱了(苦逼码农没什么钱). 然后用了ngrok,发现 一直报400,我很头疼,映射了80端口,程序也能输出 就是400,然后微信端平台一直配置失败-106(token check fail)和

PHP 微信公众号开发 - 消息推送

项目微信公众号开发,需要做用户消息推送,记录下来以便日后使用 1,接上一篇文章,可以查看如何获取用户openid PHP 微信公众号开发 - 获取用户信息 2,添加模板消息 3,查看模板详情 根据模板详情设置对应推送消息 4,代码实现 1 <?php 2 // 字符编码 3 header("Content-Type:text/html; charset=utf-8"); 4 5 // 微信接口类 6 class WeChat{ 7 private static $appid; 8

微信公众号开发总结

最近公司用到了微信公众平台,所以研究了一下微信公众号的开发技术,总体来说比较简单,结合现有的平台核技术,实现起来非常方便. 首先先来了解一下微信公众平台. "微信,是一个生活方式" ,这是微信的自我评价,是不是觉得如果那天不在朋友圈里分享一下自己的最新状态, 并且收到几个赞和评价的话,会觉得空虚寂寞呢?它实实在在的改变了我们的生活方式. " 微信,也是一个生意方式 ",在微信成为我们日常必备之app的同时,它同样具备巨大的的商业 或许不应该称为潜力,因为有很多人已经

[.NET] 简单接入微信公众号开发:实现自动回复

简单接入微信公众号开发:实现自动回复 一.前提 先申请微信公众号的授权,找到或配置几个关键的信息(开发者ID.开发者密码.IP白名单.令牌和消息加解密密钥等). 二.基本配置信息解读 开发者ID:固定的: 开发者密码:自己扫一下就可以看到: IP白名单:设置自己配置服务器的地址: 服务器地址(URL):稍后详解: 令牌:随便写,按规则: 消息加解密密钥:随便写,或者随机生成: 三.配置服务器地址(URL) 服务器地址(URL)应该怎么配置呢?图片上的配置的地址是:http://www.nidie

利用OpenShift托管Node.js Web服务进行微信公众号开发

最近写了一个微信的翻译机器人.用户只要关注该微信号,发送英文的消息,就能收到中文翻译的回复.后台是用Node.js写的,托管在OpenShift的Paas平台上.翻译过程实际上是调用微软的Bing translation API做的,代码中用到了alexu84的bing-translate和JacksonTian的wechat这两个npm模块.下面把做的过程详细说一下. 1. 微信公众号开发 首先是要到https://mp.weixin.qq.com 申请一个公众号,并申请成为开发者.目前个人只

nodejs + BAE 搭建微信公众号开发平台

闲来无事创建了一个微信公众账号,名曰“深圳生活小助手”, 关注的人不多,平时发一些深圳新闻,趣事啥的,为了丰富公众号的内容,准备添加一些便民查询功能,例如天气预报.快递查询等等. 于是就有了本文的内容. 深圳的读者扫描关注支持下啊... 闲话不多说,本文主要介绍的就是如何基于nodejs和百度云搭建微信公众号开发平台,下一节介绍如何基于该平台实现了一个简单的天气预报查询功能的小例子. 1. 使用Express搭建本地站点 Express 是一个简洁.灵活的 node.js Web 应用开发框架,

微信公众号开发系列教程一(调试环境部署)

原文:微信公众号开发系列教程一(调试环境部署) 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 微信公众号火了好一阵子了,笔者算是比较早接触微信公众号开发的了,大概做了一年半了,从最开始的到处网上找demo到现在也开发一些公众号.园子里关于微信开发的教程已经数不胜数了,我也准备来凑凑热闹.一是梳理下这段时间开发的经验,二是希望能帮到想做微信开发的小伙伴们,希望大大神们吐槽的时候悠着点,