微信开发教程:[5]音乐消息的回复

2025-11-19 07:09:23

1、接口文件(wx_sample)全部代码如下:

<?php

include_once("wx_tpl.php");//装载数据格式模板文件

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//获取微信发送数据

  //返回回复数据

if (!empty($postStr)){          

          $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); //解析数据

          $fromUsername = $postObj->FromUserName;//发送消息方Id

          $toUsername = $postObj->ToUserName; //接收消息方ID

          $form_MsgType = $postObj->MsgType;//消息类型

    //事件消息

          if($form_MsgType=="event"){   

            $form_Event = $postObj->Event;//获取事件类型

            //订阅事件

            if($form_Event=="subscribe") {      

                $msgType = "music";

                $resultStr = sprintf(

$musicTpl,  $fromUsername, $toUsername, $time, $msgType,  "歌名",   "歌手", 

 "http://weixincourse-weixincourse.stor.sinaapp.com/mysongs.aac", "http://weixincourse-weixincourse.stor.sinaapp.com/mysongs.mp3");

              echo $resultStr;

              exit;}        

          }          

  }

  else   { echo "";

             exit;}

?>

微信开发教程:[5]音乐消息的回复

2、封装数据格式的文件全部代码如下:

<?php

$textTpl = "<xml>(文字消息格式)

            <ToUserName><![CDATA[%s]]></ToUserName>

            <FromUserName><![CDATA[%s]]></FromUserName>

            <CreateTime>%s</CreateTime>

            <MsgType><![CDATA[%s]]></MsgType>

            <Content><![CDATA[%s]]></Content>

            <FuncFlag>0</FuncFlag>

            </xml>";   

$newsTpl = "<xml>(图文消息)

           <ToUserName><![CDATA[%s]]></ToUserName>

           <FromUserName><![CDATA[%s]]></FromUserName>

           <CreateTime>%s</CreateTime>

           <MsgType><![CDATA[%s]]></MsgType>

           <ArticleCount>%s</ArticleCount>

           <Articles>

           <item>

           <Title><![CDATA[%s]]></Title> 

           <Description><![CDATA[%s]]></Description>

           <PicUrl><![CDATA[%s]]></PicUrl>

           <Url><![CDATA[%s]]></Url>

           </item>

           </Articles>

           <FuncFlag>1</FuncFlag>

           </xml> ";

$musicTpl = "<xml>(音乐消息)

             <ToUserName><![CDATA[%s]]></ToUserName>

             <FromUserName><![CDATA[%s]]></FromUserName>

             <CreateTime>%s</CreateTime>

             <MsgType><![CDATA[%s]]></MsgType>

             <Music>

             <Title><![CDATA[%s]]></Title>

             <Description><![CDATA[%s]]></Description>

             <MusicUrl><![CDATA[%s]]></MusicUrl>

             <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>

             </Music>

             <FuncFlag>0</FuncFlag>

             </xml>";

?>

微信开发教程:[5]音乐消息的回复

3、实现效果。将上面两个文件放置到空间就可以实现效果(前提是接口已经配置好):当用户订阅公众号的时候,收到一首歌曲,如图:

微信开发教程:[5]音乐消息的回复

4、代码讲解1:

 if($form_Event=="subscribe") {      

                $msgType = "music";

                $resultStr = sprintf(

$musicTpl,  $fromUsername, $toUsername, $time, $msgType,  "歌名",   "歌手", 

 "http://weixincourse-weixincourse.stor.sinaapp.com/mysongs.aac", "http://weixincourse-weixincourse.stor.sinaapp.com/mysongs.mp3");

              echo $resultStr;

              exit;}   

这部分代码是先判断是否为订阅事件,是的话则回复一首音乐   

微信开发教程:[5]音乐消息的回复

5、代码讲解2:

 $msgType = "music";

规定回复的消息时音乐。

微信开发教程:[5]音乐消息的回复

6、代码讲解3:

$resultStr = sprintf(

$musicTpl,  $fromUsername, $toUsername, $time, $msgType,  "歌名",   "歌手", 

 "http://weixincourse-weixincourse.stor.sinaapp.com/mysongs.aac", "http://weixincourse-weixincourse.stor.sinaapp.com/mysongs.mp3");

规定歌名、歌手、以及歌曲的来源。在用户网络条件好的时候回复aac格式优质音乐,当然这个链接是可选的,但是MP3链接必须有

微信开发教程:[5]音乐消息的回复

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢