求助java 如何连 cmpp 2.0 的问题

Python020

求助java 如何连 cmpp 2.0 的问题,第1张

public void smsDemo(String content, String phone) throws IOException {

Args smsArgs = new Cfg("config.xml", false).getArgs("ismg")

smsArgs.set("source-addr", "XXXX")

smsArgs.set("shared-secret", "XXXX")

smsArgs.set("port", 7890)

smsArgs.set("host", "XXXXXX")

smsArgs.set("heartbeat-interval", 10)

smsArgs.set("reconnect-interval", 30)

smsArgs.set("heartbeat-noresponseout", 5)

smsArgs.set("transaction-timeout", 20)

smsArgs.set("version", 1)

smsArgs.set("debug", false)

CMPPSMProxy cmppSmProxy = new CMPPSMProxy(smsArgs)

String[] rcvMobile = phone.split(",")

CMPPSubmitMessage submitMsg = new CMPPSubmitMessage(1, // 相同Msg_id消息的总条数

1, // 相同Msg_id的消息序号

1, // 需要状态报告

1, // 信息类别

"websms", // 业务类型,应与Infox对应

1, // 计费用户类型,0:对目的终端MSISDN计费,1:对源终端MSISDN计费,2:对SP计费,3:本字段无效

"", // 被计费用户的号码(因是对主叫计费,所以此段填写了空)

0, // GSM协议类型

0, // GSM协议类型

1, // 信息的CMPP格式类型: 0: ASCII格式, 1: UCS2格式

"websms", // 信息内容来源,对应于登录Infox的帐号

"02", // 资费类别,“短消息类型”为“发送”,对“计费用户号码”不计信息费,此类话单仅用于核减SP对称的信道费

"10", // 资费代码,以分为单位

new java.util.Date(System.currentTimeMillis() + 2 * 24 * 60

* 60 * 1000), // 存活有效期,当前时间+2天

new java.util.Date(System.currentTimeMillis()), // 定时发送时间(null:立即发送)

"8888", // 源终端MSISDN号码(为SP的服务代码或前缀, 为服务代码的长号码,

// 网关将该号码完整的填到SMPP协议相应的destination_address字段,

// 该号码最终在用户手机上显示为短消息的主叫号码) (没有可以为空)

rcvMobile, // 接收业务的MSISDN号码(数组)

content.getBytes("utf-8"), "")

CMPPSubmitRepMessage rep = (CMPPSubmitRepMessage) cmppSmProxy

.send(submitMsg)

if (rep != null) {

prlint(phone + ":发送结果smsDemo: " + rep.getResult()

+ ",rep.getSequenceId():" + rep.getSequenceId()

+ ",rep.getMsgId():" + rep.getMsgId()

+ ",rep.getCommandId():" + rep.getCommandId()

+ new Timestamp(System.currentTimeMillis()))

}

cmppSmProxy.close()

System.out.println("执行完毕smsDemo:" + rep)

}

1.通过移动或联通短信网关发送短信,这需要通信服务商给你开通短信端口,发送短信协议各个服务商都不一样,比如移动的是cmpp2,cmpp3等

2.第二种是通过硬件设备发送短信,这个需要你有专门的硬件设备,比如一个上网卡或者一个手机模块,通过调用com遵从一些协议发送短信

单纯靠写代码是无法发短信的,至少要有一个WEBSERVICE接口或者硬件接口。