最近需要与华为短信平台进行对接,发条短信提醒本来是很简单的,只要拿起短信接口套用API就行,但是华为提供的是一个盒子,类似一个服务器,号称企业信息机。虽然有一份文档,但是在这个过程中还是出现了不少坎坷,而且这个网上能够搜索到的资料也是屈指可数。经过调试,最后也是可以成功发送短信了,那么楼主就总结一下遇到的问题与开发流程吧,版本是V4.1D3API。
1)引入SMSSendAPI.jar
这边弄的是一个web工程,本身就包含一些jar包,引入SMSSendAPI.jar会导致项目冲突,原本存在的jar包可能会报找不到。
网上有说去掉所有其它的,留下com就行,但是楼主这边会有问题,经过调试保留下面这样是OK的
2)引入smsendsql.xml
话说这个也是有点坑,开发文档里面指明可以设置此路径,然而调用此方法配置了并没有用
最后只能在默认路径调用,将xml置于下面的路径,这边是放在tomcat的bin目录下
System.out.println(System.getProperty("user.dir"));
3)主要调用代码
a.数据库连接配置
首先搞清楚服务器那边用的是啥数据库,这关系到smsendsql.xml配置是否需要进行修改。这边发现用的是sqlserver,所以smsendsql.xml需要更改数据库类型配置。
另外网上有人说如果连接的是sqlserver,DB_IP写法需要修改,事实上完全不需要,下面源码一清二楚。
DBType = cfg.getArgs("common").get("activeSqlType", "SQLServer");
if(DBType.equalsIgnoreCase("SQLServer")) {
sqlArgs = cfg.getArgs("msdesql");
if(url.startsWith("jdbc:microsoft:sqlserver://")) {
returnURL = url;
} else {
returnURL = "jdbc:microsoft:sqlserver://" + url + ":1433;SelectMethod=cursor;DatabaseName=db_customsms";
}
}
b.MAS登陆
这个登陆要注意Java版本用的用户名密码与C++版本不一致,确保先用SMSendAPI_DEMO.exe成功登陆再进行代码调式