商信通接口 WebService协议
(版本:1.3)
(密级:)
天讯瑞达通信技术有限公司
2011年08月
|
项目名称/代码: |
商信通平台 |
|
版本: |
1.3 |
|
状态: |
|
|
所有人: |
天讯瑞达通信技术有限公司 |
|
作者/创建时间: |
|
|
批准人/批准时间: |
|
|
文档更改历史记录 |
|
序号 |
主要更改内容 |
版本号 |
更改人 |
更改时间 |
|
1 |
创建文档 |
1.0 |
郑亚川 |
2010.05.07 |
|
2 |
修改部分参数 |
1.1 |
郑亚川 |
2010.11.10 |
|
3 |
增加用户信息查询 |
1.2 |
郑亚川 |
2010.12.20 |
|
4 |
增加发送任务接口 |
1.3 |
郑亚川 |
2011.08.04 |
|
6 |
|
|
|
|
1. 概述
本文档描述商信通(SMSServer)对外提供能力的方式和接口描述,供能力调用者开发所用。
1.1. 能力调用方式
SMSServer对业务能力调用者如无特殊说明,主要采用通过WebService的方式进行同步调用,其他方式调用将会在接口中说明。对接口提供的实现方式:SMSServer提供短信发送接口和查询接口供能力调用者定期轮询。
1.2.SXTServer主要短信接口
SMSServer主要短信接口:
1)同步的发送接口,能力调用者向SMSServer发送短信请求;
2)同步的回执集接口,能力调用者轮询SMSServer,看短信回执是否已经可查到,群发短信的回执是以集合的方式返回;
3)同步的接收上行短信接口,能力调用者轮询SMSServer,是否收到新的上行短信。
2. 能力接口说明
在能力调用者和SMSServer之间的接口内容,主要包含三方面数据:1)能力调用者数据,CII(Capability Invoker Identity),主要是SMSServer对能力调用者的认证鉴权使用;2)企业用户数据,BUI(Business User Identity),主要是为Scape提供完整记录用户使用能力日志的功能;3)有效载荷,Payload,每一种能力需要的用户有效输入。
能力调用者数据,CII的数据结构:
|
CII(Capability Invoker Identity) |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
account |
帐号,由SXTServer分配。
|
String |
N |
≤18 |
|
password |
密码
|
String |
N |
≤18 |
|
extendField |
扩展字段(置空)
|
String |
Y |
≤18 |
|
timestamp |
timestamp(时间戳)为18位数字组成的字符串,前13位为发起请求或应答时间的13位long类型值(1970年1月1日起直至当前时间的以毫秒为单位的时间间隔的值),后5位为随机数。(置空)
|
String |
Y |
18 |
|
hashcode |
=md5(Account+Timestamp+Password),account和timestamp为上述字段,password为account的密码。(置空)
|
String |
Y |
32 |
企业用户数据(非必要),BUI的数据结构如下:
|
BUI(Business User Identity) |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
id |
企业客户帐号在商企平台的唯一ID,即bnetId(置空)
|
String |
Y |
≤18 |
|
account |
企业客户下的用户帐号(置空)
|
String |
Y |
18 |
(注:Payload有效载荷数据在能力接口中进行详细说明。)
2.1 发送短信接口(sendSMS)
函数格式:CTCapResult sendSMS(CII cii,BUI bui,SMSPayload smsPayload)
调用者:客户端
被调用者:服务端
2.1.1. 请求参数
|
请求参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
cii |
能力调用者信息
|
CII |
N |
|
|
bui |
企业用户数据(非必要)
|
BUI |
Y |
|
|
smsPayload |
发送短信有效载荷
|
SMSPayload |
N |
|
SMSPayload数据结构:
|
SMSPayload |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
content |
短信内容 |
String |
N |
≤1024 |
|
contentFormat |
短信内容编码,UTF-8编码格式。(置空) |
String |
Y |
|
|
needFeedback |
短信是否需要回执
0-不需要回执
1-需要回执 |
String |
N |
|
|
password |
发送端口号的密码(置空) |
String |
Y |
≤30 |
|
receivers |
接收者号码数组 |
String[] |
N |
|
|
areacode |
接收者号码的归属地(置空) |
String |
Y |
|
|
sender |
发送端口号(置空) |
String |
Y |
≤30 |
|
补充说明:接收号码组最多200个,建议50个以下
|
2.1.2. 应答参数
|
应答参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
ctCapResult |
返回的结果 |
CTCapResult |
N |
|
CTCapResult数据结构:
|
CTCapResult |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
sessionId |
返回的唯一的会话id |
String |
N |
≤32 |
|
resultCode |
返回的结果代码,见3.1结果代码描述 |
String |
N |
|
|
desc |
对resultCode结果的补充说明 |
String |
Y |
≤255 |
2.2 发送短信任务接口(sendTask)
函数格式:CTCapResult sendTask(CII cii,BUI bui,TaskPayload taskPayload)
调用者:客户端
被调用者:服务端
2.2.1. 请求参数
|
请求参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
cii |
能力调用者信息
|
CII |
N |
|
|
bui |
企业用户数据(非必要)
|
BUI |
Y |
|
|
smsPayload |
发送短信有效载荷
|
SMSPayload |
N |
|
SMSPayload数据结构:
|
SMSPayload |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
taskTitle |
任务标题 |
String |
N |
≤100 |
|
content |
短信内容 |
String |
N |
≤1024 |
|
receivers |
接收者号码数组 |
String[] |
N |
|
|
scheTime |
定时时间(如果sendMethod为1,不可为空)
格式:yyyy-MM-dd hh:mm:ss |
String |
Y |
|
|
sendMethod |
是否定时发送
0-非定时发送
1-定时发送 |
String |
N |
=1 |
|
补充说明:接收号码组最多10000个
|
2.2.2. 应答参数
|
应答参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
ctCapResult |
返回的结果 |
CTCapResult |
N |
|
CTCapResult数据结构:
|
CTCapResult |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
sessionId |
返回的唯一的会话id |
String |
N |
≤32 |
|
resultCode |
返回的结果代码,见3.1结果代码描述 |
String |
N |
|
|
desc |
对resultCode结果的补充说明 |
String |
Y |
≤255 |
2.3 查询上行短信接口(checkReceivedSMS)
函数格式:SMSResult checkReceivedSMS(CII cii,String busid)
调用者:客户端
被调用者: 服务端
2.3.1. 请求参数
|
请求参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
cii |
能力调用者信息
|
CII |
N |
|
|
busid |
要收取某一业务短信的代码
|
String |
Y |
≤20 |
|
|
2.3.2. 应答参数
|
应答参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
smsResult |
返回的回执结果 |
SMSResult |
N |
|
SMSResult数据结构:
|
应答参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
resultCode |
返回的结果代码,见3.1结果代码描述 |
String |
N |
|
|
messageCount |
接收到的短信条数 |
Int |
N |
|
|
smsMessages |
短信数组 |
SMSMessage[] |
Y |
|
SMSMessage数据结构
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
smsid |
短信序号 |
int |
N |
|
|
sender |
短信发送者 |
String |
N |
≤30 |
|
receiver |
短信接收者:厂家或者业务平台 |
String |
N |
≤10 |
|
content |
短信内容 |
String |
N |
≤140 |
|
contentFormat |
短信内容编码, UTF-8编码格式。 |
String |
N |
|
|
receiveTime |
短信上行时间 |
String |
N |
|
|
busid |
业务码:上行短信所属业务的代码 |
String |
N |
2 |
2.4 查询回执集合接口(queryReturnReceiptAggre)
(注:短信回执只保留一天,调用接口间隔不少于1秒钟)
函数格式:SMSResultAggre queryReturnReceiptAggre(CII cii,String sender)
调用者:客户端
被调用者: 服务端
2.4.1. 请求参数
|
请求参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
cii |
能力调用者信息
|
CII |
N |
|
|
sender |
发送端口号
|
String |
Y |
≤30 |
|
|
|
|
|
|
2.4.2. 应答参数
|
应答参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
smsResultAggre |
返回的回执集的结果 |
SMSResultAggre |
N |
|
SMSResultAggre数据结构:
|
应答参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
resultCode |
调用接口结果,见3.1结果代码描述 |
String |
N |
|
|
messageCount |
短信回执条数 |
int |
N |
|
|
smsReceipts |
短信回执数组 |
SMSReceipt [] |
Y |
|
SMSReceipt数据结构
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
smsid |
短信回执序号 |
String |
N |
|
|
receiver |
sessionId中的接收者 |
String |
N |
≤20 |
|
sessionId |
每天发送短信的ID |
String |
N |
≤32 |
|
receiveTime |
回执接收时间 |
String |
N |
|
|
smsState |
短信的状态 |
String |
N |
≤10 |
|
|
|
|
|
|
2.5 查询用户信息(queryUserInfo)
函数格式:userInfoResult queryUserInfo(CII cii)
调用者:客户端
被调用者: 服务端
2.5.1. 请求参数
|
请求参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
cii |
能力调用者信息
|
CII |
N |
|
|
|
2.5.2. 应答参数
|
应答参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
userInfoResult |
返回的回执结果 |
userInfoResult |
N |
|
userInfoResult数据结构:
|
应答参数 |
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
resultCode |
返回的结果代码,见3.1结果代码描述 |
String |
N |
|
|
userCount |
用户数量 |
Int |
N |
|
|
userInfo |
用户信息数组 |
userInfo[] |
Y |
|
userInfo数据结构
|
字段名称 |
说明 |
数据
类型 |
是否可空 |
长度 |
|
userId |
用户名 |
String |
N |
|
|
smsCount |
剩余短信数量 |
String |
N |
|
3. 附件
3.1. 能力调用返回的结果代码
|
结果代码 |
代码描述 |
|
0 |
操作成功 |
|
-1 |
操作失败 |
|
00010000 |
未知错误 |
|
00010001 |
用户提交参数为空 |
|
00020005 |
用户验证数据或者短信数据为空 |
|
00040002 |
用户查询回执连接达到最大值,返回系统繁忙 |
|
00020001 |
用户名或密码不正确 |
|
10010041 |
号码超过最大数量 |
|
10010032 |
内容错误, 包含关键字 |
|
10010033 |
用户提交信息错误,号码被全部过滤 |
|
10010035 |
下行号码错误或者没有发送号码 |
|
00020003 |
用户余额不足以扣费 |
3.2. XML包格式
3.2.1. sendSMS
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mul="http://www.muleumo.org" xmlns:mes="http://message.scape.gsta.com" xmlns:sms="http://sms.cap.scape.gsta.com">
<soapenv:Body>
<mul:sendSMS>
<mul:in0>
<mes:account>test</mes:account>
<mes:extendField></mes:extendField>
<mes:hashCode></mes:hashCode>
<mes:password>123456</mes:password>
<mes:timestamp></mes:timestamp>
</mul:in0>
<mul:in1>
<mes:account></mes:account>
<mes:id></mes:id>
</mul:in1>
<mul:in2>
<sms:content>sendSMStest</sms:content>
<sms:contentFormat>1</sms:contentFormat>
<sms:needFeedback>1</sms:needFeedback>
<sms:password></sms:password>
<sms:receivers>
<mul:string>18900000000</mul:string>
<mul:string>13300000000</mul:string>
</sms:receivers>
<sms:areacode></sms:areacode>
<sms:sender></sms:sender>
</mul:in2>
</mul:sendSMS>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns4:sendSMSResponse xmlns:ns4="http://www.muleumo.org">
<ns4:out>
<ns3:desc xmlns:ns3="http://cap.scape.gsta.com">成功</ns3:desc>
<ns3:resultCode xmlns:ns3="http://cap.scape.gsta.com">0</ns3:resultCode>
<ns3:sessionId xmlns:ns3="http://cap.scape.gsta.com">635159</ns3:sessionId>
</ns4:out>
</ns4:sendSMSResponse>
</soapenv:Body>
</soapenv:Envelope>
3.2.2. sendTask
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mul="http://www.muleumo.org" xmlns:mes="http://message.scape.gsta.com" xmlns:sms="http://sms.cap.scape.gsta.com">
<soapenv:Body>
<mul:sendTask>
<mul:in0>
<mes:account>test</mes:account>
<mes:extendField></mes:extendField>
<mes:hashCode></mes:hashCode>
<mes:password>123456</mes:password>
<mes:timestamp></mes:timestamp>
</mul:in0>
<mul:in1>
<mes:account></mes:account>
<mes:id></mes:id>
</mul:in1>
<mul:in2>
<sms:taskTitle>task1</sms:taskTitle>
<sms:content>sendtask_test</sms:content>
<sms:scheTime>2011-8-03 17:09:00</sms:scheTime>
<sms:sendMethod>1</sms:sendMethod>
<sms:receivers>
<mul:string>18900000000</mul:string>
<mul:string>13300000000</mul:string>
</sms:receivers>
</mul:in2>
</mul:sendTask>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns4:sendTaskResponse xmlns:ns4="http://www.muleumo.org">
<ns4:out>
<ns3:desc xmlns:ns3="http://cap.scape.gsta.com">成功</ns3:desc>
<ns3:resultCode xmlns:ns3="http://cap.scape.gsta.com">0</ns3:resultCode>
<ns3:sessionId xmlns:ns3="http://cap.scape.gsta.com">2365</ns3:sessionId>
</ns4:out>
</ns4:sendTaskResponse>
</soapenv:Body>
</soapenv:Envelope>
3.2.3. checkReceivedSMS
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mul="http://www.muleumo.org" xmlns:mes="http://message.scape.gsta.com">
<soapenv:Body>
<mul:checkReceivedSMS>
<mul:in0>
<mes:account>test</mes:account>
<mes:extendField></mes:extendField>
<mes:hashCode></mes:hashCode>
<mes:password>123456</mes:password>
<mes:timestamp></mes:timestamp>
</mul:in0>
<mul:in1></mul:in1>
</mul:checkReceivedSMS>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns4:checkReceivedSMSResponse xmlns:ns4="http://www.muleumo.org">
<ns4:out>
<ns2:messageCount xmlns:ns2="http://sms.cap.scape.gsta.com">1</ns2:messageCount>
<ns2:resultCode xmlns:ns2="http://sms.cap.scape.gsta.com">0</ns2:resultCode>
<smsMessages xmlns="http://sms.cap.scape.gsta.com">
<SMSMessage>
<smsid>11760</smsid>
<content>Recv</content>
<receiveTime>20110804095326</receiveTime>
<receiver>075487150536</receiver>
<sender>18900000000</sender>
</SMSMessage>
</smsMessages>
</ns4:out>
</ns4:checkReceivedSMSResponse>
</soapenv:Body>
</soapenv:Envelope>
3.2.4. queryReturnReceiptAggre
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mul="http://www.muleumo.org" xmlns:mes="http://message.scape.gsta.com">
<soapenv:Body>
<mul:queryReturnReceiptAggre>
<mul:in0>
<mes:account>test</mes:account>
<mes:extendField></mes:extendField>
<mes:hashCode></mes:hashCode>
<mes:password>123456</mes:password>
<mes:timestamp></mes:timestamp>
</mul:in0>
<mul:in1></mul:in1>
</mul:queryReturnReceiptAggre>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns4:queryReturnReceiptAggreResponse xmlns:ns4="http://www.muleumo.org">
<ns4:out>
<ns2:messageCount xmlns:ns2="http://sms.cap.scape.gsta.com">2</ns2:messageCount>
<ns2:resultCode xmlns:ns2="http://sms.cap.scape.gsta.com">0</ns2:resultCode>
<smsReceipts xmlns="http://sms.cap.scape.gsta.com">
<SMSReceipt>
<smsid>1</smsid>
<receiver>18900000000</receiver>
<sessionId>2365</sessionId>
<receiveTime>20110804091502</receiveTime>
<smsState>fail</smsState>
</SMSReceipt>
<SMSReceipt>
<smsid>1</smsid>
<receiver>13300000000</receiver>
<sessionId>2365</sessionId>
<receiveTime>20110804091502</receiveTime>
<smsState>fail</smsState>
</SMSReceipt>
</smsReceipts>
</ns4:out>
</ns4:queryReturnReceiptAggreResponse>
</soapenv:Body>
</soapenv:Envelope>
3.2.5. queryUserInfo
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mul="http://www.muleumo.org" xmlns:mes="http://message.scape.gsta.com">
<soapenv:Body>
<mul:queryUserInfo>
<mul:in0>
<mes:account>test</mes:account>
<mes:extendField></mes:extendField>
<mes:hashCode></mes:hashCode>
<mes:password>123456</mes:password>
<mes:timestamp></mes:timestamp>
</mul:in0>
<mul:in1></mul:in1>
</mul:queryUserInfo>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns4:queryUserInfoResponse xmlns:ns4="http://www.muleumo.org">
<ns4:out>
<ns2:userCount xmlns:ns2="http://sms.cap.scape.gsta.com">1</ns2:userCount>
<ns2:resultCode xmlns:ns2="http://sms.cap.scape.gsta.com">0</ns2:resultCode>
<userInfo xmlns="http://sms.cap.scape.gsta.com">
<UserInfo>
<userId>test</userId>
<smsCount>270</smsCount>
</UserInfo>
</userInfo>
</ns4:out>
</ns4:queryUserInfoResponse>
</soapenv:Body>
</soapenv:Envelope> |