Posted on 2012-09-25 11:40
小白19870626 閱讀(1931)
評論(0) 編輯 收藏 所屬分類:
MM7
中興MM7接口開發
2010-03-11 14:44
1,發送彩信的時候一直報告說連接超時,返回好像是-104 ,檢查了網絡 ping IP telnet 端口似乎都好的,后來抓包才發現,發彩信的時候數據一直走80端口,不會走配置上的端口,后來才發現原來要改端口的話是要在這里<mmscIP>10.103.122.180:8080</mmscIP>加上端口號才行的.
2,返回4007 等 一般都是參數加的有問題 比如號碼+86,serviceCode VASPID sendAddress等
3,mm7api的文檔里面對于smil彩信,就說了一個含smil的彩信,必須把content-type設置成multipart-related,如果按照文檔里面的流程,即使你怎么組合,smil都不起作用的,即使你setPresentionContent(smil)了,照樣不起作用。原因很簡單,mixed方式發送彩信,只需要setContentID()就行,而related方式,必須把每一個subContent都setContentID()和setContentLocation(),這兩項的內容最好相同,比如都為他們的文件名。
(如果不填這兩個發下去的時候在諾基亞的手機里面就只能看到下發的所有文件列表,而且文件的名字和原來的不一樣 ,比如原來為001.jpg 在手機里面就顯示file001.jpg,設置了這兩個參數之后一切正常);
中興MM7接口開發
2010-03-11 14:44
1,發送彩信的時候一直報告說連接超時,返回好像是-104 ,檢查了網絡 ping IP telnet 端口似乎都好的,后來抓包才發現,發彩信的時候數據一直走80端口,不會走配置上的端口,后來才發現原來要改端口的話是要在這里<mmscIP>10.103.122.180:8080</mmscIP>加上端口號才行的.
2,返回4007 等 一般都是參數加的有問題 比如號碼+86,serviceCode VASPID sendAddress等
3,mm7api的文檔里面對于smil彩信,就說了一個含smil的彩信,必須把content-type設置成multipart-related,如果按照文檔里面的流程,即使你怎么組合,smil都不起作用的,即使你setPresentionContent(smil)了,照樣不起作用。原因很簡單,mixed方式發送彩信,只需要setContentID()就行,而related方式,必須把每一個subContent都setContentID()和setContentLocation(),這兩項的內容最好相同,比如都為他們的文件名。
(如果不填這兩個發下去的時候在諾基亞的手機里面就只能看到下發的所有文件列表,而且文件的名字和原來的不一樣 ,比如原來為001.jpg 在手機里面就顯示file001.jpg,設置了這兩個參數之后一切正常);
今天終于發出了彩信了,移動的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("");
- submit.setVASPID("");
- submit.setServiceCode("0008");
- submit.setSenderAddress("10086");
- 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 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中上傳到服務器。
小白