banner

中文短信网短信平台接口Http2.0

中文短信网自身的短信平台在原有接口的基础上修改推出了2.0版本,主要是针对签名部分的修改,增加签名,是为了短信接口的安全性,目前大部分的短信接口都没有签名,有很大的安全隐患。原先的短信接口参考:https://www.zhsms.com/interface/10.html

第一章  ESM平台介绍

1.1.   简介

ESM平台是中文短信网自主研发的系统,用于实现终端客户短信/彩信发送的管理平台,本文档为第三方平台使用API接口,与本ESM平台进行对接而完成。本接口采用传统http方式提供,出于数据安全性和数据容量的考虑,建议采用http中的POST方法连接Api地址进行数据传输。

1.2.   缩略语清单

客户端:本文中特指短信平台企业终端客户端。

服务端:本文中特指短信平台企业网关服务端。

1.3.   修订时间

2011-01-03       完成基本内容。 

第二章  API接口说明

2.1.   发送短信接口

提交地址:http://IP:9000/sendMSms.do

接口提交方式:GET/POST  URL超长时请使用POST

功能:发送短信

输入参数

描述

username

用户名,由平台提供(必填)

timestamp

时间戳(必填),系统当前时间字符串,与标准时间误差不能超过30分钟,年月日时分秒,例如:20120701231212

password

使用密码生成的MD5串(必填),使用用户名+密码+时间戳生成MD5字符串,MD5生成32位,且需要小写。例如:

账号是test

密码是mima

时间戳是20120701231212

就需要用testmima20120701231212

来生成MD5的签名,生成的签名为5cc68982f55ac74348e3d819f868fbe1

mobile

手机号,多个手机号用半角,分开,如13899999999,13688888888(最多2000个,必填)

content

发送内容,采用utf-8 urlencode处理(必填)

dstime

定时时间,采用utf-8 urlencode处理,时间格式如:2014-12-30 17:48:21,为空时表示立即发送,必须大于系统当前时间(选填)

productid

产品id, 由平台提供(必填)

xh

扩展的小号(选填)

样例:

http://IP:9000/sendMSms.do?username=test&timestamp=20120701231212&password=5cc68982f55ac74348e3d819f868fbe1&mobile=13911000000&content=中国&dstime=&productid=61341&xh=

其中:

dstime参数(如果需要该参数),采用下列方式处理:

dstime = URLEncoder.encode("2015-01-01 14:41:00", "utf-8")

content参数,采用下列方式处理:

String content = "发送内容";

content = URLEncoder.encode(content, "utf-8");

返回码

描述

-1

用户名或者密码不正确

1,xxxxxxxx

1代表发送短信成功,xxxxxxxx代表消息编号

2

余额不够

6

有效号码为空

7

短信内容为空

8,xxxxxx

一级黑词,逗号后面为具体黑词内容

9

未开通接口提交权限或用户已被禁用

10

发送号码过多

11

产品ID异常

12

参数异常


2.2.   余额接口

提交地址:http://IP:9000/balancem.do

接口提交方式:GET/POST

功能:查询短信剩余数量

输入参数

描述

username

用户名(必填)

timestamp

时间戳(必填),系统当前时间字符串,与标准时间误差不能超过30分钟,年月日时分秒,例如:20120701231212

password

使用密码生成的MD5串(必填),使用用户名+密码+时间戳生成MD5字符串,MD5生成32位,且需要小写。例如:

账号是test

密码是mima

时间戳是20120701231212

就需要用testmima20120701231212

来生成MD5的签名,生成的签名为5cc68982f55ac74348e3d819f868fbe1

productid

产品ID(必填)

样例:

http://IP:9000/balancem.do?username=test& timestamp=20120701231212&password=5cc68982f55ac74348e3d819f868fbe1&productid=677678

返回码

描述

XXXXX

XXXXX代表该产品的剩余条数

-2

产品ID异常

-5

提交频率过快(需间隔一秒以上)

-1

用户名或者密码不正确

-9

未开通接口提交权限或用户已被禁用


2.3.   状态报告接口

注意:以下两种方式客户只能选择其中一种

方式一:推送方式(get)(适合客户有固定的IP地址)

   此方式需要用户在我方平台填写下行地址

例如:http://www.yourdomain.com:9010/index.aspx

我平台采用get的方式提交到客户填写的地址,每次最多返回1组内容,客户被动接收状态报告并解析之

推送URL格式:msgid=xxxxx&mobile=xxxxxx&status=xxxxxxx

推送URL格式说明:一次推送一个号码,status为0代表发送成功,非0代表发送失败;msgid为发送短信时平台返回的消息编号;mobile为手机号码。

方式二:主动获取方式(适合客户没有固定的IP地址)

提交地址:http://IP:9000/reportm.do

状态报告接口提交方式:GET/POST 

功能:获取状态报告

输入参数

描述

username

用户名(必填)

timestamp

时间戳(必填),系统当前时间字符串,与标准时间误差不能超过30分钟,年月日时分秒,例如:20120701231212

password

使用密码生成的MD5串(必填),使用用户名+密码+时间戳生成MD5字符串,MD5生成32位,且需要小写。例如:

账号是test

密码是mima

时间戳是20120701231212

就需要用testmima20120701231212

来生成MD5的签名,生成的签名为5cc68982f55ac74348e3d819f868fbe1


我平台每次最多返回50组内容。其中status为0代表发送成功,非0代表发送失败;msgid为发送短信时返回的消息编号;mobile为手机号码;当没有状态报告可获取时返回为空串。

返回内容格式:

msgid=xxxxx&mobile=xxxxxx&status=xxxxxxx|||msgid=xxxxx&mobile=xxxxxx&status=xxxxxxx|||msgid=xxxxx&mobile=xxxxxx&status=xxxxxxx

错误返回值:

返回码

描述

-1

用户名或者密码不正确

9

未开通接口提交权限或用户已被禁用

12

参数异常


2.4.   上行接口

注意:以下两种方式客户只能选择其中一种

方式一:推送方式(get)(适合客户有固定的IP地址)

   此方式需要用户在我方平台中填写上行地址

例如:http://www.yourdomain.com:9010/index.aspx

我平台采用get的方式提交到客户填写的地址,每次最多返回1组内容,客户被动接收状态报告并解析之

推送URL格式:msgid=xxxxx&mobile=xxxx&content=xxxxx&xh=xxxx

推送URL格式说明:一次推送一个号码,msgid为消息编号(对应发送短信给用户时平台返回的消息编号,可能为空);mobile指上行号码;content指上行内容;xh代表扩展号码。

注:上行内容是经过URLEncoder.encode(content,"UTF-8")编码过的内容,接受时请使用URLDecoder.decode(content,"utf-8")来进行解码。

方式二:主动获取方式(适合客户没有固定的IP地址)

提交地址:http://IP:9000/repliesm.do

上行接口提交方式:GET/POST 

功能:获取上行短信

输入参数

描述

username

用户名(必填)

timestamp

时间戳(必填),系统当前时间字符串,与标准时间误差不能超过30分钟,年月日时分秒,例如:20120701231212

password

使用密码生成的MD5串(必填),使用用户名+密码+时间戳生成MD5字符串,MD5生成32位,且需要小写。例如:

账号是test

密码是mima

时间戳是20120701231212

就需要用testmima20120701231212

来生成MD5的签名,生成的签名为5cc68982f55ac74348e3d819f868fbe1


      我平台每次最多返回50组内容,msgid为消息编号(对应发送短信给用户时平台返回的消息编号,可能为空);mobile指上行号码;content指上行内容; xh代表扩展号码。当没有上行可获取时返回为空串。

返回内容格式:

msgid=xxxx&mobile=xxxx&content=xxxxx&xh=xxxxx|||msgid=xxxx&mobile=xxxx&content=xxxxx&xh=xxxxx|||msgid=xxxx&mobile=xxxx&content=xxxxx&xh=xxxxx

 注:上行内容是经过URLEncoder.encode(content,"UTF-8")编码过的内容,接受时请使用URLDecoder.decode(content,"utf-8")来进行解码。

错误返回值:

返回码

描述

-1

用户名或者密码不正确

9

未开通接口提交权限或用户已被禁用

12

参数异常


附录

短信发送DEMOJAVA版)

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import org.apache.commons.codec.digest.DigestUtils;
public class sendmsg {
    public static void main(String[] args) throws IOException {
        String content = "发送内容";
        StringBuffer sb = new StringBuffer(
                "http://IP:9000/sendMSms.do?");
        sb.append("username=username");
sb.append("timestamp=20190316154320");
        sb.append("&password= "+DigestUtils.md5Hex("testmima20190316154320"));
        sb.append("&productid=productid");
        sb.append("&mobile=13900000000");
        //sb.append("&dstime="+URLEncoder.encode("2015-01-01 14:41:00", "utf-8"));
        sb.append("&content=" + URLEncoder.encode(content, "utf-8"));
        URL url = new URL(sb.toString());
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");//or set POST
        BufferedReader in = new BufferedReader(new InputStreamReader(url
                .openStream()));
        
        String inputline = in.readLine();
        System.out.println(inputline);
    }
 
}

附中文短信网短信平台接口Http2.0下载:

短信平台接口文档Http2.0.doc


阅读: 5437
本文由中文短信网原创,转载请保留链接!
中文短信网
https://www.zhsms.com/interface/30.html

留言评论

暂无留言