正文

中国移动MM7 API用户手册(五)2006-06-20 09:20:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ggbm/16054.html

分享到:

4.1.2 方式2:Web应用程序中的用法   public class MyReceiver extends MM7RecieveServlet {     public MM7VASPRes doDeliver(MM7DeliverReq request)     {         System.out.println(“收到手机”+request.getSender() +“提交的消息,标题为:”+request.getSubject()); System.out.println("MMSC的标识符为:"+request. GetMMSRelayServerID()) ;         //SP需要进行一些处理,例如构建MM7DeliverRes消息,设置ServiceCode或StatusCode MM7DeliverRes mm7DeliverRes = new MM7DeliverRes(); mm7DeliverRes.setServiceCode("服务代码"); //设置ServiceCode,可选 mm7DeliverRes.setStatusCode(MMConstants.RequestStatus.SUCCESS) ;/*设置请求完成状 态,必备,以便表明SP已经接收到传送消息。一般设1000。*/         mm7DeliverRes.setStatusText("所用状态文本说明");  /*设置所用状态的文本说明, 应限定请求状态,可选*/ //返回给MM7 API,以便API将MM7DeliverRes返回给MMSC。 return(MM7VASPRes)mm7DeliverRes;     } } 4.2发送多媒体消息的过程(下行业务) 发送多媒体消息的过程就是使用MM7 API组织消息,并通过MM7Sender发送给MMSC的过程。主要步骤如下: 4.2.1准备 1. 初始化VASP 初始化VASP使用的是MM7Config类,该类定义了有关本VASP和对应的MMSC的配置信息。系统在初始化时,必须对该对象进行定义,它将用于通信类的控制。 MM7Config mm7Config = new MM7Config("./config/mm7Config.xml "); 其中mm7Config.xml为配置文件,其格式如下: <?xml version="1.0"?> <vasp:MM7Config xmlns:vasp="http://mms.chinamobile.com/mm7ConfigSchema"> <!--鉴权方式,1为基本鉴权,2为摘要鉴权,0为不使用鉴权-->     <AuthenticationMode>1</AuthenticationMode> <!--设置用户名, 必须为被授权的用户(4位)-->     <UserName>1111</UserName> <!--设置VASP的密码(6位)-->     <Password>11111111</Password>     <!—设置允许的最大消息的大小(以字节为单位),目前最大支持128K-->     <MaxMessageSize>100000</MaxMessageSize>     <!--设置日志路径-->     <LogPath>c:\vas_log</LogPath>     <!--设置日志级别,8 个级别(0)No log(1)Severe, (2)Warning, (3)Info, (4)Config, (5)Fine, (6)Finer, (7)Finest-->     <logLevel>1</logLevel>     <!--设置指定用于对消息编码的字符集(缺省值为UTF-8)-->     <Charset>UTF-8</Charset>     <!--MMSC网关的URL地址-->     <mmscURL>/mm7</mmscURL>     <!-- MMSC网关的IP或主机名列表-->     <mmscIP>202.202.202.202</mmscIP> <!—MMSC网关的序号à <MmscID>910010</MmscID>     <!--是否启用SSL加密,false:不加密,true:SSL加密--> <UseSSL>1</UseSSL> <!--应用程序方式的监听IP地址-->     <ListenIP>102.102.102.102</ListenIP>     <!--应用程序方式的监听端口-->     <ListenPort>80</ListenPort>     <!--日志文件的最大产生数量,单位为个,缺省值为100,取值范围为:1至9999。-->     <LogNum>100</LogNum> <!--日志记录的产生时间间隔,单位为分,缺省值为60,取值范围为:1至1440-->     <LogInterval>10</LogInterval> <!--日志文件大小的最大限制,单位为K,缺省值为500K,最大值为10000K。-->     <LogSize>1000</LogSize> </vasp:MM7Config>     2. 创建MM7消息发送接口: 创建发送接口使用的是MM7Sender类,其中已经封装了和MMSC连接的通讯机制,使用时只要创建它的一个带MM7Config参数的实例即可。 MM7Sender mm7Sender = new MM7Sender(mm7Config); 4.2.2创建待发送消息 创建待发送消息使用的类均是由MM7Message继承得到的。主要有MM7SubmitReq、MM7CancelReq、MM7ReplaceReq等类,具体设置方法将分别进行介绍。 4.2.2.1 创建提交增值业务的多媒体消息(MM7SubmitReq) 1.创建消息对象 MM7SubmitReq submitReq = new MM7SubmitReq(); 2.设置消息属性 submitReq.setTransactionID("关联标识");  /*设置MM7_submit.REQ/MM7_submit.RES对的标识,必备*/ submitReq.setVASPID("SP代码") ;  //设置SP代码,必备 submitReq.setVASID("服务代码") ; //设置服务代码,必备 submitReq.setServiceCode("业务代码");  //设置业务代码,必备 submitReq.setSenderAddress("MM始发方的地址");设置MM始发方的地址(填写SP的服务代码,或者填写让用户回复SP的长号码,长号码构成:SP的服务代码+业务代码+操作码),必备 submitReq.setChargedPartyID(“付费方手机号码”);  //设置付费方的手机号码,必备 submitReq.setTo("接收方地址");  //设置接收方MM的地址 submitReq.addTo("单个接受方地址");  //增加单个接受方地址 submitReq.setCc("抄送方地址");  //设置抄送方MM的地址 submitReq.addCc("单个抄送方地址");  //增加单个抄送方地址 submitReq.setBcc("密送方地址");  //设置密送方MM的地址 submitReq.addBcc("单个密送方地址");  //增加单个密送方地址 注:在设置或增加To,Cc和Bcc时,至少需要设置其中一个,这些地址可能存在多 个地址或使用指示使用分发表的别名。可以标记仅供参考的地址。 submitReq.setLinkedID("链接标识");  /*设置链接标识,标识传送至VASP的上一 个有效消息的对应关系;可选*/ submitReq.setMessageClass("MM的类别");  /*设置MM的类别(例如,广告、 信息服务和计费),可选,具体有:Auto、Personal、Advertisement、Informational*/ submitReq.setTimeStamp("提交MM的日期和时间");  /*提交MM的时间和日期 (时间戳),格式如2004-02-09T10:21:07,可选*/ submitReq.setExpiryDate("指定超时时间");  /*设置MM指定的超时时间(绝对 或相对时间),可选*/ submitReq.setEarliestDeliveryTime("最早理想时间");  /*设置将MM传送给接收 方的最早理想时间(绝对或相对时间),可选*/ submitReq.setDeliveryReport("发送报告的请求"); /*设置是否需要发送报告的请 求(boolean值),可选*/ submitReq.setReadReply("需要读取报告的请求");  /*设置通过请求传送一个读 取报告进行确认,可选*/ submitReq.setReplyCharging("应答计费的请求");  /*设置应答计费的请求 (boolean值),可选*/ submitReq.setReplyDeadline("提交应答的最迟时间"); /*设置在应答计费的情况 下,向接收方提交应答的最迟时间(绝对或相对时间),可选*/ submitReq.setReplyChargingSize("应答MM的最大大小");  /*设置在应答计费的情况下,提供给接收方的应答MM的最大大小,可选*/ submitReq.setPriority("消息的优先级");  /*消息的优先级(重要性)(0=最低优先级,1=正常,2=紧急),byte类型的值,可选*/ submitReq.setSubject("多媒体消息的标题");  /*设置多媒体消息的标题,可选*/ submitReq.setAllowAdaptations("VASP是否允许修改内容");  /*设置VASP是否允许修改内容(boolean值,默认为真),可选*/ submitReq.setChargedParty("VASP所提交MM的付费方");  /*设置VASP所提交MM的付费方,例如,发送方、接收方、发送方和接收方或两方均不付费,可选,0:Sender、1:Recipients、2:Both、3:Neither、4:ThirdParty*/ submitReq.setContent("多媒体消息的内容");  /*设置多媒体消息的内容,可选,注意当要设置时,一定要设置其ContentType。*/ submitReq.setDistributionIndicator("是否可重新分发"); /*设置VASP是否可重新分发MM的内容(boolean值,true为可以,false为不可以),可选*/ 4.2.2.2 创建取消多媒体消息(MM7CancelReq) 1.创建消息对象 MM7CancelReq cancelReq = new MM7CancelReq(); 2. 设置消息属性 cancelReq.setTransactionID("关联标识");   /*MM7_cancel.REQ/MM7_cancel.RES 对的标识,必备*/ cancelReq.setVASPID("SP代码");  /*设置SP代码,可选*/ cancelReq.setVASID("服务代码");  /*设置服务代码,可选*/ cancelReq.setSenderAddress("MM始发方地址"); /*设置MM始发方地址,可选*/ cancelReq.setMessageID("待取消的消息的标识符"); /*设置待取消的消息的标识符,必备*/ 4.2.2.3 创建替换多媒体消息(MM7ReplaceReq) 1.创建消息对象 MM7ReplaceReq replaceReq = new MM7ReplaceReq(); 2. 设置消息属性 replaceReq.setTransactionID("关联标识"); /*设置MM7_replace.REQ/MM7_replace.RES对的标识,必备*/ replaceReq.setVASPID("SP代码");  /*设置SP代码,可选*/ replaceReq.setVASID("服务代码");  /*设置服务代码,可选*/ replaceReq.setMessageID("被当前消息所替换的消息的标识符");  /*被当前消息 所替换的消息的标识符,必备*/ replaceReq.setServiceCode("业务代码");  /*设置业务代码,可选*/ replaceReq.setTimeStamp("提交MM的日期和时间");  /*设置提交MM的时间和 日期(时间戳),格式如2004-02-09T10:21:07,可选*/ replaceReq.setEarliestDeliveryTime("最早理想时间");  /*设置将MM传送给接收 方的最早理想时间(绝对或相对时间),可选*/ replaceReq.setReadReply("需要读取报告的请求");  /*设置通过请求传送一个读 取报告进行确认(boolean值,true为需要,false为不需要),可 选*/ replaceReq.setAllowAdaptations("VASP是否允许修改内容");  /*设置VASP是否允许 修改内容(boolean值,默认为真),可选*/ replaceReq.setContent("多媒体消息内容"); /*设置多媒体消息的内容,可选,注意当要 设置时,一定要设置其ContentType。*/ replaceReq.setDistributionIndicator("是否可重新分发"); /*设置VASP是否可重新分发 MM的内容(boolean值,true为可以,false为不可以),可选*/ 4.2.3 创建消息内容体 每个消息内容体就是一个MMContent实例,可以添加多个消息内容体,但是所有消息内容体大小之和不能超过MMSC允许大小(目前最大支持128K)。 MMContent content = new MMContent(); /**设置附件的类型,若不包含SMIL格式的文件,则设置类型为MMConstants.ContentType. MULTIPART_MIXED,若包含SMIL格式的文件,则设置类型为MMConstants.ContentType. MULTIPART_RELATED*/ content.setContentType(MMConstants.ContentType. MULTIPART_MIXED); /**添加类型为Gif的附件一 */ MMContent sub1 = MMContent.createFromFile("f:\\yellow.gif"); sub1.setContentID("1.gif");   //可以不设 /**设置子附件的类型,有两种设置方式:一种是在setContentType里面填写MMConstants.ContentType里面定义的常量,另一种是在setContentType里面填写一个String的类型,如text/plain等。*/ sub1.setContentType(MMConstants.ContentType.GIF); //一定要设置 content.addSubContent(sub1); /**添加类型为Txt的附件二*/ MMContent sub2 = MMContent.createFromString("This is a Test2!"); sub2.setContentType(MMConstants.ContentType. TEXT); //一定要设置 sub2.setContentID("2.txt"); content.addSubContent(sub2); /**将附件进行设置,设需发送消息为MM7SubmitReq*/ submitReq.setContent(content); 4.2.4 发送多媒体消息 调用MM7Sender的send方法发送多媒体消息,返回MM7RSRes类型的消息。举例,发送MM7SubmitReq类型的消息: MM7RSRes res = mm7Sender.send(submitReq);  //其它消息与此类似 4.2.5发送MM7SubmitReq消息到移动终端实例 package com.cmcc.mm7.vasp.conf;   import com.cmcc.mm7.vasp.message.*; import com.cmcc.mm7.vasp.service.MM7Sender; import com.cmcc.mm7.vasp.common.*; import java.io.*;   public class VaspSendTest { public static void main(String[] args) {        MM7Config mm7Config = new MM7Config("./config/mm7Config.xml");        mm7Config. setConnConfigName("./config/ConnConfig.xml");        MM7Sender mm7Sender = new MM7Sender(mm7Config);        MM7SubmitReq submit = new MM7SubmitReq();        submit.setTransactionID("11111111");     submit.addTo("13915002000");     submit.setVASID("1234");     submit.setServiceCode("123");     submit.setSubject("测试");        MMContent content = new MMContent();     content.setContentType(MMConstants.ContentType. MULTIPART_MIXED);        MMContent sub1 = MMContent.createFromFile("f:\\yellow.gif");     sub1.setContentID("1.gif");     sub1.setContentType(MMConstants.ContentType.GIF);     content.addSubContent(sub1);        MMContent sub2 = MMContent.createFromString("This is a Test2!");        sub2.setContentID("2.txt"); sub2.setContentType(MMConstants.ContentType. TEXT);        content.addSubContent(sub2);        submit.setContent(content);        MM7RSRes res = mm7Sender.send(submit);        System.out.println("res.statuscode=" + res.getStatusCode() +                            ";res.statusText=" + res.getStatusText()); } }

阅读(8037) | 评论(12)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册