一 概述
程序用JAVA语言开发,JDK版本为JDK1.5,WEB服务器为TOMCAT,TOMCAT版本为Tomcat5.5。主要完成功能为下发短信,接收回执状态报告,接收短信上行信息,
接收订购/使用通知消息。源代码为WEB程序,需要发布到WEB服务器(TOMCAT)中才能完成功能和发布webservice服务。启动TOMCAT,在IE地址栏输入“http://IP地址:端口号/SendSMSTest/services”可以看见发布服务的名字和里面的方法。程序定时查询sendSms表中信息进行下发,SP直接在sendSms表中添加记录,程序可以自动完成下发。当服务发布成功后,SmsNotification服务会接收短信上行消息和回执状态报告,
接收到的短信上行消息保存在notifMessage表中,回执状态报告信息保存到deliveryStatus表中。IsmpSpEngine服务会接收订购关系更新消息,业务执行通知消息,
管理信息通知消息。订购关系更新消息保存在orderUpdateNotify表中,业务执行通知消息保存到serviceConsume表中,管理信息通知消息保存在notifyManagementInfo表中。
二 API使用
1 短信下行(发送短信WebSerice客户端)
在源代码test.sms 包中SMSSendSmsStub.java 类是发送短信类
类名:SMSSendSmsStub
方法名:sendSms(发送短信)
输入
参数名 | 参数类型 | 描述 |
addresses | org.apache.axis.types.URI[] | 短消息要被发送到的地址 |
senderName | String | 指示短消息发送者信息 |
charging | ChargingInformation | 应用与本消息的计费 |
message | String | 短消息内容 |
receiptRequest | SimpleReference | 是否状态报告 |
soapHeader | RequestSOAPHeader | 消息头对象 |
输出
参数名 | 参数类型 | 描述 |
_resp | String | 返回码 |
调用 sendSms 方法发送短信要先设置好输入参数,具体内容参考SMSTest.java 中 main方法调用中对输入参数的配置。
2 短信上行(接收短信WebSerice服务端,服务地址)
在源代码test.sms 包中NotifySMS.java 类是接收短信类
类名:NotifySMS
方法名:notifySmsReception (接收短信类)
输入
参数名 | 参数类型 | 描述 |
registrationIdentifier | String | 标识预先约定的准则,根据该准则,应用可收到短消息通知 |
message | SmsMessage | 接收到的短信 |
Header | NotifySOAPHeader | 接收到的消息头对象 |
输出
无
NotifySMS方法是WebSerice服务端方法,服务成功发布后,方法会接收到上行短信。
Message对象包含接收到短信的主题
Header对象包含接收到短信的消息头信息,比如 (header.getLinkId();header.getProductId();header.getSAN();header.getSpId();)等信息。
方法名:notifySmsDeliveryReceipt(接收状态报告)
输入
参数名 | 参数类型 | 描述 |
correlator | String | 标识一个特定的短消息状态报告,最大长度50 |
deliveryStatus | DeliveryInformation | 接收到的短信 |
Header | NotifySOAPHeader | 接收到的消息头对象 |
输出
无
notifySmsDeliveryReceipt方法是WebSerice服务端方法,服务成功发布后,方法会接收到下行短信是返回的状态报告。
3 订购/使用通知接口
在源代码test.ismp包中IsmpSpEngineSoapBindingImpl.java 类是接收订购/使用通知消息
方法名:orderRelationUpdateNotify (订购关系更新消息)
输入
参数名 | 参数类型 | 描述 |
StreamingNo | String | 流水号,可用于调用/提供双方比较接口调用情况,60位,从0开始,用满归零 |
ProductID | String | 产品标识 |
PackageID | String | 套餐标识 |
UserID | String | 用户号码 |
UserIDType | Integer | 0:MSISDN 1:PHS 2:PSTN |
OPType | Integer | 0:订购 1:暂停 2:暂停恢复 3:退订 4:退订该SP的所有产品和套餐 5:暂停该SP的所有产品和套餐 |
输出
参数名 | 参数类型 | 描述 |
StreamingNo | String | 将调用的 StreamingNo原样返回,保证调用/返回的同步 |
ResultCode | Integer | 产品标识 |
orderRelationUpdateNotify方法是WebSerice服务端方法,服务成功发布后,方法会接收到ISMP订购关系更新的通知消息
方法名:serviceConsumeNotify (业务执行通知消息)
输入
参数名 | 参数类型 | 描述 |
StreamingNo | String | 流水号,可用于调用/提供双方比较接口调用情况,60位,从0开始,用满归零 |
ProductID | String | 产品标识 |
LinkID | String | 格式如下:MMDDHHMMSS+1位随机序列号 |
UserID | String | 用户号码 |
UserIDType | Integer | 0:MSISDN 1:PHS 2:PSTN |
featureStr | String | 使用特征码 |
输出
参数名 | 参数类型 | 描述 |
StreamingNo | String | 将调用的 StreamingNo原样返回,保证调用/返回的同步 |
ResultCode | Integer | 产品标识 |
serviceConsumeNotify方法是WebSerice服务端方法,服务成功发布后,方法会接收到用户执行业务时ISMP发送给SP的业务执行通知消息
方法名:notifyManagementInfo(管理信息通知接口)
输入参数
参数名 | 参数类型 | 描述 |
StreamingNo | String | 流水号,可用于调用/提供双方比较接口调用情况,60位,从0开始,用满归零 |
ID | String | 编号,根据IDType填写 |
IDType | Integer | 0:ProductId 1:PackageID 2:ServiceID 3:ServiceCapabilityID |
status | Integer | 0:正常 1:申请 2:暂停 3:预注销 4:注销 |
输出
参数名 | 参数类型 | 描述 |
StreamingNo | String | 将调用的 StreamingNo原样返回,保证调用/返回的同步 |
ResultCode | Integer | 产品标识 |
notifyManagementInfo方法是WebSerice服务端方法,服务成功发布后,方法会接收到SP的业务能力签约、业务、产品、套餐、的状态变化时的通知消息。
4 数据库表说明
数据库名:sms (数据库连接配置在/WEB-INF/sp.properties文件中修改)
表名:deliveryStatus
保存回执状态报告消息,发送短信后,会接收到回执的状态报告消息,程序把消息保存在这张表中。
表名:notifMessage
保存短信上行消息,服务如果接收到短信上行消息将会自动保存到这张表中。
表名:orderUpdateNotify
保存订购关系更新消息,服务接收到订购关系更新消息,将会自动保存在这张表中。
表名:notifyManagementInfo
保存SP的业务能力签约、业务、产品、套餐、的状态变化时的通知消息
表名:serviceConsume
保存用户执行业务时ISMP发送给SP的业务执行通知消息
表名:sendSms
保存要发送短信的内容,用户要发送的短信内容添加到这张表中,程序会自动发送表中的短信内容,其中表字段status=0时是要发送的状态,status=1是发过的状态。