📄 mymmsender.java~20~
字号:
package mmsproject;
import com.cmcc.mm7.vasp.message.*;
import com.cmcc.mm7.vasp.service.MM7Sender;
import org.apache.commons.lang.*;
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
import com.cmcc.mm7.vasp.common.*;
import org.apache.log4j.*;
import javax.xml.soap.MimeHeader;
import java.text.*;
import com.cmcc.mm7.vasp.conf.*;
import java.util.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Level;
import mmsproject.common.*;
import mmsproject.model.*;
import mmsproject.*;
/**
* <p>Title: 彩信发送</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author tomato
* @version 1.0
*/
public class MyMMSender {
/**
* 彩信长度
*/
public long nMMSSize = 0;
private String printTime=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date());
/**
* 构造函数
*/
public MyMMSender() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 发送彩信至彩信中心
* @param sd SendData 彩信包 数据模型
*/
public void send(SendData sd) {
try {
//读取配置文件
//动感地带配置
final MM7Config mzone = new MM7Config("./config/mzone.xml");
mzone.setConnConfigName("./config/ConnConfig.xml");
//全球通配置
final MM7Config gotone = new MM7Config("./config/gotone.xml");
gotone.setConnConfigName("./config/ConnConfig.xml");
//1.创建MM7消息发送接口
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
MM7SubmitReq submit = new MM7SubmitReq();
//流水号
submit.setTransactionID(String.valueOf(sd.TransactionID));
System.out.println("流水号" + String.valueOf(sd.SendID));
//接收号码
String[] RecvPhoneNum = sd.RecvPhoneNum.split(";");
submit.addTo(RecvPhoneNum[0]);
System.out.println("接收号码" + RecvPhoneNum[0]);
//企业代码
submit.setVASID(GetProperties.VAS_ID);
System.out.println("企业代码" + GetProperties.VAS_ID);
//服务号码
submit.setVASPID(GetProperties.VASP_ID);
System.out.println("服务号码" + GetProperties.VASP_ID);
//业务代码
submit.setServiceCode(sd.ServiceCode);
System.out.println("业务代码" + sd.ServiceCode);
//发送号码
submit.setSenderAddress(GetProperties.VAS_ID + sd.ServiceCode);
System.out.println("发送号码" + GetProperties.VAS_ID + sd.ServiceCode);
//标题
submit.setSubject(sd.Title);
System.out.println("标题" + sd.Title);
//计费号码
submit.setChargedPartyID(sd.ChargedNumber);
System.out.println("计费号码" + sd.ChargedNumber);
//计费方式?暂时不用(通过spoa的数据确定)
submit.setChargedParty((byte) sd.ChangeType);
System.out.println(sd.ChangeType);
//是否读取状态报告
submit.setDeliveryReport(true);
submit.setReplyCharging(true);
//submit.setReadReply(true);
if (!sd.LinkId.equals("")) {
submit.setLinkedID(sd.LinkId);
System.out.println(sd.LinkId + "xx");
}
//创建主消息体
MMContent content = new MMContent();
//设置消息类型
//判断文件中是否存在smil文件
//如果文件出错,发送默认信息
try
{
int nCount = 0;
try
{
nCount = sd.ContentNames.length;
}
catch(Exception ex)
{
ex.printStackTrace();
FrmMMSManage.loggerSend.info(ex.getMessage());
}
String strSmilName = "";
for (int i = 0; i < nCount; i++)
{
if (sd.ContentNames[i].substring(sd.ContentNames[i].lastIndexOf(".") + 1).equals("smil"))
{//文件为smil文件时
sd.IsNeedSmil = true;
// strSmilName = sd.ContentNames[i];
//content.createFromFile(sd.ContentPaths[i]);
//System.out.println(sd.ContentPaths[i]);
content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);
MMContent smilSub = MMContent.createFromFile(sd.ContentPaths[i]);
smilSub.setContentType(MMConstants.ContentType.SMIL);
content.addSubContent(smilSub);
break;
}
}
//不使用smil
if (!sd.IsNeedSmil)
{
//
content.setContentType(MMConstants.ContentType.MULTIPART_MIXED);
//使用smil
}
else
{
// content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);
}
//构造消息体
for (int i = 0; i < sd.ContentPaths.length; i++)
{
if (!sd.ContentNames[i].substring(sd.ContentNames[i].lastIndexOf(".") +1).equals("smil"))
{//当文件不是smil文件时
try
{
MMContent sub = MMContent.createFromFile(sd.ContentPaths[i]);
sub.setContentID(sd.ContentNames[i]);
System.out.println(sd.ContentNames[i]);
sub.setContentType(getContentType(getSubfix(sd.ContentNames[i])));
//System.out.println("getSubfix=="+getSubfix(sd.ContentNames[i]));
//System.out.println("========="+getContentType(getSubfix(sd.ContentNames[i])));
content.addSubContent(sub);
}
catch (Exception ex)
{
//此处需要记录出错信息
FrmMMSManage.loggerSend.info("构造消息体出错" + ex.getMessage());
}
}
}
}
catch(Exception ex)
{
FrmMMSManage.m_txtStatus.setText(ex.toString());
/*
try{
MMContent sub = MMContent.createFromFile("./nopic.JPG");
sub.setContentType(getContentType("nopic.JPG"));
content.addSubContent(sub);
ex.printStackTrace();
}catch(Exception exx){
exx.printStackTrace();
}
*/
}
submit.setContent(content);
//根据需要发送到的号码获取相应配置
MM7Sender mm7Sender = null;
MM7RSRes rsRes = null;
if (this.getNumberType(RecvPhoneNum[0]) < 5) {
mm7Sender = new MM7Sender(gotone);
//发送彩信并且取得返回值
rsRes = (MM7RSRes) mm7Sender.send(submit);
} else if (this.getNumberType(RecvPhoneNum[0]) == 1) {
mm7Sender = new MM7Sender(mzone);
//发送彩信并且取得返回值
rsRes = (MM7RSRes) mm7Sender.send(submit);
} else if (this.getNumberType(RecvPhoneNum[0]) == -1) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -