A1接口采用HTTP协议,发送响应的数据格式采用JSON格式。
根据业务消息的不同,AC作为服务器端,提供不同的业务地址和端口。
业务类型 | 端口地址 |
---|---|
互联网BSS业务(acbss) | 具体待定 |
互联网SA业务(acsa) | 具体待定 |
消息由消息头和消息体组成,以JSON格式,包含在HTTP载荷中。
消息头包括如下字段:
消息结构 | 内容 | Json对象名称 | 说明 | 举例 | |||||
---|---|---|---|---|---|---|---|---|---|
消息头 | 版本号 | ver | 消息请求方设定的接口协议的版本。消息响应方原值返回。 | “ver”: “1.0” | |||||
消息ID | msgid | 消息请求发送方设定的唯一消息标识。具体由发送方设定。重发的消息id必须保持不变。消息响应方原值返回。 | “msgid”: “4736219853” | ||||||
时间戳 | ts | 以YYYYMMDDhhmmssNNN的十进制格式表示,由消息请求发送方在发送消息时设定。其中,NNN表示3位毫秒数。消息响应方原值返回。 | “ts”: “20140402101356320” | ||||||
业务类型 | service | 对于AC系统的业务类型定义如下:
|
“service”: “acbss” | ||||||
消息类型 | msgtype | 消息类型与业务类型相关。见“消息类型与业务类型”。消息响应方返回对应请求的消息响应类型。 | “msgtype”: “subreq” | ||||||
签名 | sid | 对消息头和消息体的数字签名。参考后面算法 | “sid”:“0” | ||||||
保留字段 | rsvd | 扩展保留字段。消息响应方原值返回。 | “rsvd”: “0” | ||||||
应用标识 | appkey | 可选。第三方应用的AppKey。AXB业务时必须设置。 | “appkey”:“kuaidadi” | ||||||
消息体 | 业务消息内容 | 内容与业务消息类型相关。见后续业务交互中的消息定义。 | 采用扁平结构方式,取消嵌套结构。 |
序号 | 消息类型 | 消息说明 | 产品类别 | 交互实体 |
---|---|---|---|---|
1 | Subreq | 订购请求 | AX | BSS |
2 | Subrsp | 订购响应 | AX | |
3 | Unsubreq | 退订请求 | AX | |
4 | Unsubrsp | 退订响应 | AX | |
5 | Subqryreq | 订购查询 | AX | |
6 | Subqryrsp | 订购响应 | AX | |
7 | Chgprtmsreq | 真实号码换号请求 | AX | |
8 | Chgprtmsrsp | 真实号码换号响应 | AX | |
9 | Axbsubreq | 订购请求 | AXB | |
10 | Axbsubrsp | 订购响应 | AXB | |
11 | Axbunsubreq | 退订请求 | AXB | |
12 | Axbunsubrsp | 退订响应 | AXB | |
13 | axbsubqryreq | 订购查询 | AXB | |
14 | axbsubqryrsp | 订购响应 | AXB | |
15 | axbsubupdreq | AXB订购更新请求 | AXB | |
16 | axbsubupdrsp | AXB订购更新请求 | AXB | |
17 | vcallreq | 在线语音主叫请求 | AX | SA |
18 | vcallrsp | 在线语音主叫响应 | AX | |
19 | smsreq | 在线短信主叫请求 | AX | |
20 | smsrsp | 在线短信主叫响应 | AX | |
21 | switchtimereq | 用户定时开关机设置请求 | AX | |
22 | switchtimersp | 用户定时开关机设置响应 | AX | |
23 | switchqryreq | 用户开关机查询请求 | AX | |
24 | switchqryrsp | 用户开关机查询响应 | AX |
互联网BSS主要处理的互联网业务请求和响应类型如下:
IP发送业务消息到AC A1接口。 AC BSS进行内部处理,将结果反馈给IP系统。
消息交互如下:
对于一个唯一的订购关系,AC平台采用如下字段来标识:
订购请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|---|
版本号 | Ver | |||
消息ID | Msgid | |||
时间戳 | Ts | |||
业务类型 | service | Acbss | ||
消息类型 | msgtype | subreq | ||
签名 | Sid | |||
应用标识 | appkey | 第三方应用的AppKey | ||
保留字段 | Rsvd | |||
消息体 | 被保护的真实号码 | Prtms | ||
隐私号码 | acms | AC动态分配或者指定 | ||
订购时间 | Subts | 格式为YYYYMMDDhhmmss。时间采用北京时间,24小时制。 | “subts”:“20140728145921” | |
订购类型 | producttype | 现阶段支持的类型:
|
“producttype”:“0” | |
姓名 | name | 必选 | “name”:“张三” | |
证件类型 | cardtype | 必选 | “cardtype”:“” | |
身份证号码 | cardno | 必选 | “cardno”:“” |
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|---|
版本号 | ver | |||
消息ID | msgid | |||
时间戳 | ts | |||
业务类型 | service | acbss | ||
消息类型 | msgtype | subrsp | ||
签名 | sid | |||
应用标识 | appkey | 第三方应用的AppKey。 | ||
保留字段 | rsvd | |||
消息体 | 返回码 | result | 采用类似http的状态码风格。
|
|
订购关系标识 | subid | |||
隐私号码 | acms |
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|---|
版本号 | ver | |||
消息ID | msgid | |||
时间戳 | ts | |||
业务类型 | service acbss | |||
消息类型 | msgtype unsubreq | |||
签名 | sid | |||
应用标识 | appkey | 第三方应用的AppKey。 | ||
保留字段 | rsvd | |||
消息体 | 被保护的真实号码 | prtms | ||
隐私号码 | acms | |||
退订时间 | unsubts | 格式为YYYYMMDDhhmmss。时间采用北京时间,24小时制。 |
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | unsubrsp | |
签名 | sid | ||
应用标识 | appkey | 第三方应用的AppKey。 | |
保留字段 | rsvd | ||
消息体 | 返回码 | result | 参见“返回码定义” |
订购关系标识 | subid |
订购查询请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | subqryreq | |
签名 | sid | ||
保留字段 | rsvd | ||
消息体 | 订购关系标识 | subid | 方式一 |
被保护的真实号码 | prtms | 方式二 | |
隐私号码 | acms |
订购查询响应
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | subqryrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
消息体 | 返回码 | result | 参见“返回码定义” |
订购关系标识 | subid | ||
被保护的真实号码 | prtms | ||
隐私号码 | acms | ||
订购时间 | subts | ||
订购产品类型 | producttype | ||
姓名 | name | ||
证件类型 | cardtype | ||
身份证号码 | cardno | “cardno”:“” |
真实号码换号请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|---|
版本号 | ver | |||
消息ID | msgid | |||
时间戳 | ts | |||
业务类型 | service | acbss | ||
消息类型 | msgtype | chgprtmsreq | ||
签名 | sid | |||
保留字段 | rsvd | |||
消息体 | 订购关系标识 | subid | 与订购请求的subid一致,AC返回的sub_id | |
隐私号码 | acms | |||
当前真实号码 | oldprtms | |||
新的真实号码 | newprtms | |||
换号时间 | chgts | 格式为YYYYMMDDhhmmss。时间采用北京时间,24小时制。 |
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | chgprtmsrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
消息体 | 返回码 | result | 参见“返回码定义” |
订购关系标识 | subid |
互联网SA主要处理的互联网业务请求和响应类型如下:
在线语音主叫
IP业务系统发起请求,AC接收后,进行内部处理,响应处理结果,后续启动业务流程。
在线语音主叫请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acsa | |
消息类型 | msgtype | vcallreq | |
签名 | sid | ||
保留字段 | rsvd | ||
消息体 | 隐私号码 | acms | |
被叫号码 | calledms | 被叫号码 |
在线语音主叫响应
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acsa | |
消息类型 | msgtype | vcallrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
消息体 | 返回码 | result | 参见“返回码定义” |
用户定时开关机设置请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|---|
版本号 | ver | |||
消息ID | msgid | |||
时间戳 | ts | |||
业务类型 | service | acsa | ||
消息类型 | msgtype | switchtimerreq | ||
签名 | sid | |||
保留字段 | rsvd | |||
消息体 | 隐私号码 | acms | ||
定时关机时间点 | closetime | 可选。24小时格式表示hhmm如果closetime出现,但是值为空,则表示取消相应设置。即“closetime”:“”表示取消设置。 | “closetime”:“14:30” | |
定时开机时间点 | opentime | 可选。24小时格式表示hhmm如果opentime出现,但是值为空,则表示取消相应设置。即“opentime”:“”表示取消设置。 | “opentime”:“17:30” |
用户定时开关机设置响应:
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acsa | |
消息类型 | msgtype | switchtimerrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
消息体 | 返回码 | result | 参见“返回码定义” |
用户开关机查询请求:
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acsa | |
消息类型 | msgtype | switchqryreq | |
签名 | sid | ||
保留字段 | rsvd | ||
消息体 | 隐私号码 | acms |
用户开关机查询响应
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|---|
版本号 | ver | |||
消息ID | msgid | |||
时间戳 | ts | |||
业务类型 | service | acsa | ||
消息类型 | msgtype | switchqryreq | ||
签名 | sid | |||
保留字段 | rsvd | |||
消息体 | 返回码 | result | 参见“返回码定义” | |
当前开关机状态 | switch | 0:开机 1:关机 | “switch”: “1” | |
定时关机时间点 | closetime | 24小时格式表示hhmm如果closetime出现,但是值为空,则表示无相应设置。即“closetime”:“”表示无定时关机设置。 | “closetime”:“14:30” | |
定时开机时间点 | opentime | 24小时格式表示hhmm如果opentime出现,但是值为空,则表示无相应设置。即“opentime”:“”表示无定时开机设置。 | “opentime”:“17:30” |
推送机制
采用json over http协议
协议:
#协议参数 | 参数 | 注释 |
'v': '1.0', | #版本号 | |
'method' : 'add_call_release', | #方法 | |
'app_key': 'ac', | #调用方appkey | |
'sign': '0BE1A00DD73A0A3D6037657B7C3C9DF3', | #签名 | |
'timestamp': '2016-06-22 14:03:21', | #时间戳 | |
#业务参数 | ||
'phone_no': '13333300000', | #手机号码 | |
'secret_no': '8618788006777', | #隐私号码 | |
'call_type':'0', | #呼叫类型 | |
'peer_no': '13344400000', | #对端号码 | |
'call_id': '0d01000000080000000000000000', | #通话唯一标识 | |
'call_time' : '2016-06-22 14:03:20', | #通话开始时间 | |
'release_time' : '2016-06-22 14:03:20', | #通话结束时间 | |
'release_dir' : '1', | #释放方向 | |
'release_cause' : '16', | #释放原因 | |
'ringing_time' : '2016-06-22 14:03:20', | #振铃开始时间 |
推送请求:
API名称 | method = add_call_release | 接入方标识 | app_key | 标识接入方 | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
呼叫类型 | call_type | AC业务: 0:DTMF方式通话主叫 1:通话被叫 2:短信发送 3:短信接收 128:PS方式通话主叫 | ||||||||||||||||||||||||||||||||||||||||||||||||||
真实号码 | phone_no | 真实号码为A | ||||||||||||||||||||||||||||||||||||||||||||||||||
隐私号码 | secret_no | 隐私号码为X | ||||||||||||||||||||||||||||||||||||||||||||||||||
对端号码 | peer_no | 对端号码为B或者其它填充0 | ||||||||||||||||||||||||||||||||||||||||||||||||||
振铃开始时间 | ringing_time | 格式: yyyy-MM-dd HH:mm:ss | ||||||||||||||||||||||||||||||||||||||||||||||||||
通话开始时间 | call_time | 格式: yyyy-MM-dd HH:mm:ss | ||||||||||||||||||||||||||||||||||||||||||||||||||
通话结束时间 | release_time | 格式: yyyy-MM-dd HH:mm:ss | ||||||||||||||||||||||||||||||||||||||||||||||||||
通话标识 | call_id | 业务参考号 | ||||||||||||||||||||||||||||||||||||||||||||||||||
释放方向 | release_dir | 1表示主叫, 2表示被叫, 0表示平台释放 | ||||||||||||||||||||||||||||||||||||||||||||||||||
释放原因 | release_cause |
|
推送响应:
接收状态 | is_success | ture:成功, false:失败 |
---|
错误码:
错误码 | 错误信息 | 建议 |
---|---|---|
400 | UnSupport Method: | method参数有误 |
403 | Erro AppKey | appkey错误 |
403 | Error Sign | 签名错误 |
202 | 具体的Exception | 请求接收,处理错误 |
请求示例:
http://172.27.111.69/msg?v=1.0&method=add_call_release×tamp=2014-08-18 %2016:59:11&app_key=abc&sign=BA9854BED1A2986B061E2713F403C752&phone_no=1860 0000000&secret_no=17000000000&call_type=1&peer_no=13900000000&call_id=1919& ringing_time=2014-08-18%2016:59:10&call_time=2014-08-18%2016:59:11&release_ time=2014-08-18%2016:59:21&release_dir=1&release_cause=17
需要说明一下,接口调用中的appkey和secret都由服务端来分配。
响应示例:
成功:{"response":{"is_success":true}} | 失败:{"response":{"is_success":false,"err_code":"400","err_msg":"呼叫类型不 能为空!"}} |
---|
ACBSS主要处理的AXB业务请求和响应类型如下:
对于一个唯一的订购关系,AXB业务场景下BSS采用如下字段来标识:
AC系统需要确保“订购关系标识”是唯一的。
AXB中的A,X,B形成唯一三元组。
订购请求:
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | Ver | ||
消息ID | Msgid | ||
时间戳 | Ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | axbsubreq | |
签名 | Sid | ||
保留字段 | Rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。 AXB业务时必须设置,不能为空。 | “appkey”:“GZAXB” |
消息体 | 真实号码 | prtms | 对应“产品类别”定义的AXB业务(简称AXB业务,以下同)中的号码A 注:以真实号码为主叫,AXB业务中的 A为主叫,X为隐私号码,B为对端号码。以下同。 |
隐私号码 | acms | 对应AXB业务中的号码X,动态分配 | |
其他号码 | otherms | AXB业务时可设置。对应AXB业务中的号码B。AC小号场景不支持设置。 | “otherms”:“8613005711234” |
订购时间 | subts | 格式为YYYYMMDDhhmmss。时间采用北京时间,24小时制。 | “subts” :“20140728145921” |
退订时间 | unsubts | 格式为YYYYMMDDhhmmss。时间采用北京时间,24小时制 .这个时间大于订购时间,如果时间到达则执行退订。可选 | “unsubts” :“20140728145921” |
自动退订方式 | unsubmethod | 可选 0:振铃退订 1:挂机退订 如果退订时间不为空,则根据退订时间退订的优先级最高。 | “unsubmethod”:“1” |
订购类型 | producttype | 现阶段支持的类型: 0:包年 1:包季 2:包月 3:按次 4:体验 | “producttype”:“0” |
产品类别 | productcat | 本字段在AXB业务中必须设置。 0: 保留。实际分配给AX(AC小号) 11:AXB 12: 语音验证业务 13:AXYB业务的XYB | “productcat”:“11” |
录音控制 | callrecording | 可选。是否开通录音功能。在本字段不出现的情况下,默认0(不开通录音功能)。 0:不开通录音功能 1:开通录音功能 | “callrecording”:“0” |
姓名 | Name | 必选 | “name”:“张三” |
证件类型 | cardtype | 必选 | “cardtype”:“” |
身份证号码 | cardno | 必选 | “cardno”:“” |
订购响应:
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | axbsubrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 返回码 | result | 采用类似http的状态码风格。 参考3.2 |
订购关系标识 | subid | ||
隐私号码 | acms |
退订请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | Acbss | |
消息类型 | msgtype | Axbunsubreq | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 订购关系标识 | subid | |
真实号码 | prtms | 对应AXB业务中的号码A | |
隐私号码 | acms | 对应AXB业务中的号码X | |
其他号码 | otherms | AXB业务时必须设置。对应AXB业务中的号码B | |
产品类别 | productcat | AXB业务时必须设置。11:AXB12: 语音验证业务13:AXYB业务的XYB | 退订时间 | unsubts | 格式为YYYYMMDDhhmmss。时间采用北京时间,24小时制。 |
退订响应:
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | axbunsubrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的appKey。可以为空,或者不出现。 | |
消息体 | 返回码 | result | 参见3.2“返回码定义” |
订购关系标识 | subid |
订购查询请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | axbsubqryreq | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 订购关系标识 | subid | 方式一 |
被保护的真实号码 | prtms | 方式二 注:otherms在AXB业务时可设置。对应AXB业务中的号码B。 | |
隐私号码 | acms | ||
其他号码 | otherms |
订购查询响应
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | acbss | |
消息类型 | msgtype | axbsubqryrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 返回码 | result | 参见.3.2“返回码定义” |
订购关系标识 | subid | ||
被保护的真实号码 | prtms | ||
隐私号码 | acms | ||
其他号码 | otherms | ||
订购时间 | subts | ||
订购产品类型 | producttype | ||
产品类别 | productcat | ||
录音控制 | callrecording | 可选。是否开通录音功能。在本字段不出现的情况下,
默认0(不开通录音功能)。 0:不开通录音功能 1:开通录音功能 |
“callrecording”:“0” |
姓名 | name | ||
证件类型 | cardtype | ||
身份证号码 | cardno | “cardno”:“” |
订购更新请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | Acbss | |
消息类型 | msgtype | Axbsubupdreq | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。AXB业务时必须设置,不能为空。 | “appkey”:“kuaidadi” |
消息体 | 订购关系标识 | subid | 订购更新针对的现有订购关系的标识。必须与现有订购关系的内容一致。 |
真实号码 | prtms | 订购更新针对的现有订购关系的A号码。必须与现有订购关系的内容一致。 | |
隐私号码 | acms | 订购更新针对的现有订购关系的X号码。必须与现有订购关系的内容一致。 | |
其他号码 | otherms | 变更后的新号码B。 | “otherms”:“8613005711234” |
更新时间 | subts | 格式为YYYYMMDDhhmmss。时间采用北京时间,24小时制。 | “subts”:“20140728145921” |
产品类别 | productcat | 本字段在AXB业务中必须设置为11。AX业务不支持。0:保留。实际分配给AX(AC小号)11:AXB | “productcat” :“11” |
订购更新响应
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | Acbss | |
消息类型 | msgtype | Axbsubupdreq | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 返回码 | result | 采用类似http的状态码风格。参考返回码定义。 |
订购关系标识 | subid |
外呼AXB转接配置设置请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | Acbss | |
消息类型 | msgtype | Axbsubupdreq | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 隐私号码 | acms | X号码 |
转接号码 | transferms | 转接号码 | |
转接号码设置放音编码 | transfervoicecode | 设置转接号码的放音编码 |
外呼AXB转接配置设置响应
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | Acbss | |
消息类型 | msgtype | outaxbtransfersetrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 返回码 | result | 参见3.2“返回码定义” |
外呼AXB转接配置删除请求
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | Acbss | |
消息类型 | msgtype | outaxbtransfersetrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 隐私号码 | acms | X号码 |
外呼AXB转接配置删除响应
消息头 | 内容 | JSON对象名称 | 说明 | 举例 |
---|---|---|---|
版本号 | ver | ||
消息ID | msgid | ||
时间戳 | ts | ||
业务类型 | service | Acbss | |
消息类型 | msgtype | outaxbtransfersetrsp | |
签名 | sid | ||
保留字段 | rsvd | ||
应用标识 | appkey | 第三方应用的AppKey。可以为空,或者不出现。 | |
消息体 | 返回码 | result | 参见3.2“返回码定义” |
IP系统应该检查响应消息中的“返回码”。如果结果不是成功,则IP系统需要针对不同返回码进行处理。
2XX 成功类返回码
返回码 | 描述 | 定义 |
---|---|---|
200 | 成功 | 请求报文成功被处理 |
其他 | 待定义 |
4XX 客户端错误类返回码
返回码 | 描述 | 定义 |
---|---|---|
400 | 请求报文语法错误 | 请求报文所携带的字段,不符合接口定义。比如producttype的值不在定义范围内。AC系统需要检查字段的有效取值。 |
401 | 认证未通过 | 请求的来源或者请求的签名未通过校验。 |
402 | 隐私号码已经使用 | 请求中要求绑定的隐私号码已经被分配给其他用户。 |
403 | 订购关系不存在 | 系统提交的请求中提供的“订购关系标识”,在互联网系统中不存在。 |
404 | 绑定数据不一致 | 请求中提供的“订购关系标识”在AC系统中查询获得的“真实号码”和“隐私号码”绑定关系,与请求中提供的“真实号码”与“隐私号码”不一致。 |
429 | 请求过多 | AC系统在一定时间内提交了过多的请求。AC系统在访问某些特定服务接口时,可能会出现该错误。 |
其他 | 待定义 |
5XX 服务端错误类返回码
返回码 | 描述 | 定义 |
---|---|---|
501 | 业务处理超时 | 互联网系统内部处理引起的超时。AC系统可以尝试重新提交请求。 |
502 | 服务暂时不可用 | 互联网系统当前不可用,可能是因为系统负载过重,或者暂时停机。 |
503 | 服务接口被禁止 | 互联网系统已经关闭相关服务。后续对于该服务的请求是被禁止的。 |
其他 | 待定义 |
public static function sign($params) { unset($params['sid']); unset($params['sign']); //按照key进行排序 ksort($params); $signParams = []; foreach ($params as $key => $val) { $signParams[] = $key . $val; } $signParams = self::APP_SECRET . implode('', $signParams); $sign = strtoupper(md5($signParams)); return $sign; }
本文档提供了USSD(彩印)平台业务相关的API,提供接口的相关说明,以指导相关人员进行业务接入。
号外号USSD平台我们简称HUP(Haowaihao USSD Platform)平台,前端客户我们简称CP(Customer Platform)
接口采用HTTP协议,发送响应的数据格式采用JSON格式。
采用数字签名模式进行报文传输
生成数字签名算法如下:
说明:
实例:
msg = { 'appkey': 'appkey', 'ts': '1471857427', 'ms': '13810326774', 'tid': '1', 'nonce': '?c3^4#5UT~s_HQ>eCzpU', 'sign':'', 'argv': ['号外号','中秋节'] }
参与数字签名的字符串为,(appkey=appkey, appsecret=appid):data:appkey=appkey,argv=['号外号','中秋节'],ms=13810326774,nonce=C>}I#_^TraMabWX%_8Nt,tid=1,ts=1471857427appid
生成包含签名的最终报文如下:
{'nonce': 'C>}I#_^TraMabWX%_8Nt', 'ts': 1471857427, 'ms': '13810326774', 'appkey': 'appkey', 'argv': ['号外号', '中秋节'], 'tid': '1', 'sign': 'ZMd3hXIG+DBV0siBqHE9VGDyShyGFeyY6bWCVlmCbbg=' }
注:appkey 和appsecret 是由号外号USSD平台统一分配的。
post方式
Accept :application/json;charset=UTF-8 Content-Type:application/json;charset=UTF-8
响应码 | 描述 | 说明 |
---|---|---|
00000000 | Success | 成功 |
10000001 | System Error | 系统错误 |
20000001 | URI is Unknown | URI错误 |
20000002 | There is no appkey | 无APPKEY |
20000003 | APP not allow to use this api | APP无权调用此API |
20000004 | API resource not enough | API资源不足 |
20000005 | apiname is nil | APINAME为空 |
30001001 | Argument Error: invalid src | src参数不合法 |
30001002 | Argument Error: invalid dst | dst参数不合法 |
30001003 | Argument Error: invalid template | template参数不合法 |
30001004 | Argument Error: invalid argv | argv参数不合法 |
30001005 | Argument Error: include sensitiveword | 存在敏感词 |
30001006 | Argument Error: invalid batchmsg | batchmsg参数不合法 |
30001007 | Argument Error: batchmsg exceed the limit | batchmsg消息个数超过限制 |
30002001 | Server Error: cy server timeout | 彩印服务器响应超时 |
30002002 | Server Error: cy server return err | 彩印服务器返回错误 |
30002003 | Server Error: cy server response body is nil | 彩印服务器响应体为空 |
30002004 | Server Error: cy server response body is not json | 彩印服务器响应体不合法 |
30002005 | Server Error: cy server response status error | 彩印服务器响应体状态错误 |
https://host:port/ussd/single
host和port由HUP平台提供
字段值 | 字段类型 | 说明 |
---|---|---|
appkey | string | 第三方应用ID |
ts | string | 时间戳(从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,精确到秒,与标准时间偏差5分钟之内) |
sign | string | 服务器签名(详见安全认证) |
ms | string | 手机号码,目前支持中国移动和中国联通的手机号码 |
tid | string | 模板编号,用户在服务端设置的模板,需要审核通过以后才能使用 |
argv | array [string] | 模板中需要填充的参数 |
举例:
msg = { 'appkey': 'appkey', 'ts': '1471857427', 'ms': '13810326774', 'tid': '1', 'nonce': '?c3^4#5UT~s_HQ>eCzpU', 'sign':'', 'argv': ['号外号','中秋节'] }
字段值 | 字段类型 | 说明 |
---|---|---|
code | string | 返回码(详见响应码) |
ds | string | 描述信息(详见响应码) |
msgid | string | 为消息生成的唯一ID |
ms | string | 目标号码,与请求中的ms一致 |
举例:
{ "code": "00000000", "ds": "Success", "msgid": "1458540307123456", "ms": "13810326774" }
模板:
模板中必须携带公司名称,其在模板中的位置不限。
编号 | 内容(#*#部分为参数替换处) | 可变参数个数 |
---|---|---|
1 | 【支付宝】你的支付宝发生#*#元的交易,校验码:#*#打死都不能告诉别人哦!唯一热线95188 | 2 |
https://userhost:userport/ussd/status
注:userhost和userport由客户提供,如果未提供,不触发本过程
字段值 | 字段类型 | 说明 |
---|---|---|
appkey | string | 第三方应用ID |
ts | string | 时间戳(2.2) |
sign | string | 服务器签名(安全认证) |
msgid | string | 为消息生成的唯一任务ID |
code | string | 投递状态码(详见1.6) |
ds | string | 描述信息(详见1.6) |
{ "appkey": "appkey", "ts": "1408103878424" , "sign":"7eba379599053ee5" , "msgid": "1458540307123456", "code": "00000000", "ds: "Success" }
字段值 | 字段类型 | 说明 |
---|---|---|
code | string | 返回码(详见响应码),总返回码 |
ds | string | 描述信息(详见响应码) |
举例
{ "code": "00000000", "ds": "Success" }
本文档提供了USSD平台群发业务相关的API,提供接口的相关说明,以指导相关人员进行业务接入。
号外号USSD平台我们简称HUP(Haowaihao USSD Platform)平台,前端客户我们简称CP(Customer Platform)
接口采用HTTP协议,发送响应的数据格式采用JSON格式。
说明:
“查询已完成子批次”、“查询批量群发任务”、“查询子批次投递结果”查询接口在任务开始至任务完成后一定期限内有效。
https://host:port/ussd/batch_task
host和port由HUP平台提供
POST
Accept :application/json;charset=UTF-8 Content-Type:application/json;charset=UTF-8 Authorization: USSDAUTH appkey="350000100020003", timestamp="1408103878424", signature="7eba379599053ee5"appkey第三方应用ID(批量请求消息发起方);timestamp时间戳(详见请求签名);signature服务器签名(详见授权说明)
字段值 | 字段类型 | 必选 | 说明 |
---|---|---|---|
appkey | string | M | 第三方应用ID |
cid | string | M | 回填企业开户分配的企业标识 |
cappkey | string | M | 回填企业开户分配的appkey |
tid | string | M | 模板编号,模板必须为群发专用模板,审核通过之后,才能使用 |
argv | array [string] | M | 模板中需要填充的参数,参数内容为UTF-8编码 |
tn | string | M | 投递号码总数 |
举例:
{ "appkey": "350000100020003", "cid": "2222ca5f003645a4af9517fd098b23191", "tid": "1", "argv": [ "号外号", "中秋节" ] "tn":"2000000" }
字段值 | 字段类型 | 必选 | 说明 |
---|---|---|---|
code | string | M | 返回码(详见响应码), |
ds | string | M | 描述信息(详见响应码) |
taskid | string | M | 服务端为此次任务生成的唯一任务ID |
举例:
{ "code": "00000000", "ds": "Success", "taskid": "1458540307123456" }
https://host:port/ussd/batch_number?taskid=XXX
host和port由HUP平台提供
POST
Accept :application/json;charset=UTF-8 Content-Type:application/json;charset=UTF-8 Content-Encoding:gzip Authorization: USSDAUTH appkey="350000100020003", timestamp="1408103878424", signature="7eba379599053ee5"
appkey第三方应用ID(批量请求消息发起方);timestamp时间戳(详见请求签名);signature服务器签名(详见授权说明)
字段值 | 字段类型 | 说明 |
---|---|---|
appkey | string | 第三方应用ID |
ts | string | 时间戳(2.2) |
sign | string | 服务器签名(安全认证) |
msgid | string | 为消息生成的唯一任务ID |
code | string | 投递状态码(详见1.6) |
ds | string | 描述信息(详见1.6) |
{ "appkey": "appkey", "ts": "1408103878424" , "sign":"7eba379599053ee5" , "msgid": "1458540307123456", "code": "00000000", "ds: "Success" }
字段值 | 字段类型 | 说明 |
---|---|---|
code | string | 返回码(详见响应码),总返回码 |
ds | string | 描述信息(详见响应码) |
举例:
{ "code": "00000000", "ds": "Success" }
本文档提供了短信平台业务相关的API,提供接口的相关说明,以指导相关人员进行业务接入。
号外号短信平台我们简称SMP(Short Message Platform)平台,前端客户我们简称CP(Customer Platform)。
接口采用HTTP协议,发送响应的数据格式采用JSON格式。
采用数字签名模式进行报文传输
生成数字签名算法如下:
说明:
实例:
msg = { 'ms': '8613000110022', 'appkey': 'appkey', 'nonce': '?c3^4#5UT~s_HQ>eCzpU', 'vp': '900', 'ts': '2016-07-15T02:09:00.164515+00:00' }
参与数字签名的字符串为, (appkey=appkey,appsecret=appid):appkey=appkey,ms=8613000110022,nonce=?c3^4#5UT~s_HQeCzpU, ts=2016-07-15T02:09:00.164515+00:00,vp=900appid
生成包含签名的最终报文如下:
{ 'sign': 'XFVI/aLjuWrFNxEENdPdoFeWipwgFBnz7TAu29yNEsA=', 'ms': '8613000110022', 'appkey': 'appkey', 'nonce': '?c3^4#5UT~s_HQ>eCzpU', 'vp': '900', 'ts': '2016-07-15T02:09:00.164515+00:00' }
注:appkey 和appsecret 是由号外号短信平台统一分配的。
POST 方法
当CP平台用户发送验证请求时,SMSP后台会向CP平台请求指定的手机号发送一个短信验证码,同时返回给CP平台一个短信验证码的id。
请设置成”POST”
http://{serverroot}/gsms
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
表1-1请求消息体参数说明
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
tid | 模板id | 16 | 必须 | 模板id ”tid”:”1073001” |
ms | 手机号 | 15 | 必须 | 接收用户号码,号码格式遵循国际电信联盟定义的E.164 标准。即含国家码的手机号,例如:”ms”:”8613000110022” |
ts | 发送消息的时间戳 | 32 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
vp | 短信验证码有效周期 | 32 | 验证码有效期,在有效期内验证码有效,否则无效,用户重新发送请求验证码,单位秒。”vp”:”900”,默认60 | |
sign | 签名 | 64 | 必须 | 参考1.3 |
注意:ms手机号目前只支持86中国手机号码
请求消息示例如下:
{ "appkey":"jsyh", "tid":"1073001", "ms":"8613000110022", "ts":"20160713101356320", "vp":"900", "sign":"1D731A07A180EC56C66451706FBE4AFF" }
表1-2响应消息参数说明
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|---|
vid | 验证码ID,可选 | 16 | 短信验证码id,用于校验 |
msg | String | 128 | 返回结果的详细描述信息 |
msgid | string | 26 | 消息id |
响应消息示例:
{ "vid": "1", "msg": "success", "msgid":"16080512365800001521667374" }
当CP平台用户发送验证请求时,SMSP后台会向CP平台请求指定的手机号发送一个短信验证码,同时返回给CP平台一个短信验证码的id。CP平台使用此id校验CP平台用户的校验码是否正确。
请设置成“POST”。
http://{serverroot}/vsms
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
ms | 手机号 | 15 | 必须 | 接收用户号码,号码格式遵循国际电信联盟定义的E.164标准。即含国家码的手机号,例如:”ms”:”8613000110022” |
ts | 发送消息的时间戳 | 20 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
vid | smsp平台生成的短信验证码id | 16 | 必须 | 和2.3.2中的保持一致 |
vcode | 短信校验码 | 6 | 必须 | 用户输入的短信校验码 |
sign | 签名 | 32 | 必须 | 参考1.3 |
nonce | 随机字符串 | 64 |
例子:
{ "appkey": "jsyh", "vid": "91", "vcode": "123456", "ms": "8613000110022", "sign": "C614B63D1B85FBC7C2A235183FD1D4C0", "ts": "20160713101356320" }
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|---|
msg | String | 128 | 返回结果的详细描述信息 |
例子:
{ "msg": "success" }
CP平台通过SMSP平台给用户发送短信。
请设置成“POST”。
http://{serverroot}/csms
请求消息体中的参数(约定全部为小写字母)说明如下表所示
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
tid | 模板id | 16 | 必须 | 模板id ”tid”:”1073001” |
ms | 手机号 | 15 | 必须 | 接收用户号码,号码格式遵循国际电信联盟定义的E.164标准。即含国家码的手机号,例如:”ms”:”8613000110022” |
ts | 发送消息的时间戳 | 20 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
ct | 短信内容 | 1024 | 必须 | 用户短信内容 |
sign | 签名 | 32 | 必须 | 参考1.3 |
例子:
{ "appkey": "jsyh", ”tid”:”1073001”, "ct": "91", "ms": "8613000110022", "sign": "7F33603C22C6DE56BF671C925918DCE8", "ts": "20160713101356320" }
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|---|
msg | String | 128 | 返回结果的详细描述信息 |
msgid | string | 26 | 消息id |
例子:
{ "msg": "success", "msgid": "16080512365800001521667374" }
CP平台用户查询余额,返回给CP平台一个剩余可用的短信条数。
请设置成”GET”
http://{serverroot}/qsms
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
nonce | 随机字符串 | 无限制 | 可选 | |
ts | 发送消息的时间戳 | 32 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
sign | 签名 | 64 | 必须 | 参考1.3 |
注意:ms手机号目前只支持86中国手机号码
请求消息示例如下:
{ "appkey":"jsyh", "ts":"20160713101356320", "nonce":"900", "sign":"1D731A07A180EC56C66451706FBE4AFF" }
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|
balance | int | 剩余可用的短信条数 |
msg String | 128 | 返回结果的详细描述信息 |
响应消息示例:
{ "balance": 198989, "msg": "success" }
状态报告推送需要第三方客户提供一个HTTP的接收地址,短信平台为发送方,客户为接收方。
请设置成”POST”
第三方url:http://ip:port/接口名
推送消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
msgid | 消息id | 26 | 必须 | |
ms | 接收短信的手机号码 | 13 | 必须 | 加86 |
status | 短消息的执行状态 | 1 | 必须 | 字符串 0:发送成功 1:等待发送 2:发送失败 |
推送响应参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
msgid | 消息id | 26 | 必须 | |
status | 短消息的执行状态 | 1 | 必须 | 字符串 0:接收成功 1:接收失败 |
通过手机号码(ms)和消息ID(msgid),可以查询短信的发送结果(status).
请设置成”get”.
http ://{serverroot}/qsms
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
nonce | 随机字符串 | 无限制 | 可选 | |
msgid | 消息id | 26 | 必须 | |
ms | 接收短信的手机号码 | 13 | 必须 | 加86 |
ts | 发送消息的时间戳 | 32 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
sign | 签名 | 64 | 必须 | 参考1.3 |
请求消息示例:
{ 'ms': '13810326774', 'appkey': 'hwh', 'nonce': 'Ck?VPQUA6S2OK*1B<>@(', 'ts': '2016-08-09T07:14:16.325566+00:00', 'msgid': '16080914251200001557305643', 'sign': 'gxpbsBh0SoYIn/8ju9lm+3srO13iBg7Sodg6bg0/CbU=' }
json键名 | 内容 | 最大长度 | 说明 | status | 短信发送状态 | 1 | "1":成功 "2":失败 "3":无效请求 |
---|
响应消息示例:
{ "status":"1" }
此接口用于向代理商通道号发送一条用户的上行请求。
请设置成“post”
http ://ip:port/deliver 需要代理商提供
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
ms | 发送短消息的手机号 | 15 | 必须 | 接收用户号码,号码格式遵循国际电信联盟定义的E.164标准。即含国家码的手机号,例如:”ms”:”8613000110022” |
spnum | sp接入号 | 20 | “Spnum”:”10690001073” | |
ct | 短信内容 | 6 | 必须 | 用户短信内容 |
注意:ms手机号目前只支持86中国手机号码
推送息示例如下:
{ "ms":"8613194072190", "spnum":"10073", "ct":"测试测试" }
推送响应参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
msgid | 消息id | 26 | 必须 | 代理商自己生成 |
status | 短消息的执行状态 | 1 | 必须 | 字符串0:接收成功 1:接收失败 |
响应消息实例如下:
{ "msgid":"10006112161802260016888276", "status":"0" }
private String getPostData(String mobile, String content, String tid) { StringBuffer sb = new StringBuffer(); sb.append("appkey").append("=").append(appkey).append(","); sb.append("ct").append("=").append(content).append(",");// 短信内容 sb.append("ms").append("=").append(mobile).append(",");// 手机号,含国家码 sb.append("tid").append("=").append(tid); // sb.append("ts").append("=").append(System.currentTimeMillis()).append(","); sb.append(appsecret); byte[] byteArray = Base64.encodeBase64(DigestUtils.sha256(sb.toString())); String sign = new String(byteArray, Charsets.UTF_8); JSONObject jo = new JSONObject(); jo.put("appkey", appkey); jo.put("ct", content); jo.put("tid", tid); jo.put("ms", mobile); jo.put("sign", sign); return jo.toJSONString(); }
本文档提供了短信平台业务相关的API,提供接口的相关说明,以指导相关人员进行业务接入。
号外号短信平台我们简称SMP(Short Message Platform)平台,前端客户我们简称CP(Customer Platform)。
接口采用HTTP协议,发送响应的数据格式采用JSON格式。
采用数字签名模式进行报文传输
生成数字签名算法如下:
说明:
实例:
msg = { 'ms': '8613000110022', 'appkey': 'appkey', 'nonce': '?c3^4#5UT~s_HQ>eCzpU', 'vp': '900', 'ts': '2016-07-15T02:09:00.164515+00:00' }
参与数字签名的字符串为, (appkey=appkey, appsecret=appid):appkey=appkey,ms=8613000110022, nonce=?c3^4#5UT~s_HQeCzpU,ts=2016-07-15T02:09:00.164515+00:00,vp=900appid
生成包含签名的最终报文如下:
{ 'sign': 'XFVI/aLjuWrFNxEENdPdoFeWipwgFBnz7TAu29yNEsA=', 'ms': '8613000110022', 'appkey': 'appkey', 'nonce': '?c3^4#5UT~s_HQ>eCzpU', 'vp': '900', 'ts': '2016-07-15T02:09:00.164515+00:00' }
注:appkey 和appsecret 是由号外号短信平台统一分配的。
POST 方法
当CP平台用户发送验证请求时,SMSP后台会向CP平台请求指定的手机号发送一个短信验证码,同时返回给CP平台一个短信验证码的id。
请设置成”POST”
http://{serverroot}/gsms
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
表1-1请求消息体参数说明
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
tid | 模板id | 16 | 必须 | 模板id ”tid”:”1073001” |
ms | 手机号 | 15 | 必须 | 接收用户号码,号码格式遵循国际电信联盟定义的E.164标准。即含国家码的手机号,例如:”ms”:”8613000110022” |
ts | 发送消息的时间戳 | 32 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
vp | 短信验证码有效周期 | 32 | 验证码有效期,在有效期内验证码有效,否则无效,用户重新发送请求验证码,单位秒。”vp”:”900”,默认60 | |
sign | 签名 | 64 | 必须 | 参考1.3 |
注意:ms手机号目前只支持86中国手机号码
请求消息示例如下:
{ "appkey":"jsyh", "tid": "1073001", "ms":"8613000110022", "ts":"20160713101356320", "vp":"900", "sign":"1D731A07A180EC56C66451706FBE4AFF" }
表1-2响应消息参数说明
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|---|
vid | 验证码ID,可选 | 16 | 短信验证码id,用于校验 |
msg | String | 128 | 返回结果的详细描述信息 |
msgid | string | 26 | 消息id |
响应消息示例:
{ "vid": "1", "msg": "success", "msgid":"16080512365800001521667374" }
当CP平台用户发送验证请求时,SMSP后台会向CP平台请求指定的手机号发送一个短信验证码,同时返回给CP平台一个短信验证码的id。CP平台使用此id校验CP平台用户的校验码是否正确。
请设置成“POST”。
http://{serverroot}/vsms
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
ms | 手机号 | 15 | 必须 | 接收用户号码,号码格式遵循国际电信联盟定义的E.164 标准。即含国家码的手机号,例如:”ms”:”8613000110022” |
ts | 发送消息的时间戳 | 20 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
vid | smsp平台生成的短信验证码id | 16 | 必须 | 和2.3.2中的保持一致 |
vcode | 短信校验码 | 6 | 必须 | 用户输入的短信校验码 |
sign | 签名 | 32 | 必须 | 参考1.3 |
nonce | 随机字符串 | 64 |
例子:
{ "appkey": "jsyh", "vid": "91", "vcode": "123456", "ms": "8613000110022", "sign": "C614B63D1B85FBC7C2A235183FD1D4C0", "ts": "20160713101356320" }
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|---|
msg | String | 128 | 返回结果的详细描述信息 |
例子:
{ "msg": "success" }
CP平台通过SMSP平台给用户发送短信。
请设置成“POST”。
http: //{serverroot}/csms
请求消息体中的参数(约定全部为小写字母)说明如下表所示
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey” :”jsyh” |
tid | 模板id | 16 | 必须 | 模板id ”tid”:”1073001” |
ms | 手机号 | 15 | 必须 | 接收用户号码,号码格式遵循国际电信联盟定义的E.164标准。即含国家码的手机号,例如:”ms”:”8613000110022” |
ts | 发送消息的时间戳 | 20 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
ct | 短信内容 | 1024 | 必须 | 用户短信内容 |
sign | 签名 | 32 | 必须参考1.3 |
例子:
{ "appkey": "jsyh", ”tid”:”1073001”, "ct": "91", "ms": "8613000110022", "sign": "7F33603C22C6DE56BF671C925918DCE8", "ts": "20160713101356320" }
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|---|
msg | String | 128 | 返回结果的详细描述信息 |
msgid | string | 26 | 消息id |
例子:
{ "msg": "success", "msgid": "16080512365800001521667374" }
CP平台用户查询余额,返回给CP平台一个剩余可用的短信条数。
请设置成”GET”
http://{serverroot}/qsms
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
nonce | 随机字符串 | 无限制 | 可选 | |
ts | 发送消息的时间戳 | 32 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
sign | 签名 | 64 | 必须 | 参考1.3 |
注意:ms手机号目前只支持86中国手机号码
请求消息示例如下:
{ "appkey":"jsyh", "ts":"20160713101356320", "nonce":"900", "sign":"1D731A07A180EC56C66451706FBE4AFF" }
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|---|
balance | int | 剩余可用的短信条数 | |
msg | String | 128 | 返回结果的详细描述信息 |
响应消息示例:
{ "balance": 198989, "msg": "success" }
状态报告推送需要第三方客户提供一个HTTP的接收地址,短信平台为发送方,客户为接收方。
请设置成”POST”
第三方url:http://ip:port/接口名
推送消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
msgid | 消息id | 26 | 必须 | |
ms | 接收短信的手机号码 | 13 | 必须 | 加86 |
status | 短消息的执行状态 | 1 | 必须 | 字符串0:发送成功 1:等待发送 2:发送失败 |
推送响应参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
msgid | 消息id | 26 | 必须 | |
status | 短消息的执行状态 | 1 | 必须 | 字符串 0:接收成功 1:接收失败 |
通过手机号码(ms)和消息ID(msgid),可以查询短信的发送结果(status).
请设置成”get”.
http://{serverroot}/qsms
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
appkey | 应用标识 | 8 | 必须 | 应用商户的接入”appkey”:”jsyh” |
nonce | 随机字符串 | 无限制 | 可选 | |
msgid | 消息id | 26 | 必须 | |
ms | 接收短信的手机号码 | 13 | 必须 | 加86 |
ts | 发送消息的时间戳 | 32 | 短信验证码发送事件发生的时间戳,“ts”:“ 20160713114223039684” | |
sign | 签名 | 64 | 必须 | 参考1.3 |
请求消息示例:
{ 'ms': '13810326774', 'appkey': 'hwh', 'nonce': 'Ck?VPQUA6S2OK*1B<>@(', 'ts': '2016-08-09T07:14:16.325566+00:00', 'msgid': '16080914251200001557305643', 'sign': 'gxpbsBh0SoYIn/8ju9lm+3srO13iBg7Sodg6bg0/CbU=' }
json键名 | 内容 | 最大长度 | 说明 |
---|---|---|---|
status | 短信发送状态 | 1 | "1": 成功 "2":失败 "3":无效请求 |
响应消息示例:
{ "status":"1" }
此接口用于向代理商通道号发送一条用户的上行请求。
请设置成“post”
http://ip:port/deliver 需要代理商提供
请求消息体中的参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
---|---|---|---|---|
ms | 发送短消息的手机号 | 15 | 必须 | |
spnum | sp接入号 | 20 | “Spnum”:”10690001073” | |
ct | 短信内容 | 6 | 必须 | 用户短信内容 |
注意:ms手机号目前只支持86中国手机号码
推送息示例如下:
{ "ms":"8613194072190", "spnum":"10073", "ct":"测试测试" }
推送响应参数(约定全部为小写字母)说明如下表所示。
json键名 | 内容 | 最大长度 | 可选 | 说明 |
msgid | 消息id | 26 | 必须 | 代理商自己生成 |
status | 短消息的执行状态 | 1 | 必须 | 字符串 0:接收成功 1:接收失败 |
响应消息实例如下:
{ "msgid":"10006112161802260016888276", "status":"0" }
private String getPostData(String mobile, String content, String tid) { StringBuffer sb = new StringBuffer(); sb.append("appkey").append("=").append(appkey).append(","); sb.append("ct").append("=").append(content).append(",");// 短信内容 sb.append("ms").append("=").append(mobile).append(",");// 手机号,含国家码 sb.append("tid").append("=").append(tid); // sb.append("ts").append("=").append(System.currentTimeMillis()).append(","); sb.append(appsecret); byte[] byteArray = Base64.encodeBase64(DigestUtils.sha256(sb.toString())); String sign = new String(byteArray, Charsets.UTF_8); JSONObject jo = new JSONObject(); jo.put("appkey", appkey); jo.put("ct", content); jo.put("tid", tid); jo.put("ms", mobile); jo.put("sign", sign); return jo.toJSONString(); }