今天终于发出了彩信了,移动的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中上传到服务器。