zoukankan      html  css  js  c++  java
  • 微信开发之消息接收--语音消息(七)

    一、消息格式

    <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>
    

    四、测试  测试截图如下:

     
  • 相关阅读:
    servlet乱码以及解决
    javascript正则简单入门
    javascript创建自定义对象和prototype
    java 对象初始化和代码块初始化顺序
    java final 和instanceof 关键字
    【记录】自学JavaScript第七周
    【记录】自学JavaScript第六周
    获取节点名称及节点值
    正则表达式中的替换字符串示例
    部分正则表达式基本函数用法示例
  • 原文地址:https://www.cnblogs.com/codejackanapes/p/5495387.html
Copyright © 2011-2022 走看看