江苏电信企信通API接口说明文档
}
}
System.out.println(\System.out.println(\System.out.println(\System.out.println(\System.out.println(\System.out.println(\System.out.println(\
4.1.3. 运行结果
login sucess 153132001
AnswerBean seqIdString:153132001 AnswerBean status:0
AnswerBean msgId:I20121109153132111457 ReturnMsgBean sequenceId: 20121109153137111514 ReturnMsgBean msgId: I20121109153132111457 ReturnMsgBean sendNum: 13218065876
ReturnMsgBean receiveNum: 77600002586588014 ReturnMsgBean submitTime: 1211091531 ReturnMsgBean sendTime: 1211091531 ReturnMsgBean msgStatus: DELIVRD ReturnMsgBean msgErrStatus: 0
第23页
江苏电信企信通API接口说明文档
4.2. 接收上行短信
4.2.1. 流程说明
一、
编写接收类,实现接收上行短信及回执的抽象类ReceiveMsg的继承类
ReceiveImpl,(参照例程ReceiveDemo.java),实现接收上行短信的函数getUpMsg; 二、
初始化 initParameters,将第一步实现的继承类ReceiveImpl作为参数
传递至initParameters方法,初始化发送短信Socket; 三、 四、
认证请求 anthenMsg ,登录至企信通平台进行认证;
如果第三步返回true证明认证成功,否则返回第三步重新认证。
(注:接收上行短信,只需要完成以上操作步骤,企信通API平台在接收到上行短信时,会主动的调用ReceiveImpl的getUpMsg方法,将数据传递至这些方法,不需要再显式的调用这个方法来实现接收功能)
4.2.2. 代码
Demo.java 发送短信示例
import com.linkage.netmsg.NetMsgclient; import com.linkage.netmsg.server.ReceiveMsg; public class Demo {
public static void main(String[] args) {
NetMsgclient client = new NetMsgclient();
/*ReceiveMsgImpl为ReceiveMsg类的子类,构造时,构造自己继承的子类就行*/
ReceiveMsg receiveMsg = new ReceiveDemo(); /*初始化参数*/ client
=
client.initParameters(\
9005,
\
第23页
江苏电信企信通API接口说明文档
\ try {
/*登录认证*/
boolean isLogin = client.anthenMsg(client); if(isLogin) {
System.out.println(\ }
} catch (Exception e1) { e1.printStackTrace(); } } }
ReceiveDemo.java 接收消息示例
import com.linkage.netmsg.server.AnswerBean; import com.linkage.netmsg.server.ReceiveMsg; import com.linkage.netmsg.server.ReturnMsgBean; import com.linkage.netmsg.server.UpMsgBean;
public class ReceiveDemo extends ReceiveMsg {
/*接收上行短信的方法*/
/*获取下行短信返回状态和短信ID的方法*/ public void getAnswer(AnswerBean answerBean) { }
super.getAnswer(answerBean);
第23页
江苏电信企信通API接口说明文档
}
public void getUpMsg(UpMsgBean upMsgBean) {
super.getUpMsg(upMsgBean);
String sequenceId = upMsgBean.getSequenceId(); /* 发送号码 */
String sendNum = upMsgBean.getSendNum(); /* 接收号码 */
String receiveNum = upMsgBean.getReceiveNum(); /* 上行短信到达时间 */
String msgRecTime = upMsgBean.getMsgRecTime(); /* 短信内容 */
String msgContent = upMsgBean.getMsgContent();
}
//此处加入接收上行短信的处理代码
System.out.println(\System.out.println(\System.out.println(\System.out.println(\System.out.println(\
/* 获取下行短信回执的方法 */
public void getReturnMsg(ReturnMsgBean returnMsgBean) { }
super.getReturnMsg(returnMsgBean);
第23页
江苏电信企信通API接口说明文档
4.2.3. 运行结果
login sucess
UpMsgBean sendNum: 13212345678 UpMsgBean receiveNum: 02588888888 UpMsgBean msgRecTime: 12/11/09 15:35:18 UpMsgBean msgContent: 测试上行短信
4.3. 测试代码部署
1、在主机上安装jdk,确定javac和java命令能运行。
2、在主机上新建目录,如/demo,进入此目录,将测试代码(Demo.java,ReceiveDemo.java)和jar包(sendMsg_jdk1.X.jar)都拷贝到此目录下。
3、编译java代码,执行命令 javac -classpath .:sendMsg_jdk1.X.jar *.java,编译成功会出现二进制文件 Demo.class 和 ReceiveDemo.class 4、运行Demo,执行命令 java -classpath .:sendMsg_jdk1.X.jar Demo 5、查看控制台打印的运行结果。 6、按Crtl + C 退出程序。
5. 常见问题
1、发送多条短信是什么过程?
答:在发送短信时,第二、三步只需执行一次即可,即:初始化连接、认证只需要一次,再次发短信时直接调用第五步就行,在发送短信时要保持连接不要断开,才能正确的接收返回的序列ID、响应、msgID、回执以及上行短信。
第23页