首页 > 开发 > PHP > 正文

PHP实现微信公众平台音乐点播

2024-05-04 22:21:51
字体:
来源:转载
供稿:网友


1.构造微信提供的XML格式的音乐消息
音乐的XML格式是这样的:
代码如下:<xml> 
  <ToUserName><![CDATA[toUser]]></ToUserName> 
  <FromUserName><![CDATA[fromUser]]></FromUserName> 
  <CreateTime>12345678</CreateTime> 
  <MsgType><![CDATA[music]]></MsgType> 
  <Music> 
    <Title><![CDATA[TITLE]]></Title> 
    <Description><![CDATA[DESCRIPTION]]></Description> 
    <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl> 
    <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl> 
    <ThumbMediaId><![CDATA[media_id]]></ThumbMediaId> 
  </Music> 
</xml>
我们写个函数将数据转换成这样的格式,这里面主要的数据是MusicUrl和HQMusicUrl里面的数据,前者普通品质的音乐,后面HQ是高品质的,wifi下会优先播放HQ的。
代码如下:private function transmitMusic($object, $musicArray, $flag = 0)
    {
  $itemTpl = "<Music>
        <Title><![CDATA[%s]]></Title>
      <Description><![CDATA[%s]]></Description>
      <MusicUrl><![CDATA[%s]]></MusicUrl>
      <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
    </Music>";

  $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']);

  $textTpl = "<xml>
      <ToUserName><![CDATA[%s]]></ToUserName>
      <FromUserName><![CDATA[%s]]></FromUserName>
      <CreateTime>%s</CreateTime>
      <MsgType><![CDATA[music]]></MsgType>
      $item_str
      <FuncFlag>%d</FuncFlag>
      </xml>";

  $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $flag);
  return $resultStr;
    }

2.构造参数$musicArray
代码如下:$musicArray = array("Title"=>$songstr, "Description"=>"歌手:".$singerstr, "MusicUrl"=>$this->getMusicUrl($this->getMusic($songstr,$singerstr)),"HQMusicUrl"=>$this->getHQMusicUrl($this->getMusic($songstr,$singerstr)));
其中的$songstr和$singerstr变量是得从接受关注者的文本,你先提醒关注者按照一定的格式输入文本,安然按这个固定格式截取出其中的歌曲歌手名。这个不难实现

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表