MM7发送彩信

     今天终于发出了彩信了,移动的MM7文档写的太不全了,折腾了好几天,总算是发出去了。MM7ApiI文件如下

import com.cmcc.mm7.vasp.message.*;
import com.cmcc.mm7.vasp.service.MM7Sender;


import com.cmcc.mm7.vasp.common.*;

import java.io.*;
import java.text.*;
import com.cmcc.mm7.vasp.conf.*;

public class MM7Api
{
	public static void main(String[] args)
	{

		final MM7Config mm7Config = new MM7Config("./config/mm7Config.xml");
		mm7Config.setConnConfigName("./config/ConnConfig.xml");

		try
		{
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
			MM7SubmitReq submit = new MM7SubmitReq();
			submit.setTransactionID("13934557531");
			submit.addTo(""); //发送到的号码		
			submit.setVASID("");//设置SP代码
			submit.setVASPID(""); //设置服务代码
			submit.setServiceCode("0008");//设置业务代码
			submit.setSenderAddress("10086"); //设置MM始发方的地址
			submit.setSubject("经营分析日报");
			submit.setChargedPartyID("13453417863");
			
			submit.setChargedParty((byte)4);
			submit.setDeliveryReport(true);
			
			MMContent   presentation   =   MMContent.createFromFile("./test.smil");
	        presentation.setContentType( "application/smil "); 
	        presentation.setContentID( "test.smil "); 
	        MMContent   maincontent   =   new   MMContent(); 
	        maincontent.setContentID( "main "); 
	        maincontent.setContentType(MMConstants.ContentType.MULTIPART_RELATED); 
	        maincontent.addSubContent(presentation); 
	        
/*			MMContent content = new MMContent();
			content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);
			content.setContentID("main");
			
			MMContent sub1 = MMContent.createFromFile("./test.smil");
			sub1.setContentID("test.smil");
			sub1.setContentType(MMConstants.ContentType.SMIL);
			sub1.setContentLocation("test.smil");
			content.addSubContent(sub1);
			*/
			MMContent sub2 = MMContent.createFromFile("./smil.txt");
			sub2.setContentID("smil.txt");
			sub2.setContentType(MMConstants.ContentType.TEXT);
			maincontent.addSubContent(sub2);
			
			MMContent sub3 = MMContent.createFromFile("./a.GIF");
			sub3.setContentID("a.GIF");
			sub3.setContentType(MMConstants.ContentType.GIF);
			maincontent.addSubContent(sub3);
			
			MMContent sub4 = MMContent.createFromFile("./2.txt");
			sub4.setContentID("2.txt");
			sub4.setContentType(MMConstants.ContentType.TEXT);
			maincontent.addSubContent(sub4);
			
			submit.setContent(maincontent);
			MM7Sender mm7Sender = new MM7Sender(mm7Config);
			MM7RSRes rsRes;			
			rsRes = (MM7RSRes)mm7Sender.send(submit);
			
			if(rsRes instanceof MM7SubmitRes)
			{
			MM7SubmitRes submitRes = (MM7SubmitRes)rsRes;
			
			System.out.println(rsRes.getTransactionID());
			System.out.println("after!!submitRes.statuscode=" + rsRes.getStatusCode() + ";submitRes.statusText=" + rsRes.getStatusText());
			}else{
			  System.out.println("do!rsRes.statuscode="+rsRes.getStatusCode() + ";rsRes.statusText=" + rsRes.getStatusText());
			}
		}
		catch (Exception e)
		{
			System.out.println(e);
		}
	}
}

 smil文件格式如下:

<smil>
  <head>
    <layout>
      <root-layout width="320" height="240"/>
      <region id="Image" width="220" height="260" left="76" top="34"/>
      <region id="Text" width="168" height="20" left="76" top="220"/>
    </layout>
  </head>

  <body>
    <par dur="20s">
      <img src="23.jpeg" region="Image" />
      <text src="smil.txt" region="Text" />
    </par>
     <par dur="20s">  
 		<img src="23.jpg" region="Image" begin="0s" end="20s" ></img>  
 		<text src="2.txt" region="Text" begin="0s" end="20s" ></text>  
 	</par>
    
  </body>
</smil>

 需要特别主要的是

1.

submitReq.setVASPID("SP代码") ;  //设置SP代码

submitReq.setVASID("服务代码") ; //设置服务代码

submitReq.setServiceCode("业务代码");  //设置业务代码

如果出现rsRes.statuscode=4007;rsRes.statusText=Authority failed为鉴权失败,一般为上述设置不对。

2.当时我是只把smil文件传上去,以为有了这个文件系统会根据路径来读取所有的文件,其实不然,smil中出现的文件都得自己加到MMContent中上传到服务器。

你可能感兴趣的:(xml)