上海移动企信通EMA接口实现

 

      SmsEmaTest.java

import java.util.Collection;
import java.util.Iterator;
import java.util.ResourceBundle;

import javax.inject.Named;

import com.intrint.idap.net.API.EMAConnectionException;
import com.intrint.idap.net.API.EMAQuerySMS;
import com.intrint.idap.net.API.EMASendmsg;
import com.intrint.idap.net.API.IllegalParameterException;
import com.intrint.idap.net.API.LoginFailException;
import com.intrint.idap.net.API.ReceiverState;
import com.intrint.idap.net.API.SMSReply;
import com.intrint.idap.net.API.SendFailException;
import com.intrint.idap.net.API.SendTimeoutException;
import com.intrint.idap.net.API.WrongTelnumException;

public class SmsEmaTest {
/**
 * 上海移动企信通EMA接口说明
   上海移动通信有限责任公司规划设计研究中心暨数据业务中心
 * @param args
 */
	public static String enterprise_id;
	public static long sent_id;
	public static String [] strResult;
	public static String strEnterprise_id="10657001091809";//企业代码
	public static String strAccount_id="jinguo365";        //用户名
	public static String strPassword="shortM_jg365_ssage";//密码
	public static String ipaddr;
	public static String port;


	
	static{
		ResourceBundle rb = ResourceBundle.getBundle("init");
		try{
			ipaddr = rb.getString("ipaddr");
			port   = rb.getString("port");
		}catch (Exception e) {
			System.out.println("读取配置文件失败");
			e.printStackTrace();
		}
	}
	
	
	public static void main(String[] args) {
		String telnum ="18610722018";
		String strcontent="短信内容";
	try{
		EMASendmsg msg=new EMASendmsg(strEnterprise_id,strPassword,ipaddr);
		msg.setAccount_id("012");
		msg.setContentEncode("GBK");
		
		//发第一条短信给两个号码
		telnum="18610722018;13888888888";
		strcontent="这是第一条短信";
		msg.setSenttelnum(telnum);
		msg.setContent(strcontent);
		strResult=msg.send();
		for(int i=0;i<strResult.length;i++){
			System.out.println(strResult[i]);//系统函数,取得发送结果
		}
			
		//发给第二条短信给某个的号码
		telnum="18610722018";
		strcontent="这是第二条短信";
		msg.setSenttelnum(telnum);
		msg.setContent(strcontent);
		strResult=msg.send();
		for(int i=0;i<strResult.length;i++){
	       System.out.println(strResult[i]);//系统函数,取得发送结果
		}
		}catch(SendTimeoutException e){
			//发送超时
			System.out.println("发送超时");
			e.printStackTrace();
		}catch(WrongTelnumException e){
			//电话号码错误,请检查号码长度,合法性,是否130,133号码
			System.out.println("电话号码错误,请检查号码长度,合法性,是否130,133号码");
			e.printStackTrace();
		//
		}catch(SendFailException e){
		//发送失败
		System.out.println("发送失败00");
		e.printStackTrace();
		}catch (Exception e) {
			System.out.println("发送失败11");
			e.printStackTrace();
		}
	}
	
	
	/**
	 * 查询回复
	 */	
	 @Named("EmaQueryHf")
	public  static void EmaQueryHf(){
		try{
			EMAQuerySMS msg=new EMAQuerySMS(enterprise_id,strPassword);
			msg.setServerAddress("211.136.163.68");
			SMSReply smsr;
			Collection c=  msg.getSMSReplies(true);//得到短信回复
			Iterator i=c.iterator();
			while(i.hasNext()){
			smsr=(SMSReply)i.next();
			System.out.println("回复内容为"+smsr.getMessage());
			System.out.println("用户号为"+smsr.getAccountID());
			System.out.println("回复电话号码"+smsr.getReplierMobile());
			System.out.println("回复发送时间为:"+smsr.getSendTime());
		 }
		//..........可以继续提取状态报告
		}catch(LoginFailException e){
			//密码错误
			System.out.println("密码错误");
			e.printStackTrace();
		}catch(EMAConnectionException e){
			//查询超时
			System.out.println("查询超时");
			e.printStackTrace();
		}catch(IllegalParameterException e){
		    //sentID类型不对 
			System.out.println("sentID类型不对 ");
			e.printStackTrace();
		}
	}
	
	/**
	 * 查询发送状态
	 */
	public  static void EmaQuerySendSta(){
		try{
		EMAQuerySMS msg=new EMAQuerySMS(enterprise_id,strPassword);
		msg.setServerAddress(ipaddr);
		ReceiverState rs;
		Collection c=msg.getSMSSentStates(sent_id);//询短信发送状态
		Iterator i=c.iterator();
		while(i.hasNext()){
		rs=(ReceiverState)i.next();
		System.out.println("短信发送状态为:"+rs.getState());
		System.out.println("短信接收时间为:"+rs.getReceiveTime());
		System.out.println("短信接收号码为"+rs.getMobile());
		}
		}catch(LoginFailException e){
			////密码错误
			System.out.println("密码错误");
			e.printStackTrace();
		}catch(EMAConnectionException e){
			//查询超时
			System.out.println("查询超时");
			e.printStackTrace();
		}catch(IllegalParameterException e){
			// sentID类型不对
			System.out.println("sentID类型不对");
			e.printStackTrace();
		}
	}
}

你可能感兴趣的:(短信接口实现)