1、219.148.22.106:8890 行业短信 平台 接口 手册 产品名称 行业短信平台 发布日期 2011-05 河北电信行业短信平台 -接口 手册 中国电信河北分公司 第 2 页 共 25 页 目 录 1、 引言 . 3 1.1. 目的 . 3 1.2. 修改历史记录 . 3 1.3. 名称解释 . 3 2、 短信 . 4 2.1. HTTP 接口 . 4 2.1.1. 短信下行 . 4 2.1.2. 短信上行 . 7 2.1.3. 短信状态报告 . 8 2.1.4. 查询余额 . 9 2.2. API 接口 . 10 2.3. WEBSERVICE 接口(不推荐) . 错误 !未定义书
2、签。 2.3.1. 自定义数据结构 . 错误 !未定义书签。 2.3.2. 短信下行(发送多条内容相同的短信) . 错误 !未定义书签。 2.3.3. 短信下行(发送多条内容不同的短信) . 错误 !未定义书签。 2.3.4. 获取上行 . 错误 !未定义书签。 2.3.5. 获取状态报告(单条) . 错误 !未定义书签。 2.3.6. 获取状态报告(多条) . 错误 !未定义书签。 2.3.7. 获取 余额 . 错误 !未定义书签。 2.4. WEBSERVICE 接口 (新,推荐使用 ) . 14 2.4.1. 自定义数据结构 . 14 2.4.2. 短信下行(发送一条或者多条内容相同的短
3、信) . 15 2.4.3. 短信下行(发送内容不同的短信) . 16 2.4.4. 获取上行 . 17 2.4.5. 获取状态报告 . 18 2.4.6. 获取 余额 . 19 2.4.7. 短信 webservice(新) 错误码 . 20 2.5. WEBSERVICE 接口 (支持上下行子号码 ) . 20 2.5.1. 自定义数据结构 . 20 2.5.2. 短信下行(发送一条或者多条内容相同的短 信) . 20 2.5.3. 短信下行(发送内容不同的短信) . 21 2.5.4. 获取上行 . 22 2.5.5. 获取状态报告 . 23 2.5.6. 获取 余额 . 25 2.5.
4、7. 短信 webservice 错误码 . 25 河北电信行业短信平台 -接口 手册 中国电信河北分公司 第 3 页 共 25 页 1、 引言 1.1. 目的 该 接口 手册编写目的在于描述 短信 平台 CTC-EMP(以下简称 CTC-EMP)具体的 接口 协议 ,供 接口用 户进行接口的对接开发 。 1.2. 修改历史记录 版 本 修改人 日 期 描 述 5.0.1 顾黎杰 2006/8/10 创建文档 。 5.0.2 顾黎杰 2008/6/20 增加短信 api 接口 。 5.0.3 顾黎杰 2010/5/5 细化接口返回参数 。 5.0.3 赵鸿 2011/5/6 WebServic
5、e 接口 (支持上下行子号码 ) 5.3.8 王鹏 2011/8/26 细化 HTTP 下行 SUBCODE 参数 描述 1.3. 名称 解释 缩略语 英文全名 中文全名 SMS Short Messaging Service 短消息 服务 MMS Multimedia Message Service 多媒体消息 API Application Programming Interface 应用程序编程接口 MO Message Original 消息 上行 MT Message Terminal 消息下行 SP Service Provider 服务提供商 CP Content Provide
6、r 内容提供商 河北电信行业短信平台 -接口 手册 中国电信河北分公司 第 4 页 共 25 页 2、 短信 2.1. http 接口 2.1.1. 短信下行 功能:下发单条或者多条内容相同的短信 。 地址 : http:/219.148.23.131:8080/emp/http/SendSms。 建议采用 post 方法提交请求 。 请求参数定义如下: 参数名称 描述 字段值 Account 帐号 String, 不空 。 Password 密码 String, 不空 ( 需 MD5 加密 , 32 位,加密后字母全部为小写 ,例如:“ “ 加 密 后 应 该 等 于“ cbff36039c
7、3d0212b3e34c23dcde1456”用户可以用此例子验证加密方法是否正确 ) 。 SubCode 子号码 String,可以为空 。 格式为企业帐号 +子号码。 例如:如果平台号码为“ 10650300”, 企业帐号为 2, 子号码为“ 22”,则 SubCode 设置 为“ 222” , 短信将以“ 10650300222”号码下发给手机用户 (注: 此功能需要通道支持 )。 Phone 手机号码 String, 不空,支持多号码,号码之间用英文逗号隔开 , 最多 100 个。如: 13800000000,13900000000。 Content 短信内容 String, 不空 。
8、 GBK 编码 Java 例 : .URLEncoder.encode(Content, “UTF-8“)。 Wappushurl Wappushurl Wappush 地址,如果需要发送 Wappush,则 Content 表示 title SendTime 定时发送时间 String, 可以为空,为空就是立即发送。定时发送 格式为 年月日 时分, 如:200803201615。 返回参数定义如下: 河北电信行业短信平台 -接口 手册 中国电信河北分公司 第 5 页 共 25 页 参数名称 描述 response 0:成功条数 ; -1: 帐号不存在,请检查用户名或者密码是否正确 ; -2:
9、账户余额不足 ; -3: 帐号已被禁用 ; -4: ip 鉴权失败 (需要 ip 校验的场合) ; -8:缺少请求参数或参数不正确 (请检查用户名,密码,下发号码,下发内容是否为空,或者下发号码数量是否大于 100个) ; -9:内容不合法 (含有非法内容,请检查下发内容) 。 -10:账户当日发送短信量已经超过允许的每日最大发送量(账户被限制每日发送短信数量的情况有用) phone 手机号 。 smsID 短信 ID(用于 匹配 状态报告) 。 下发实例 ( java) : import java.io.BufferedReader; import java.io.InputStreamRe
10、ader; import java.io.OutputStream; import .HttpURLConnection; import .URL; import java.security.MessageDigest; public class HttpSend public static void main(String args) try Long startt = System.currentTimeMillis(); / 短信内容 String _content = “测试 ,见谅 “; / 用 UTF-8编码执行 URLEncode _content = .URLEncoder.e
11、ncode(_content, “UTF-8“); / 密码加密 String pass = MD5Encode(“10“); String _url = “http:/172.18.2.21:8080/ctc-emassh/http/SendSms“; String _param = “Account=10 URL url = null; HttpURLConnection urlConn = null; url = new URL(_url); urlConn = (HttpURLConnection) url.openConnection(); 河北电信行业短信平台 -接口 手册 中国电
12、信河北分公司 第 6 页 共 25 页 urlConn.setRequestMethod(“POST“); urlConn.setDoOutput(true); OutputStream out = urlConn.getOutputStream(); out.write(_param.getBytes(“GBK“); out.flush(); out.close(); BufferedReader rd = new BufferedReader(new InputStreamReader( urlConn.getInputStream(), “GBK“); StringBuffer sb =
13、 new StringBuffer(); int ch; while (ch = rd.read() -1) sb.append(char) ch); System.out.println(sb); rd.close(); Long end = System.currentTimeMillis(); System.out.println(“发送 短信 耗时: “ + (end - startt); catch (Exception ex) System.out.print(ex); public static String MD5Encode(String sourceString) Stri
14、ng resultString = null; try resultString = new String(sourceString); MessageDigest md = MessageDigest.getInstance(“MD5“); resultString = byte2hexString(md.digest(resultString.getBytes(); catch (Exception ex) return resultString; public static final String byte2hexString(byte bytes) StringBuffer bf =
15、 new StringBuffer(bytes.length * 2); for (int i = 0; i - -8 成功返回页面示例: - 2 - 13800000000 2c92811a29a0c90c0129a0ca984e0016 - 15800000000 2c92811a29a0c90c0129a0ca984e0015 2.1.2. 短信上行 功能:接收若干条手机用户的上行短信(一次最多十条) 。 地址 : http:/219.148.23.131:8080/emp/http/GetSms。 建议采用 post 方法提交请求 。 调用 短信上行 间隔时间不小于 30 秒 。 请求
16、参数定义如下: 参数名称 描述 字段值 Account 帐号 String, 不空 。 Password 密码 String, 不空( 需 MD5 加密 ) 。 返回参数定义如下: 参数名称 描述 response 大于 0:上行短信的条数,一次最多取 10 条 ; 0:没有上行短信 ; -1:帐号登陆失败 ; -3:此帐号被禁用 ; 河北电信行业短信平台 -接口 手册 中国电信河北分公司 第 8 页 共 25 页 -4: ip 鉴权失败 ; -8:缺少请求参数 。 -9:访问速度太快,每次访问间隔不能小于 30 秒 phone 手机号 。 content 短信内容 ; 已经用 .URLEnc
17、oder.encode()编码 ; 需要用 .URLDecoder.decode()解码 。 sendTime 上行时间 。 无短信或者参数错误返回页面示例: - 0 成功返回短信页面示例:( 一次最多取 10 条 ) - 3 - 1376612345678 test 2009-02-06 09:01:33.0 - 1386612345678 %E6%B5%8B%E8%AF%95 2009-02-06 09:01:33.0 - 1396612345678 abc 2009-02-06 09:01:33.0 2.1.3. 短信状态报告 功能:根据 SmsID 返回短信是否成功发送到用户手机 。
18、地址 : http:/219.148.23.131:8080/emp/http/GetReport。 建议采用 post 方法提交请求 。 调用短信 状态报告 间隔时间不小于 30 秒。 河北电信行业短信平台 -接口 手册 中国电信河北分公司 第 9 页 共 25 页 请求参数定义如下: 参数名称 描述 字段值 Account 帐号 String, 不空 。 Password 密码 String, 不空( 需 MD5 加密 ) 。 SmsID 消息 ID String, 不空 。 返回参数定义如下: 参数名称 描述 response 大于 0:此消息 ID 所对应的状态报告条数。最多 100
19、条 ; 0:没有此消息 ID 的状态报告 ; -1:帐号登陆失败 ; -3:此帐号被禁用 ; -4: ip 鉴权失败 ; -8:缺少请求参数 。 -9:访问速度太快,每次访问间隔不能小于 30 秒 phone 手机号 。 smsID 消息 ID。 stat 状态报告 0:成功 ; 2: 发送失败 。 请求错误返回页面示例: - -8 请求成功返回页面示例: - 1 - 13601655231 2c92812d1ebf8704011ebf939ba80004 0 2.1.4. 查询余额 功能:查询剩余短信的条数 。 河北电信行业短信平台 -接口 手册 中国电信河北分公司 第 10 页 共 25
20、页 地址: http:/219.148.23.131:8080/emp/http/GetBalance。 建议采用 post 方法提交请求 。 调用 查询余额 间隔时间不小于 30 秒。 请求参数定义如下: 参数名称 描述 字段值 Account 帐号 String, 不空 。 Password 密码 String, 不空( 需 MD5 加密 ) 。 返回参数定义如下: 参数名称 描述 response -1:帐号登陆失败 ; -3:此帐号被禁用 ; -4: ip 鉴权失败 ; -8:缺少请求 参数 。 sms 短信余额 。 mms 彩信余额 。 返回页面示例: - 10002000 2.2. api 接口 相关 jar 包包括: ctc-smsclient.jar, ctc-message.jar, ctc-slidewindow.jar, ctc-sync.jar,ctc-util.jar。 注意:只有外部企业才能使用此接口 名称 initConn 功能 连接初始化 。 接口方法 public int initConn(String host, int port, String user, String password) 输入说明 host: CTC-EMP 的 ip; port: CTC-EMP 的端口 ; user:接口用户名 ;