1、 中国移动中国移动 MM7 API 用户手册用户手册 版本:V1.5.1 中国移动集团公司 修改记录修改记录 文件编号 版本号 拟制人/修改人 拟制/修改日期 更改理由 主要更改内容(写要点即可)V1.1 胡冬梅 2004.03.22 修改、整理 V1.2 胡冬梅 2004.04.14 增加内容 增加安装说明 V1.3 胡冬梅 2004.4.21 增加内容 增加状态码等说明 V1.5.1 胡冬梅 2004.5.12 增加内容 增加获取 API 版本信息、API 返回码说明等 目 录 1.概述.5 2.概念.5 2.1 企业代码.5 2.2 服务代码.5 2.3 业务代码.6 2.3.1 上行业
2、务的业务代码规范.6 2.3.2 下行业务的业务代码规范.7 2.4 操作指令码.9 2.5 下行业务.10 2.6 上行业务.10 2.7 递送报告.10 3.安装方法.10 3.1 MM7 API 的使用.10 3.2 配置文件的设置.10 4.开发方法.12 4.1 VASP 接收传送请求(上行业务).12 4.1.1 方式 1:普通应用程序中的用法.12 4.1.2 方式 2:Web 应用程序中的用法.13 4.2 发送多媒体消息的过程(下行业务).14 4.2.1 准备.14 4.2.2 创建待发送消息.15 4.2.2.1 创建提交增值业务的多媒体消息(MM7SubmitReq).
3、15 4.2.2.2 创建取消多媒体消息(MM7CancelReq).17 4.2.2.3 创建替换多媒体消息(MM7ReplaceReq).17 4.2.3 创建消息内容体.18 4.2.4 发送多媒体消息.19 4.2.5 发送 MM7SubmitReq 消息到移动终端实例.19 4.3 VASP 接收传送消息以及发送提交消息实例.20 4.4 VASP 接收状态报告(上行业务).23 4.4.1 方式 1:普通应用程序中的用法.23 4.4.2 方式 2:Web 应用程序中的用法.24 4.5 VASP 接收读后回复报告(上行业务).25 4.5.1 方式 1:普通应用程序中的用法.25
4、 4.5.2 方式 2:Web 应用程序中的用法.26 4.6 发送取消消息(下行业务).26 4.7 发送替换消息(下行业务).27 5.开发过程中需用的一些 Status 解释.28 5.1 关于 VASP 接收到消息后设置返回响应(Res)的状态码及状态报告的解释.28 5.2 关于 VASP 收到 DeliverReq 中 MMStatus 的解释.28 5.3 关于 VASP 收到 ReadReplyReq 中 ReadStatus 的解释.29 6.获取 MM7 API 版本信息的方法.29 7.MM7 API 返回 StatusCode 说明.29 1.1.概述概述 该文档说明了
5、 SP 如何使用中国移动集团公司的 MM7 API 程序与彩信中心进行对接,实现MM7 接口的通讯,开发增值业务应用。该 MM7 API 是使用纯 Java 开发的,使用的 JDK 的版本为 JDK1.4.0。所以使用该 API 进行开发时,要求使用的JDK版本必须是JDK1.4.0以上版本。该API所使用的通讯承载协议是HTTP/1.1。缩略词:缩略词:MM:Multimedia Message(多媒体消息)MMS:Multimedia Message Service(多媒体消息服务)MMSC:Multimedia Message Service Center(多媒体消息服务中心)VAS:V
6、alue Added Service(增值业务)SP:Service Provider(业务提供商)HTTP:Hypertext Transfer Protocol(超文本传输协议)2.2.概念概念 2.12.1 企业代码企业代码 企业代码是企业身份的标识,网络中地址翻译、计费、结算等均以企业代码为依据。企业代码的数据需要在 MMSC 和 BOSS 系统中进行配置。企业代码以数字表示,共 6 位,从“8XY000”至“8XY999”,其中“XY”为各移动分公司代码。彩信全网业务的 SP 企业代码为 8XY0018XY999。(目前短信全网业务的企业代码为 9XY0019XY500,WAP 全网
7、业务的企业代码为 9XY5019XY999。)彩信地方业务的 SP 企业代码由各地方移动公司按照业务许可的顺序依次分配制定,“XY”具体分配情况见相关表格。2.22.2 服务代码服务代码 服务代码是:用户使用彩信的发送、上传等上行类业务时,需要输入的接收方号码;或 SP在根据用户的点播请求在向用户发送、下载等下行类业务时,用户终端中显示的发送方的号码。服务代码的数据需要在 MMSC 上进行配置,用于路由的查找和状态报告的返回。服务代码以数字表示。全国业务的服务代码长度统一为 4 位,即“1000”“9999”;本地业务服务代码长度统一为 5 位,即“01000”“09999”。以下号码或号段暂
8、不分配:13XX(XX00-99)、20XX(XX0199)、168X(X0-9)、186X(X=0-9)、1258/1259、172X(X=0-9)、6XXX、7XXX。上述代码的分配和使用情况均可以在 上查询。如果 SP 已经开展了短信等业务,原则上彩信的服务代码依照 SP 原有的服务代码进行分配,以保证用户的使用习惯。目前全网业务的服务代码,由集团公司统一分配。2.32.3 业务代码业务代码 业务代码表示业务类别,并且区分不同业务的信息服务费。业务代码的数据需要在 MMSC 和BOSS 系统中进行配置。业务代码用数字表示,并且不能使用 000。为便于进行业务统计和分析,业务代码尽量按照不
9、同的业务分类如下:互联网点播类:以 1 开头 WAP 点播类:以 2 开头 短信点播类:以 3 开头 STK 点播类:以 4 开头 彩信点播类:以 0 开头 业务代码在遵循原则的前提下其余内容由 SP 自己制定。2.3.12.3.1 上行业务的业务代码规范上行业务的业务代码规范 上行业务的业务代码为三位,其构成如下:第 1 位:0、7、9 开头的业务代码保留,其他代码由彩信 SP 自行编排。第 23 位:由彩信 SP 自行编排 特例:特例:如果用户直接给四位服务代码发送上行彩信,系统会默认加上业务代码“0”,该业务代码默认开通,仅用于上行彩信到服务代码。2.3.22.3.2 下下行业务的业务代
10、码规范行业务的业务代码规范 下行业务的业务代码为六位,其构成如下:第 1 位:功能标识位,目前有如下两种选择:1,代表一般下行业务 7,代表用于“先机时代”项目中手机内置并参与渠道分成的业务 6,代表用于集团客户应用的业务(免费)其他数字目前保留。第 2 位:彩信业务一级分类,具体如下面表格:第 3 位:彩信业务二级分类,具体如下面表格:一级分类及标识代码一级分类及标识代码 二级分类及标识代码二级分类及标识代码 新闻天气(新闻天气(1)天气预报(1)热点快讯(2)社会新闻(3)体育新闻(4)娱乐新闻(5)财经新闻(6)综合新闻(0)游戏娱乐(游戏娱乐(2)聊天交友(1)笑话幽默(2)彩信游戏(
11、3)影音视线(4)互动有奖(5)五花八门(0)时尚生活(时尚生活(3)时尚有约(1)车迷世界(2)文化教育(3)情感画廊(4)爱情家庭(5)两性健康(6)证券财经(7)位置服务(8)五花八门(0)卡通动漫(卡通动漫(4)欧美(1)日本(2)韩国(3)港台(4)本地原创(5)五花八门(0)彩信铃声(彩信铃声(5)明星专辑(1)精品影视(2)流行音乐(3)古典音乐(4)卡拉 OK(5)特殊音效(6)五花八门(0)彩图动画(彩图动画(6)人物剪影(1)动物一族(2)美丽心情(3)温馨祝福(4)电影名画(5)体育纵横(6)大千世界(7)3D 动画(8)五花八门(0)彩信彩信 DIY(7)贺卡类(1)形
12、象类(2)文字类(3)五花八门(0)特色用途(特色用途(0)免费客服(1)优惠套餐(2)第 4 位:业务模式位,各个模式及其数字标识如下:1:按条点播 2:按条定制 3:包月定制 4:包月点播 第 56 位:由彩信 SP 自行编排 2.42.4 操作指令码操作指令码 操作指令码是指用户通过短信点播或定制彩信业务时,在短信的信息体内输入的代码,或用户上行发送彩信时,在彩信消息体内的文本信息中输入的代码。操作指令码用于标识对彩信的处理方式。此代码出现在短信或彩信的消息体内,由 SP 自行处理,彩信中心不负责处理该代码。在短信中输入的操作指令码应严格区分用户是点播、定制短信业务还是彩信业务。如果用户
13、通过短信点播或定制彩信业务,操作指令码应以 CX 开头。如:用户在短信或彩信文本信息体内输入“CX XW”发送至 8888,就是定制新浪提供的彩信图片新闻业务。2.52.5 下行业务下行业务 由 SP 主动发起的业务。这里主要指 SP 向 MMSC 发起的业务。2.62.6 上行业务上行业务 SP 被动接收的业务。这里主要指从 MMSC 那里接收业务。2.72.7 递送报告递送报告 报告是接收方(终端)对接收到消息的处理方式信息。递送报告指 MMSC 在获取这个报告后把这个信息发送给发送方(SP)。接收方对消息的处理可能是接收或者拒绝等。处理流程如下:SP 发送消息(通过 MMSC)给终端,并
14、且要求递送报告;终端接收到消息后做相应处理(接收或拒绝);MMSC 把终端对消息的处理信息(递送报告)发送给 SP。3.3.安装方法安装方法 这里主要介绍一下如何将 MM7 API 运用到 VASP 自己开发的程序中以及在配置文件中需要注意修改的地方。3.1 MM7 API3.1 MM7 API 的使用的使用 在 VASP 用 Java 开发自己程序时,只要将中国移动集团公司提供的 mm7api.jar 和 lib 下的所有的Jar 文件加入到 classpath 中即可。3.23.2 配置文件的设置配置文件的设置 配置文件 mm7Config.xml 需要根据 SP 情况进行修改。1 zxm
15、e zxme 100000000 c:vas_log 1 100 120 200 UTF-8 1 /mm7 192.120.231.180 true 192.120.231.228 80 50 10000 5 一些地方需要进行修改,下面一一说明:1 表示 VASP 作为服务端接收消息时是否进行鉴权或进行什么样的鉴权,0 表示不鉴权,1 表示进行基本鉴权,2 表示进行摘要鉴权。zxme zxme 表示彩信中心对 VASP 进行鉴权时的用户名和密码,同时也是 VASP 对接入的彩信中心进行鉴权时用户名和密码,是双向的,要 VASP 和 MMSC 双方进行约定。c:vas_log 表示日志存放的路径
16、,在 Windows 操作系统下和 Linux 下是不一样的,要注意进行修改。1 表示 MMSC 网关的序号,需要从 MMSC 处得到。/mm7 192.120.231.180 分别表示 MMSC 网关的 URL 地址和 IP(或主机名),也需要 MMSC 处得到。这里也可以填成ip:port。例如:192.120.231.180:8080,不填端口号使用默认端口号 80。192.120.231.228 80 表示当 VASP 用应用程序方式进行接收消息时的监听地址和端口号。以上为这个配置文件中主要需要注意修改的地方,当然其他的内容也可以进行修改,如1可以根据需要进行修改,0 表示不产生日志;
17、1 表示产生错误日志;3 表示产生信息日志;6 表示产生完整信息日志。10000 表示设置发送的超时时间,到发送超过这个时间,则自动进行重新发送。5 表示设置重发的次数,建议在 10 次以下,一般用 35 次即可。4.4.开发方法开发方法 这里主要介绍从 SP 接收 MMSC 发过来的 DeliverReq 开始,到 SP 发送 SubmitReq 到 MMSC的整个流程,SP 所需要做的工作。4.1 VASP4.1 VASP 接收传送请求(上行业务)接收传送请求(上行业务)VASP 接收可以有两种方式:如果 SP 的增值应用是一个普通应用程序,可以使用方式 1,即接收代理会自动打开一个监听端
18、口,启动一个监听线程来接收来自 MMSC 的多媒体消息;如果 SP 的增值应用是一个 Web 应用,则可以使用方式 2,即接收代理作为一个 Servlet运行,并自动处理从 HttpRequest 中搜索数据,并解码成多媒体消息。4.1.1 4.1.1 方式方式 1 1:普通应用程序中的:普通应用程序中的用法用法 public class MyReceiver extends MM7Receiver /定义一个 MM7DeliverReq,以便得到 MMSC 发过来的 Deliver 消息。(必备必备)public static MM7DeliverReq deliverReq=new MM7
19、DeliverReq();/Main 方法 public static void main(String args)/初始化 VASP MM7Config mm7Config=new MM7Config(“./config/mm7Config.xml”);/设置 ConnConfig.xml 文件的路径 mm7Config.setConnConfigName(“./config/ConnConfig.xml”);/必备必备/构造 MyReceiver MyReciever receiver=new MyReceiver();myReceiver.setConfig(mm7Config);/必备
20、必备/创建 MM7 消息发送接口 MM7Sender mm7Sender=new MM7Sender(mm7Config);/启动接收器 receiver.start();public MM7VASPRes doDeliver(MM7DeliverReq request)/*接收从 MMSC 发过来的传送消息,以便取出其中的部分值构造提交消息或得到一些有用 信息,如 MMSC 的标识符等*/deliverReq=request;System.out.println(“收到手机”+request.getSender()+“提交的消息,标题为:”+request.getSubject();Syst
21、em.out.println(MMSC 的标识符为:+request.GetMMSRelayServerID();/SP需要进行一些处理,例如构建MM7DeliverRes消息,设置ServiceCode或StatusCode MM7DeliverRes mm7DeliverRes=new MM7DeliverRes();mm7DeliverRes.setServiceCode(服务代码);/设置 ServiceCode,可选 mm7DeliverRes.setStatusCode(MMConstants.RequestStatus.SUCCESS);/*设置请求完成状 态,必备必备,以便表明
22、 SP 已经接收到传送消息。一般设 1000。*/mm7DeliverRes.setStatusText(所用状态文本说明);/*设置所用状态的文本说明,应限定请求状态,可选*/返回给 MM7 API,以便 API 将 MM7DeliverRes 返回给 MMSC。return(MM7VASPRes)mm7DeliverRes;4.1.2 4.1.2 方式方式 2 2:WebWeb 应用程序中的用法应用程序中的用法 public class MyReceiver extends MM7RecieveServlet public MM7VASPRes doDeliver(MM7DeliverRe
23、q request)System.out.println(“收到手机”+request.getSender()+“提交的消息,标题为:”+request.getSubject();System.out.println(MMSC 的标识符为:+request.GetMMSRelayServerID();/SP需要进行一些处理,例如构建MM7DeliverRes消息,设置ServiceCode或StatusCode MM7DeliverRes mm7DeliverRes=new MM7DeliverRes();mm7DeliverRes.setServiceCode(服务代码);/设置 Servi
24、ceCode,可选 mm7DeliverRes.setStatusCode(MMConstants.RequestStatus.SUCCESS);/*设置请求完成状 态,必备必备,以便表明 SP 已经接收到传送消息。一般设 1000。*/mm7DeliverRes.setStatusText(所用状态文本说明);/*设置所用状态的文本说明,应限定请求状态,可选*/返回给 MM7 API,以便 API 将 MM7DeliverRes 返回给 MMSC。return(MM7VASPRes)mm7DeliverRes;4.24.2 发送多媒体消息的过程(下行业务)发送多媒体消息的过程(下行业务)发送
25、多媒体消息的过程就是使用 MM7 API 组织消息,并通过 MM7Sender 发送给 MMSC 的过程。主要步骤如下:4.2.14.2.1 准备准备 1.初始化初始化 VASP 初始化 VASP 使用的是 MM7Config 类,该类定义了有关本 VASP 和对应的 MMSC 的配置信息。系统在初始化时,必须对该对象进行定义,它将用于通信类的控制。MM7Config mm7Config=new MM7Config(./config/mm7Config.xml);其中 mm7Config.xml 为配置文件,其格式如下:1 1111 11111111 100000 c:vas_log 1 UT
26、F-8 /mm7 202.202.202.202!MMSC 网关的序号 910010 1 102.102.102.102 80 100 10 1000 2.创建创建 MM7 消息发送接口:消息发送接口:创建发送接口使用的是 MM7Sender 类,其中已经封装了和 MMSC 连接的通讯机制,使用时只要创建它的一个带 MM7Config 参数的实例即可。MM7Sender mm7Sender=new MM7Sender(mm7Config);4.2.24.2.2 创建待发送消息创建待发送消息 创建待发送消息使用的类均是由 MM7Message 继承得到的。主要有 MM7SubmitReq、MM7
27、CancelReq、MM7ReplaceReq 等类,具体设置方法将分别进行介绍。4.2.2.1 4.2.2.1 创建提交增值业务的多媒体消息(创建提交增值业务的多媒体消息(MM7SubmitReqMM7SubmitReq)1.创建消息对象创建消息对象 MM7SubmitReq submitReq=new MM7SubmitReq();2.设置消息属性设置消息属性 submitReq.setTransactionID(关联标识);/*设置 MM7_submit.REQ/MM7_submit.RES 对的标识,必备必备*/submitReq.setVASPID(SP 代码);/设置 SP 代码,
28、必备必备 submitReq.setVASID(服务代码);/设置服务代码,必备必备 submitReq.setServiceCode(业务代码);/设置业务代码,必备必备 submitReq.setSenderAddress(MM 始发方的地址);设置 MM 始发方的地址(填写 SP 的服务代码,或者填写让用户回复 SP 的长号码,长号码构成:SP 的服务代码业务代码操作码),必备必备 submitReq.setChargedPartyID(“付费方手机号码”);/设置付费方的手机号码,必备必备 submitReq.setTo(接收方地址);/设置接收方 MM 的地址 submitReq.a
29、ddTo(单个接受方地址);/增加单个接受方地址 submitReq.setCc(抄送方地址);/设置抄送方 MM 的地址 submitReq.addCc(单个抄送方地址);/增加单个抄送方地址 submitReq.setBcc(密送方地址);/设置密送方 MM 的地址 submitReq.addBcc(单个密送方地址);/增加单个密送方地址 注:注:在设置或增加 To,Cc 和 Bcc 时,至少需要设置其中一个至少需要设置其中一个,这些地址可能存在多 个地址或使用指示使用分发表的别名。可以标记仅供参考的地址。submitReq.setLinkedID(链接标识);/*设置链接标识,标识传送至
30、 VASP 的上一 个有效消息的对应关系;可选*/submitReq.setMessageClass(MM 的类别);/*设置 MM 的类别(例如,广告、信息服务和计费),可选,具体有:Auto、Personal、Advertisement、Informational*/submitReq.setTimeStamp(提交 MM 的日期和时间);/*提交 MM 的时间和日期(时间戳),格式如 2004-02-09T10:21:07,可选*/submitReq.setExpiryDate(指定超时时间);/*设置 MM 指定的超时时间(绝对 或相对时间),可选*/submitReq.setEarl
31、iestDeliveryTime(最早理想时间);/*设置将 MM 传送给接收 方的最早理想时间(绝对或相对时间),可选*/submitReq.setDeliveryReport(发送报告的请求);/*设置是否需要发送报告的请 求(boolean 值),可选*/submitReq.setReadReply(需要读取报告的请求);/*设置通过请求传送一个读 取报告进行确认,可选*/submitReq.setReplyCharging(应答计费的请求);/*设置应答计费的请求(boolean 值),可选*/submitReq.setReplyDeadline(提交应答的最迟时间);/*设置在应答计
32、费的情况 下,向接收方提交应答的最迟时间(绝对或相对时间),可选*/submitReq.setReplyChargingSize(应答 MM 的最大大小);/*设置在应答计费的情况下,提供给接收方的应答 MM 的最大大小,可选*/submitReq.setPriority(消息的优先级);/*消息的优先级(重要性)(0=最低优先级,1=正常,2=紧急),byte 类型的值,可选*/submitReq.setSubject(多媒体消息的标题);/*设置多媒体消息的标题,可选*/submitReq.setAllowAdaptations(VASP 是否允许修改内容);/*设置 VASP 是否允许修
33、改内容(boolean 值,默认为真),可选*/submitReq.setChargedParty(VASP 所提交 MM 的付费方);/*设置 VASP 所提交 MM 的付费方,例如,发送方、接收方、发送方和接收方或两方均不付费,可选,0:Sender、1:Recipients、2:Both、3:Neither、4:ThirdParty*/submitReq.setContent(多媒体消息的内容);/*设置多媒体消息的内容,可选,注意当要设置时,一定要设置其 ContentType。*/submitReq.setDistributionIndicator(是否可重新分发);/*设置 VAS
34、P 是否可重新分发 MM 的内容(boolean 值,true 为可以,false 为不可以),可选*/4.2.2.2 4.2.2.2 创建取消多媒体消息(创建取消多媒体消息(MM7CancelReqMM7CancelReq)1.创建消息对象创建消息对象 MM7CancelReq cancelReq=new MM7CancelReq();2.设置消息属性设置消息属性 cancelReq.setTransactionID(关联标识);/*MM7_cancel.REQ/MM7_cancel.RES 对的标识,必备必备*/cancelReq.setVASPID(SP 代码);/*设置 SP 代码,可
35、选*/cancelReq.setVASID(服务代码);/*设置服务代码,可选*/cancelReq.setSenderAddress(MM 始发方地址);/*设置 MM 始发方地址,可选*/cancelReq.setMessageID(待取消的消息的标识符);/*设置待取消的消息的标识符,必备必备*/4.2.2.3 4.2.2.3 创建替换多媒体消息(创建替换多媒体消息(M MM7ReplaceReqM7ReplaceReq)1.创建消息对象创建消息对象 MM7ReplaceReq replaceReq=new MM7ReplaceReq();2.设置消息属性设置消息属性 replaceRe
36、q.setTransactionID(关联标识);/*设置 MM7_replace.REQ/MM7_replace.RES 对的标识,必备必备*/replaceReq.setVASPID(SP 代码);/*设置 SP 代码,可选*/replaceReq.setVASID(服务代码);/*设置服务代码,可选*/replaceReq.setMessageID(被当前消息所替换的消息的标识符);/*被当前消息 所替换的消息的标识符,必备必备*/replaceReq.setServiceCode(业务代码);/*设置业务代码,可选*/replaceReq.setTimeStamp(提交 MM 的日期和
37、时间);/*设置提交 MM 的时间和 日期(时间戳),格式如 2004-02-09T10:21:07,可选*/replaceReq.setEarliestDeliveryTime(最早理想时间);/*设置将 MM 传送给接收 方的最早理想时间(绝对或相对时间),可选*/replaceReq.setReadReply(需要读取报告的请求);/*设置通过请求传送一个读 取报告进行确认(boolean 值,true 为需要,false 为不需要),可 选*/replaceReq.setAllowAdaptations(VASP 是否允许修改内容);/*设置 VASP 是否允许 修改内容(boolea
38、n 值,默认为真),可选*/replaceReq.setContent(多媒体消息内容);/*设置多媒体消息的内容,可选,注意当要 设置时,一定要设置其 ContentType。*/replaceReq.setDistributionIndicator(是否可重新分发);/*设置 VASP 是否可重新分发 MM 的内容(boolean 值,true 为可以,false 为不可以),可选*/4.2.3 4.2.3 创建消息内容体创建消息内容体 每个消息内容体就是一个 MMContent 实例,可以添加多个消息内容体,但是所有消息内容体大小之和不能超过 MMSC 允许大小(目前最大支持 128K)
39、。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:ye
40、llow.gif);sub1.setContentID(1.gif);/可以不设/*设 置 子 附 件 的 类 型,有 两 种 设 置 方 式:一 种 是 在setContentType里 面 填 写MMConstants.ContentType 里面定义的常量,另一种是在 setContentType 里面填写一个 String 的类型,如 text/plain 等。*/sub1.setContentType(MMConstants.ContentType.GIF);/一定要设置一定要设置 content.addSubContent(sub1);/*添加类型为 Txt 的附件二*/MMCon
41、tent 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 4.2.4 发送多媒体消息发送多媒体消息 调用 MM7Sender 的 send 方法发送多媒体消息,返回 MM7RSRes 类型的消
42、息。举例,发送MM7SubmitReq 类型的消息:MM7RSRes res=mm7Sender.send(submitReq);/其它消息与此类似 4.2.54.2.5 发送发送 MM7SubmitReqMM7SubmitReq 消息到移动终端实例消息到移动终端实例 package com.cmcc.mm7.vasp.conf;import com.cmcc.mm7.vasp.message.*;import com.cmcc.mm7.vasp.service.MM7Sender;import mon.*;import java.io.*;public class VaspSendTest
43、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.se
44、tVASID(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.addS
45、ubContent(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()+;re
46、s.statusText=+res.getStatusText();4.3 VASP4.3 VASP 接收传送消息以及接收传送消息以及发送提交消息实例发送提交消息实例 举一个实例说明VASP构建MM7SubmitReq,发送给MMSC,并得到返回消息,通过StatusCode判断,本次发送是否成功,若成功,得到 MessageID,以便以后希望取消或替换该消息时用。public class MyReceiver extends MM7Receiver /定义一个 MM7DeliverReq,以便得到 MMSC 发过来的 Deliver 消息。(必备必备)public static MM7Del
47、iverReq deliverReq=new MM7DeliverReq();/Main 方法 public static void main(Stringargs)/初始化 VASP MM7Config mm7Config=new MM7Config(“./config/mm7Config.xml”);/设置 ConnConfig.xml 文件的路径 mm7Config.setConnConfigName(“./config/ConnConfig.xml”);/必备必备/构造 MyReceiver MyReciever receiver=new MyReceiver();receiver.s
48、etConfig(mm7Config);/必备必备/创建 MM7 消息发送接口 MM7Sender mm7Sender=new MM7Sender(mm7Config);/启动接收器 receiver.start();/接收 MM7DeliverReq 完毕,开始构造 MM7SubmitReq/有两种可能,一种是 MM7SubmitReq 完全由 SP 构造,另一种是 SP 用接收到的/MM7DeliverReq 的部分内容进行填充。MM7SubmitReq submitReq=new MM7SubmitReq();submitReq.setVASPID(SP 代码);/必备必备 submit
49、Req.setVASID(服务代码);/必备必备 submitReq.setServiceCode(业务代码);/必备必备 submitReq.setSenderAddress(MM 始发方的地址);/*必备必备,若想从 MM7DeliverReq 中获得,则应按下面的方式设:submitReq.setSenderAddress(deliverReq.getSender();*/submitReq.setTo(接收方地址);/*若想从 MM7DeliverReq 中获得,则应按下面的方式设:submitReq.setTo(deliverReq.getTo();*/submitReq.addTo
50、(单个接受方地址);/增加单个接受方地址 submitReq.setCc(抄送方地址);/*若想从 MM7DeliverReq 中获得,则应按下面的方式设:submitReq.setCc(deliverReq.getCc();*/submitReq.addCc(单个抄送方地址);/增加单个抄送方地址 submitReq.setBcc(密送方地址);/*若想从MM7DeliverReq中获得,则应按下面的方式设:submitReq.setBcc(deliverReq.getBcc();*/submitReq.addBcc(单个密送方地址);/增加单个密送方地址 submitReq.setLink