微信开发之消息接收--语音消息(七)

一、消息格式

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<Format><![CDATA[Format]]></Format>
<MsgId>1234567890123456</MsgId>
</xml>

  

参数描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 语音为voice
MediaId 语音消息媒体id,可以调用多媒体文件下载接口拉取数据。
Format 语音格式,如amr,speex等
MsgID 消息id,64位整型

 

 

 

 

 

 

 

 

 

二、创建语音消息实体类,VoiceMessage.java  代码如下:

package com.weixin.message;

public class VoiceMessage extends BaseMessage {

	public long MediaId ;
	public String Format ;
	public long MsgID ;
	public long getMediaId() {
		return MediaId;
	}
	public void setMediaId(long mediaId) {
		MediaId = mediaId;
	}
	public String getFormat() {
		return Format;
	}
	public void setFormat(String format) {
		Format = format;
	}
	public long getMsgID() {
		return MsgID;
	}
	public void setMsgID(long msgID) {
		MsgID = msgID;
	}
	
}

  

三、向公众号发送语音消息,公众号返回消息:"这是语音消息"   在WeixinService.java中添加 语音消息的判断 ,代码如下:

//voice消息
		if(messageType.equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)){
			
			            // 打印接收所有参数
						System.out.println("ToUserName:" + message.get("ToUserName"));
						System.out.println("FromUserName:" + message.get("FromUserName"));
						System.out.println("CreateTime:" + message.get("CreateTime"));
						System.out.println("MsgType:" + message.get("MsgType"));
						System.out.println("PicUrl:" + message.get("PicUrl"));
						System.out.println("MediaId:" + message.get("MediaId"));
						System.out.println("MsgId:" + message.get("MsgId"));
						
						TextMessage textMessage = new TextMessage();
						textMessage.setToUserName(message.get("FromUserName"));
						textMessage.setFromUserName(message.get("ToUserName"));
						textMessage.setCreateTime(new Date().getTime());
						textMessage.setContent("这是语音消息");
						textMessage.setMsgType("text"); //文本消息
						xml = MessageUtil.textMessageToXml(textMessage);
						System.out.println("xml:"+xml);
		}

  

公众号接收到的参数和回复的xml如下:

接收到的参数信息:

ToUserName:gh_525b860fccf8
FromUserName:oXWYmsyz4fv17mCihzDFzk_ecLFU
CreateTime:1463300507
MsgType:voice
PicUrl:null
MediaId:TVwQaa0KMaRSWMR8WPsOv8y4V_uRXHOo49enlnj7Hzj1klFhldyNfapqe9K2i9w1
MsgId:6284827822231388344

回复的xml信息

<xml>
  <ToUserName><![CDATA[oXWYmsyz4fv17mCihzDFzk_ecLFU]]></ToUserName>
  <FromUserName><![CDATA[gh_525b860fccf8]]></FromUserName>
  <CreateTime>1463300508012</CreateTime>
  <MsgType><![CDATA[text]]></MsgType>
  <Content><![CDATA[这是声音消息]]></Content>
  <MsgId>0</MsgId>
</xml>

四、测试  测试截图如下:

 

 

 

 

 
posted @ 2016-05-15 16:26  Code猿猿  阅读(1249)  评论(0编辑  收藏  举报