当前位置:编程学习 > JAVA >>

中国联通彩信接口

public static void main(String[] args)
{

final MM7Config mm7Config = new MM7Config("E:\\workspace\\mmsplatform\\webapp\\config\\mm7Config.xml");
mm7Config.setConnConfigName("E:\\workspace\\mmsplatform\\webapp\\config\\ConnConfig.xml");

try
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
MM7SubmitReq submit = new MM7SubmitReq();

submit.setTransactionID("1000000");
submit.addTo("13044186240");
submit.setVASID("1065502160059");
submit.setVASPID("2160059");
submit.setServiceCode("00");
submit.setSenderAddress("1065502160059");
submit.setSubject("MMS测试");
submit.setChargedPartyID("13296140041");
submit.setChargedParty((byte)4);
submit.setDeliveryReport(true);

   // submit.setChargedPartyID("13296140041");
//     submit.setChargedParty((byte)4);
// submit.setDeliveryReport(true);
//     submit.setChargedParty(i);
//     submit.addCc("43");
//     submit.addBcc("12");

//submit.addTo("13680000048");
//submit.addTo("13980000035");
//submit.addTo("13980000033");
//submit.addTo("13980000051");
//submit.addTo("13980000053");
//submit.addTo("13980000058");

// submit.setVASID("5555");
// submit.setVASPID("805555");
// submit.setServiceCode("000000");
// submit.setSenderAddress("5555");
//
// submit.setChargedPartyID("13980000035");

//submit.setReplyCharging(true);
//submit.setReplyChargingSize(100);
//submit.setReplyDeadline(sdf.parse("2005-03-23T15:35:00"));
//submit.setMessageClass("Personal");
//submit.setReadReply(true);
//submit.setEarliestDeliveryTime(sdf.parse("2005-03-21T21:35:00"));
//submit.setExpiryDate(sdf.parse("2004-03-11T17:00:00"));
//submit.setPriority((byte)2);
//submit.setMessageClass("Personal");
//submit.setReplyDeadline(sdf.parse("2004-03-03T23:59:59"));

MMContent content = new MMContent();
content.setContentType(MMConstants.ContentType.MULTIPART_MIXED);
content.setContentID("mm7Test");
      MMContent sub1 = MMContent.createFromFile("c:\\1.jpg");
sub1.setContentID("1.jpg");
sub1.setContentType(MMConstants.ContentType.JPEG);
content.addSubContent(sub1);
// MMContent sub3 = MMContent.createFromFile("./bbb.mid");
// sub3.setContentID("1.mid");
// sub3.setContentType(MMConstants.ContentType.MIDI);
// content.addSubContent(sub3);
String ss = "这是一个测试MMS";
byte[] bb = null;
bb = ss.getBytes();
InputStream input = new ByteArrayInputStream(bb);
MMContent sub2 = MMContent.createFromStream(input);
sub2.setContentID("2.txt");
                        //可以设置成sub2.setContentType("text/plain");也可以用下面方法设置
sub2.setContentType(MMConstants.ContentType.TEXT);
content.addSubContent(sub2);
/* byte[] bb = null;
bb = "大学生".getBytes("UTF-8");
MMContent sub2 = MMContent.createFromBytes(bb);
sub2.setContentID("2.txt");
sub2.setContentType(MMConstants.ContentType.TEXT);
content.addSubContent(sub2);*/

/* MMContent sub4 = MMContent.createFromFile("./aaa.gif");
sub4.setContentID("1.gif");
sub4.setContentType(MMConstants.ContentType.GIF);
content.addSubContent(sub4);*/

submit.setContent(content);

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("不正确消息!rsRes.statuscode="+rsRes.getStatusCode() + ";rsRes.statusText=" + rsRes.getStatusText());
}
/*
MM7CancelReq cancelReq = new MM7CancelReq();
cancelReq.setTransactionID(submitRes.getTransactionID());
cancelReq.setMessageID(submitRes.getMessageID());
cancelReq.setVASID("4444");
cancelReq.setVASPID("804444");
cancelReq.setSenderAddress("4444");
rsRes = mm7Sender.send(cancelReq);
if(rsRes instanceof MM7CancelRes)
{
MM7CancelRes cancelRes = (MM7CancelRes)rsRes;
System.out.println("-----------------------");
System.out.println(cancelRes.toString());
System.out.println("cancelRes!statuscode="+cancelRes.getStatusCode()+";statustext="+cancelRes.getStatusText());
}else{
  System.out.println("不正确消息!rsRes.statuscode="+rsRes.getStatusCode() + ";rsRes.statusText=" + rsRes.getStatusText());
}
*/
/*
MM7ReplaceReq replaceReq = new MM7ReplaceReq();
replaceReq.setTransactionID(submitRes.getTransactionID());
replaceReq.setMessageID(submitRes.getMessageID());
replaceReq.setVASID("4444");
replaceReq.setVASPID("804444");
replaceReq.setServiceCode("123");
content = new MMContent();
content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);
content.setContentID("mm7Test");
ss = "这是一个Replace MMS";
bb = null;
bb = ss.getBytes();
input = new ByteArrayInputStream(bb);
sub2 = MMContent.createFromStream(input);
sub2.setContentID("2.txt");
sub2.setContentType(MMConstants.ContentType.TEXT);
content.addSubContent(sub2);
replaceReq.setContent(content);
rsRes = mm7Sender.send(replaceReq);
if(rsRes instanceof MM7ReplaceRes)
{
MM7ReplaceRes replaceRes = (MM7ReplaceRes)rsRes;
System.out.println("Replace!res.statuscode="+replaceRes.getStatusCode()+";res.statustext="+replaceRes.getStatusText());
}else{
  System.out.println("不正确消息!rsRes.statuscode="+rsRes.getStatusCode() + ";rsRes.statusText=" + rsRes.getStatusText());
}
*/
}
catch (Exception e)
{
System.out.println(e);
}
}




运行一直报:
没有成功建链!原因:java.net.ConnectException: Connection timed out: connect
不正确消息!rsRes.statuscode=-104;rsRes.statusText=Socket不通!

有谁知道是不是mm7Config.xml配置有问题,mm7Config.xml配置里的
<mmscURL></mmscURL>
<MmscID></MmscID>
<ListenIP></ListenIP>
<ListenPort></ListenPort>应该填什么,给我的文档里面没有这几个的配置。
急急急 不甚感谢!!! --------------------编程问答-------------------- 什么情况? --------------------编程问答-------------------- --------------------编程问答-------------------- 现在不报
没有成功建链!原因:java.net.ConnectException: Connection timed out: connect
不正确消息!rsRes.statuscode=-104;rsRes.statusText=Socket不通!
这个异常了。但是除了新的问题。
不正确消息!rsRes.statuscode=-102;rsRes.statusText=接收失败!
那位大侠知道啊??????????????? --------------------编程问答-------------------- 彩信开发者进来啊。高手呢???????????? --------------------编程问答--------------------
高手在此,问题自己去想 --------------------编程问答-------------------- --------------------编程问答-------------------- 神马东东 --------------------编程问答-------------------- <mmscURL></mmscURL>
<MmscID></MmscID>
<ListenIP></ListenIP>
<ListenPort></ListenPort>

联通网关的URL端口和监听上行事件的IP及端口
前2个找你客户经理拿
ListenIP填服务器的外网IP
ListenPort填一个未使用的端口号 --------------------编程问答-------------------- rsRes.statuscode=-102;rsRes.statusText=接收失败!
一般是什么错了????? --------------------编程问答-------------------- The main loop for serving clients (tcpserver) failed --------------------编程问答-------------------- 我也碰到这样的问题,还没有解决~~ --------------------编程问答-------------------- 运行一直报:
没有成功建链!原因:java.net.ConnectException: Connection timed out: connect
 
连接超时 --------------------编程问答-------------------- mmscURL 彩信网关的URL 类似http://111.111.111.111:111/vas 需要从联通那获取
mmscID 这个可能不需要 

<ListenIP></ListenIP>
<ListenPort></ListenPort>
这两个是处理上行消息用的 就是从彩信中心发过来的 填的是你程序部署的机器外网IP和端口 只发消息不需要这个

mmscURL填对了应该就能连上了 但是你的IP也需要提供给联通那边 要不然你可能会收到这种response
<Status><StatusCode>4007</StatusCode><StatusText>Authority failed, Authority ip failed.</StatusText></Status>
这个可能跟那边的验证方式有关 

还有两三个参数也是必须的
VASPID 这个需要从联通那申请的
VASID和ServiceCode 这个我不是很清楚是自己随便设置的还是联通那边给的

这些都对了就能把消息发出去了 至于付费什么的可能跟sp的类型有关 
网上有个MMSCSimulation.jar可以用一下 处理下行的还行 上行的好像不太好用 --------------------编程问答-------------------- 是不是这个里面写的不对  mm7Config.xml,我现在也在搞联通彩信,一起研究下

<mmscURL>/vas</mmscURL>
<mmscIP>211.91.132.155:12280</mmscIP>
<MmscID>627001</MmscID> --------------------编程问答-------------------- 有解决的吗?我这也遇到-108 badrequest 了
--------------------编程问答-------------------- 本菜鸟刚开始学习联通彩信接口开发,求大神指导! --------------------编程问答-------------------- 还是没有解决啊! --------------------编程问答-------------------- 您好,你在做彩信吗???  我最近也在做彩信发送的功能。。。使用mm7的,你的彩信开发好了吗??? --------------------编程问答-------------------- --------------------编程问答-------------------- 下行业务在第三方网关处没有开通,去申请开通就可以了。
请确认SP接入好和VISP代码是否是第三方网关给的。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,