企业短信API接口使用手册

企业短信平台企业API接口说明

2010-08-11

版本时间更新内容更新人1.0 2010-08-11 文档成立李

2.0 2010-08-11 1.扩展发送接口函数,增加了如下功能:

a.使用基本参数的形式发送短信;

b.通过xml的形式组织短信并发送;

c.支持多号码发送,号码间用逗号分隔,号码类别(即各运

营商号码,如:小灵通\手机)可混合发送同一条信息;

d.支持回执确认的操作.

e.支持上行获取的操作;

f.返回格式更新为XML的模式,以存放更丰富的返回信

息,如:发送状态报告,获取上行;

g.查询用户余额。

e.添加彩信发送功能

f.添加彩信获取状态报告

目录

1企业API接口 (3)

1.1接口函数说明 (3)

1.1.1 发送消息函数sendSmsAsXml (4)

1.1.2 发送消息函数sendLongSmsAsXml (5)

1.1.3 发送消息函数sendSmsAsNormal (6)

1.1.4 发送消息函数sendLongSmsAsNormal (6)

1.1.5 发送任务状态查询getSmsStates (7)

1.1.6 发送任务状态查询sendMms (7)

1.1.7 接收消息函数getMmsStates (8)

1.1.8 接收消息函数getMoList (9)

1.1.9 查询余额getAmount (9)

1.2企业接口调用方式 (10)

1.2.1 C#中的调用 (10)

1.2.2 PHP中的调用 (10)

1.2.3 Java的调用方式 (12)

1.2.4 彩信的调用方式 (13)

1企业API接口

企业API接口的实现使用了WebService的方式,企业用户通过调用WebService的指定接口函数以达到发送和接收短信的目的;

企业接口的服务地址为:

https://www.360docs.net/doc/a311495403.html,/newesms/services/esmsservice

要查看接口的定义的话则在连接地址下面增加“?WSDL”,即:

https://www.360docs.net/doc/a311495403.html,/newesms/services/esmsservice?wsdl

1.1 接口函数说明

企业接口中提供了九个函数,对应的五短信函数如下:

(1)public String sendSmsAsXml(String smsPack, String cpid,

String

cppwd);

(2)public String sendLongSmsAsXml(String smsPack, String

cpid,

String

cppwd)

(3)public String sendSmsAsNormal(String phone, String

msgcont, String spnumber,String chid, String cpid, String

cppwd);

(4)public String sendLongSmsAsNormal(String phone, String

msgcont, String spnumber,String chid, String cpid, String

cppwd)

(5)public String getSmsStates(String cpid,String cppwd);

(6) public String sendMms(String smsPack, String cpid,

String cppwd)

(7) public String getMmsStates(String cpid,String cppwd)

(8) public String getMoList(String nextId,String cpid,String

cppwd);

(9) public String getAmount(String cpid,String cppwd,String

chid);

sendSmsAsXml函数为通过基本参数发送消息

sendLongSmsAsXml 函数为通过基本参数发送长消息

sendSmsAsNormal函数为通过XML发送消息

sendLongSmsAsNormal 函数为通过XML发送长消息

getSmsStates 函数为获取状态报告

sendMms 函数为发送彩信

getMmsStates 函数为获取彩信状态报告

getMoList 函数为获取上行

getAmount 函数为查询余额

1.1.1发送消息函数sendSmsAsXml

函数定义如下:

public String sendSmsAsXml(String smsPack, String cpid, String cppwd)

函数参数有三个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

smsPack Xml格式数据包(电话号,短信内容,流水号),sms节点为根节点,。msg 表示一个短信包。phone节点为接收号码,号码间用逗号”,”分隔.可支持最

大50个号码。content节点为内容节点,内容无字数限制,低于70按一

条计费,多余70字按65字一条计费,最多支持300字。spnumber节点

为对应的流水号节点,此节点将用来匹配状态报告。chid节点为预留节点,

用来作为扩展节点。

对于smsPack结构如下:

139********,138********

xxxxxxxxxx

短信流水号

0

....

返回值及其含义如下:

status message

0 发送成功及成功的信息描述

其他对应响应的错误信息

1.1.2发送消息函数sendLongSmsAsXml

函数定义如下:

public String sendLongSmsAsXml (String smsPack, String cpid, String cppwd)

函数参数有三个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

smsPack Xml格式数据包(电话号,短信内容,流水号),sms节点为根节点,。msg 表示一个短信包。phone节点为接收号码,号码间用逗号”,”分隔.可支持最

大50个号码。content节点为内容节点,内容无字数限制,低于70按一

条计费,多余70字按65字一条计费,最多支持300字。spnumber节点

为对应的流水号节点,此节点将用来匹配状态报告。chid节点为预留节点,

用来作为扩展节点。

对于smsPack结构如下:

139********,138********

xxxxxxxxxx

短信流水号

0

....

返回值及其含义如下:

status message

0 发送成功及成功的信息描述

其他对应响应的错误信息

1.1.3发送消息函数sendSmsAsNormal

函数定义如下:

public String sendSmsAsNormal(String phone, String msgcont, String spnumber,String chid, String cpid, String cppwd);

函数的参数有六个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

phone 发送的手机号码,多个号码使用”,”分开,最多支持50个号码

msgcont 需要发送的内容,内容最多300字,低于70按一条收费多于70系统自动拆分成多条并按65字计费。

spnumber 流水号,用来匹配状态报告。

chid预留字段,默认为0

返回参数如下:

status message

0 发送成功及成功的信息描述

其他对应响应的错误信息

1.1.4发送消息函数sendLongSmsAsNormal

函数定义如下:

public String sendLongSmsAsNormal (String phone, String msgcont, String spnumber,String chid, String cpid, String cppwd);

函数的参数有六个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

phone 发送的手机号码,多个号码使用”,”分开,最多支持50个号码

msgcont 需要发送的内容,内容最多300字,低于70按一条收费多于70系统自动拆分成多条并按65字计费。

spnumber 流水号,用来匹配状态报告。

chid预留字段,默认为0

返回参数如下:

status message

0 发送成功及成功的信息描述

其他对应响应的错误信息

1.1.5发送任务状态查询getSmsStates

函数定义如下:

public String getSmsStates(String cpid,String cppwd)

函数的参数有两个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

返回结果为一个XML列表对象

< spnumber >短信流水号

手机号码

DELIVRD

20101102000000

……………………

Spnumber:下发时对应的流水号

Phone:下发时对应的手机号码

Status:表示短信对应的结果:

DELIVRD——成功

其他——失败

Sendtime:节点为下发时的时间

1.1.6发送任务状态查询sendMms

函数定义如下:

public String sendMms(String smsPack, String cpid, String cppwd) 函数的参数有两个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

smsPack 彩信数据包为XML格式

smsPack为一个XML列表对象

139********,138********

短信流水号

这是一个测试

base64编码

这是第1屏中的文字

base64编码

这是第2屏中文字

注意:当前只能发送移动彩信

1.Pages下面可以由多个page节点,每一个节点代表一个彩信屏。

2.每一屏中只能有一个图片img和一个文字text 节点,图片在上。或者仅有一个图片,

或者仅有一段文字。

3.图片节点中的内容就是图片文件内容的base64编码。

4.图片的格式可以采用gif和jepg两种。

5.图片的宽度是176以内,高度在200以内。

6.所有的图片和文字的总大小不能超过60K(建议在40K之内,有些手机不能显

示超过40K的彩信)

彩信屏数没有太多的限制,建议在制作端限制在10屏之内(有的手机显示不了10屏以上的彩信)

1.1.7接收消息函数getMmsStates

函数定义如下:

public String getMmsStates(String cpid,String cppwd)

函数的参数有三个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

返回参数如下:

手机号码

1000

20101102000000

……………………

Phone:上传用户的手机号码。

Content:用户上传的内容。

Datetime:用户上传时的时间。

1.1.8接收消息函数getMoList

函数定义如下:

public String getMoList(String nextId, String cpid, String cppwd);

函数的参数有三个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

nextId预留字段,默认为0

返回参数如下:

手机号码

1000

20101102000000

……………………

Phone:上传用户的手机号码。

Content:用户上传的内容。

Datetime:用户上传时的时间。

1.1.9查询余额getAmount

函数定义如下:

public String getAmount(String cpid, String cppwd, String chid) 函数的参数有三个:

参数名说明

cpid分配给企业用户的登录名

cppwd分配给企业用户的对应密码

chid 预留字段,默认为0。

返回结果为一个XML列表对象

status message

整数对应的短信条数

其他对应响应的错误信息

1.2 企业接口调用方式

企业接口函数的调用方式,此处列出各种语言及开发环境调用的示例,具体环境还需要作实际的修改。

1.2.1C#中的调用

在C#中调用比较简单,此处不在举例。具体请看DEMO。

1.2.2PHP中的调用

set_time_limit(0);

header("Content-Type: text/html; charset=gbk");

/**

* 定义程序绝对路径

*/

define('SCRIPT_ROOT', dirname(__FILE__).'/');

require_once SCRIPT_ROOT.'include/Client.php';

/**

* 网关地址

*/

$gwUrl = ' http:// https://www.360docs.net/doc/a311495403.html,/newesmsservice/services/esmsservice ';

/**

* 序列号,请通过温州易通短信群发销售人员获取

*/

$serialNumber = '用户名';

/**

* 密码,请通过温州易通短信群发销售人员获取

*/

$password = '密码';

/**

* 登录后所持有的SESSION KEY,即可通过login方法时创建

*/

$sessionKey = '621163';

/**

* 连接超时时间,单位为秒

*/

$connectTimeOut = 2;

/**

* 远程信息读取超时时间,单位为秒

*/

$readTimeOut = 10;

/**

$proxyhost 可选,代理服务器地址,默认为false ,则不使用代理服务器$proxyport 可选,代理服务器端口,默认为false

$proxyusername 可选,代理服务器用户名,默认为false

$proxypassword 可选,代理服务器密码,默认为false

*/

$proxyhost = false;

$proxyport = false;

$proxyusername = false;

$proxypassword = false;

$client = new Client($gwUrl,$serialNumber,$password,$sessionKey,$proxyhost,$proxyport,$proxyuser name,$proxypassword,$connectTimeOut,$readTimeOut);

$client->setOutgoingEncoding("gbk");

$statusCode = $client->sendSmsAsNormal("151********","PHP WebService Client测试","201009201216","201","用户名","密码");

echo "处理状态码:".$statusCode;

$result = $client->getMoList("用户名","密码");

$result_1 = $client->getSmsStates("用户名","密码");

?>

1.2.3Java的调用方式

需要下载apache soap。下载地址:https://www.360docs.net/doc/a311495403.html,/soap/index.html 导入:

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

例子:

private static Service service = new Service();

private String URL=" http:// https://www.360docs.net/doc/a311495403.html,/newesmsservice/services/esmsservice ";

public String testSend(int type) {

try {

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(new URL(URL));

String send="";

if(type==1){

call.setOperationName(new QName(URL"sendSmsAsNormal"));

send= call.invoke(new Object[] {"156********", "test",

"207", "", "123123", "123123"}).toString();

}

if(type==2){

call.setOperationName(new QName(URL, "sendSmsAsXml"));

send= call.invoke(new Object[]

{XmlUtil.contentXml(),"123456", "123456"}).toString();

}

if(type==3){

call.setOperationName(new QName(URL, "getSmsStates"));

send=call.invoke(new Object[] {"123456",

"123456"}).toString();

}

if(type==6){

call.setOperationName(new QName(URL, "getMoList"));

send=call.invoke(new Object[] {"0","123123",

"123456"}).toString();

}

if(type==7){

call.setOperationName(new QName(URL, "getAmount"));

send=call.invoke(new Object[] {"123123",

"123123","201"}).toString();

}

System.out.println(send);

} catch (Exception e) {

e.printStackTrace();

return"-100";

}

return"-100";

}

1.2.4彩信的调用方式在此不提供,具体看demo。

相关文档
最新文档