?? mymmsender.java
字號:
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: 彩信發(fā)送</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());
/**
* 構(gòu)造函數(shù)
*/
public MyMMSender() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 發(fā)送彩信至彩信中心
* @param sd SendData 彩信包 數(shù)據(jù)模型
*/
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.創(chuàng)建MM7消息發(fā)送接口
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]);
//企業(yè)代碼
submit.setVASID(GetProperties.VAS_ID);
System.out.println("企業(yè)代碼" + GetProperties.VAS_ID);
//服務(wù)號碼
submit.setVASPID(GetProperties.VASP_ID);
System.out.println("服務(wù)號碼" + GetProperties.VASP_ID);
//業(yè)務(wù)代碼
submit.setServiceCode(sd.ServiceCode);
System.out.println("業(yè)務(wù)代碼" + sd.ServiceCode);
//發(fā)送號碼
submit.setSenderAddress(GetProperties.VAS_ID + sd.ServiceCode);
System.out.println("發(fā)送號碼" + GetProperties.VAS_ID + sd.ServiceCode);
//標(biāo)題
submit.setSubject(sd.Title);
System.out.println("標(biāo)題" + sd.Title);
//計費號碼
submit.setChargedPartyID(sd.ChargedNumber);
System.out.println("計費號碼" + sd.ChargedNumber);
//計費方式?暫時不用(通過spoa的數(shù)據(jù)確定)
submit.setChargedParty((byte) sd.ChangeType);
System.out.println(sd.ChangeType);
//是否讀取狀態(tài)報告
submit.setDeliveryReport(true);
//submit.setReplyCharging(true);
//submit.setReadReply(true);
if (!sd.LinkId.equals("")) {
submit.setLinkedID(sd.LinkId);
System.out.println(sd.LinkId + "xx");
}
//創(chuàng)建主消息體
MMContent content = new MMContent();
//設(shè)置消息類型
//判斷文件中是否存在smil文件
//如果文件出錯,發(fā)送默認信息
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);
}
//構(gòu)造消息體
for (int i = 0; i < sd.ContentPaths.length; i++)
{
if (!sd.ContentNames[i].substring(sd.ContentNames[i].lastIndexOf(".") +1).equals("smil"))
{//當(dāng)文件不是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("構(gòu)造消息體出錯" + 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);
//根據(jù)需要發(fā)送到的號碼獲取相應(yīng)配置
MM7Sender mm7Sender = null;
MM7RSRes rsRes = null;
if (this.getNumberType(RecvPhoneNum[0]) < 5) {
mm7Sender = new MM7Sender(gotone);
//發(fā)送彩信并且取得返回值
rsRes = (MM7RSRes) mm7Sender.send(submit);
} else if (this.getNumberType(RecvPhoneNum[0]) == 1) {
mm7Sender = new MM7Sender(mzone);
//發(fā)送彩信并且取得返回值
rsRes = (MM7RSRes) mm7Sender.send(submit);
} else if (this.getNumberType(RecvPhoneNum[0]) == -1) {
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -