1.下载中移mm7 api文档
2.下载几个包,和配置文件,这里网上都有
3.下面实际上代码
//发送彩信 mm7
private void sendCMsg(Connection conn, CMPPTaskInfo taskInfo) {
log.info("sendThread====sendCMsg====start");
String fileId = taskInfo.getFileId();
String msg = taskInfo.getContent();
Environment environment = SpringContextUtil.getBean(Environment.class);
String rootPath = environment.getProperty("mms.file.path");
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
MM7SubmitReq submit = new MM7SubmitReq();
submit.setTransactionID(taskInfo.getSeqId().toString());
submit.addTo(taskInfo.getReceiver());
submit.setVASID(environment.getProperty("mm7.VASID"));
submit.setVASPID(environment.getProperty("mm7.VASPID"));
submit.setServiceCode(environment.getProperty("mm7.ServiceCode"));
submit.setSenderAddress(environment.getProperty("mm7.SenderAddress"));
submit.setSubject("位置信息");
submit.setChargedPartyID(taskInfo.getReceiver());
submit.setChargedParty((byte) 4);
submit.setDeliveryReport(true);
//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("详细地图");
/* MMContent sub1 = MMContent.createFromFile("./ccc.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);*/
byte[] bb = (byte[]) null;
try {
bb = msg.getBytes("gb2312");
} catch (Exception e) {
try {
bb = msg.getBytes(StandardCharsets.UTF_8);
} catch (Exception e1) {
bb = msg.getBytes();
}
}
InputStream input = new ByteArrayInputStream(bb);
MMContent sub2 = MMContent.createFromStream(input);
sub2.setContentID("位置");
//可以设置成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(rootPath + fileId);
sub4.setContentID("地图");
sub4.setContentType(MMConstants.ContentType.JPEG);
content.addSubContent(sub4);
submit.setContent(content);
MM7Sender mm7Sender = new MM7Sender(NxSmsMain.mm7Config);
MM7RSRes rsRes;
rsRes = (MM7RSRes) mm7Sender.send(submit);
if (rsRes instanceof MM7SubmitRes) {
//变更该条数据状态为已发送成功
log.info("mm7====变更发送状态=seq:{}", taskInfo.getSeqId() + "");
dao.updateSendSuss(ConnectionManager.getInstance().getConnection(), false, taskInfo.getSeqId() + "");
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);
}
}
``
//添加几个容易出现的问题
//1.需要和彩信网关连接并加上白名单
//2.注意配置文件 里面的这几个
cancelReq.setVASID("4444");
cancelReq.setVASPID("804444");
cancelReq.setSenderAddress("4444");