持之以恒

记录本
posts - 4, comments - 32, trackbacks - 0, articles - 74
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

MM7

Posted on 2012-09-25 11:40 小白19870626 阅读(1872) 评论(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文件如下

Java代码 收藏代码
  1. import com.cmcc.mm7.vasp.message.*;
  2. import com.cmcc.mm7.vasp.service.MM7Sender;
  3. import com.cmcc.mm7.vasp.common.*;
  4. import java.io.*;
  5. import java.text.*;
  6. import com.cmcc.mm7.vasp.conf.*;
  7. public class MM7Api
  8. {
  9. public static void main(String[] args)
  10. {
  11. final MM7Config mm7Config = new MM7Config("./config/mm7Config.xml");
  12. mm7Config.setConnConfigName("./config/ConnConfig.xml");
  13. try
  14. {
  15. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
  16. MM7SubmitReq submit = new MM7SubmitReq();
  17. submit.setTransactionID("13934557531");
  18. submit.addTo(""); //发送到的号码
  19. submit.setVASID("");//设置SP代码
  20. submit.setVASPID(""); //设置服务代码
  21. submit.setServiceCode("0008");//设置业务代码
  22. submit.setSenderAddress("10086"); //设置MM始发方的地址
  23. submit.setSubject("经营分析日报");
  24. submit.setChargedPartyID("13453417863");
  25. submit.setChargedParty((byte)4);
  26. submit.setDeliveryReport(true);
  27. MMContent presentation = MMContent.createFromFile("./test.smil");
  28. presentation.setContentType( "application/smil ");
  29. presentation.setContentID( "test.smil ");
  30. MMContent maincontent = new MMContent();
  31. maincontent.setContentID( "main ");
  32. maincontent.setContentType(MMConstants.ContentType.MULTIPART_RELATED);
  33. maincontent.addSubContent(presentation);
  34. /* MMContent content = new MMContent();
  35. content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);
  36. content.setContentID("main");
  37. MMContent sub1 = MMContent.createFromFile("./test.smil");
  38. sub1.setContentID("test.smil");
  39. sub1.setContentType(MMConstants.ContentType.SMIL);
  40. sub1.setContentLocation("test.smil");
  41. content.addSubContent(sub1);
  42. */
  43. MMContent sub2 = MMContent.createFromFile("./smil.txt");
  44. sub2.setContentID("smil.txt");
  45. sub2.setContentType(MMConstants.ContentType.TEXT);
  46. maincontent.addSubContent(sub2);
  47. MMContent sub3 = MMContent.createFromFile("./a.GIF");
  48. sub3.setContentID("a.GIF");
  49. sub3.setContentType(MMConstants.ContentType.GIF);
  50. maincontent.addSubContent(sub3);
  51. MMContent sub4 = MMContent.createFromFile("./2.txt");
  52. sub4.setContentID("2.txt");
  53. sub4.setContentType(MMConstants.ContentType.TEXT);
  54. maincontent.addSubContent(sub4);
  55. submit.setContent(maincontent);
  56. MM7Sender mm7Sender = new MM7Sender(mm7Config);
  57. MM7RSRes rsRes;
  58. rsRes = (MM7RSRes)mm7Sender.send(submit);
  59. if(rsRes instanceof MM7SubmitRes)
  60. {
  61. MM7SubmitRes submitRes = (MM7SubmitRes)rsRes;
  62. System.out.println(rsRes.getTransactionID());
  63. System.out.println("after!!submitRes.statuscode=" + rsRes.getStatusCode() + ";submitRes.statusText=" + rsRes.getStatusText());
  64. }else{
  65. System.out.println("do!rsRes.statuscode="+rsRes.getStatusCode() + ";rsRes.statusText=" + rsRes.getStatusText());
  66. }
  67. }
  68. catch (Exception e)
  69. {
  70. System.out.println(e);
  71. }
  72. }
  73. }

smil文件格式如下:

Xml代码 收藏代码
  1. <smil>
  2. <head>
  3. <layout>
  4. <root-layout width="320" height="240"/>
  5. <region id="Image" width="220" height="260" left="76" top="34"/>
  6. <region id="Text" width="168" height="20" left="76" top="220"/>
  7. </layout>
  8. </head>
  9. <body>
  10. <par dur="20s">
  11. <img src="23.jpeg" region="Image" />
  12. <text src="smil.txt" region="Text" />
  13. </par>
  14. <par dur="20s">
  15. <img src="23.jpg" region="Image" begin="0s" end="20s" ></img>
  16. <text src="2.txt" region="Text" begin="0s" end="20s" ></text>
  17. </par>
  18. </body>
  19. </smil>

需要特别主要的是

1.

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

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

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

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

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



小白

只有注册用户登录后才能发表评论。


网站导航: