移动接口文档--10690

黄建清 发布于 2013/01/31 11:47
阅读 2K+
收藏 4

 

HTTP接口调用说明(支持POSTGET)
HTTP网关地址:
UTF8编码网关
http://api.zosms.com:6000/utf8/web_api/SendSMS_V2.aspx
GBK 编码网关
http://api.zosms.com:6000/gbk/web_api/SendSMS_V2.aspx
提示:HTTP调用URL接口时, 参数值必须URL编码后再调用

1.参数说明

序号

参数名

描述

1

X_sid

会员编号

2

X_eid

企业编号

3

X_uid

会员帐号

4

X_pwd_md5

sha1sha1(密码)+本机外网ip)英文字母全是小写

5

X_ac

操作指令
10
发送普通短信70
12
发送长短信450
13
发送打包短信不同内容
20
接收回复短信
30
查询账户余额
50
修改接口密码
100
获取外网IP,用于生成x_pwd_md5

6

X_gate_id

300固定不能修改

7

X_target_no

接口短信手机号,多个号码用逗号分开,最多支持300条每次

8

X_memo

短信发送内容,最多450字符,必须url编码

9

X_sub_id

扩展码,区别上行用户

1.2发送短信

1.2.1发送普通短信(70字)
请求参数
X_ac=10&x_eid=企业代码&x_uid=会员帐号&x_pwd_md5=访问密码&x_gate_id=300&x_target_no=接收手机号&x_memo=发送短信内容

1.2.1发送长短信(450)
请求参数
X_ac=12&x_eid=企业代码&x_uid=会员帐号&x_pwd_md5=访问密码&x_gate_id=300&x_target_no=接收手机号&x_memo=发送短信内容

返回值描述

类型

int

>0(大于0) 成功计费条数

<=0 (小于等于0) 失败

2.接收回复短信(分主动和被动两种接收)

2.1主动接收回复短信(最小调用间隔30秒一次)

请求参数
X_ac=20&x_eid=企业代码&x_uid=会员帐号&x_pwd_md5=访问密码&x_gate_id=300

返回XML格式(返回2条用户回复的短信)
<ReadSMS>
<Item>
<Id>1</Id>(序列号可以忽略)
<SId>1001</SId>(会员编号,如果有多个帐号情况下)
<SenderNo>13020930000</SenderNo>(回复手机号)
<MsgContent>能收到我回复的测试短信么?</MsgContent>(回复内容)
<SendTime>2009-11-21 16:54:14</SendTime>(回复时间)
<SP_PID>10655059052084</SP_PID>(回复到网关的号码)
<subNo >1200 <subNo /> (用户扩展码)
</Item>
<Item>
<Id>2</Id>
<SId>1002</SId>
<SenderNo>13020930000</SenderNo>
<MsgContent>这是第二条测试短信!</MsgContent>
<SendTime>2009-11-21 16:13:37</SendTime>
<SP_PID>10655059052084</SP_PID>
<subNo>101 <subNo /> <!--客户扩展子号码-->
</Item>
</ReadSMS>

2.2被动接收回复短信(如果有新回复短信,我们会主动以PUSH方式发送给用户指定的页面)
此方式采用http+xml+post技术,需要用户提供一个接收短信页面地址

以下是post+xml时的样本:
<ReadSMS> <!--收到短信开始-->
<Item> <!--如果有多条循环此节-->
<id>1</id><!-可忽略-->
<SId>1001</SId> <!-- 会员编号,企业子帐号区分不同会员上行 -->
<SenderNo>13405886058</SenderNo> <!--回复者号码-->
<MsgContent>这个是被动回复过来的,能收到么?</MsgContent> <!--回复短信内容-->
<SendTime>2008-03-14 23:07:39</SendTime> <!--回复时间-->
<SP_PID>1065810889988</SP_PID> <!-回复到SP号的号码-->
<subNo>101</subNo> <!--客户扩展子号码-->
</Item>
</ReadSMS>

被动返回值

如果成功接收请返回1,否则系统重新发送3次后,终止发送。

3.查询短信余额

请求参数
X_ac=30&x_eid=企业代码&x_uid=会员帐号&x_pwd_md5=访问密码&x_gate_id=300

返回值
Sms:10000,mms:5000
描述
Sms:指短信剩余条数,mms:指彩信剩余条数

4.修改接口密码

请求参数
X_ac=50&x_eid=企业代码&x_uid=会员帐号&x_pwd_md5=访问密码&x_new_pwd=接口新密码sha1&x_gate_id=300

返回值
1 修改新密码成功,否则失败。

5.打包提交不同内容短信(最多支持300个包),必须使用POST方式

请求参数(只接受POST方式)
X_ac=13&x_eid=企业代码&x_uid=会员帐号&x_pwd_md5=访问密码&x_gate_id=300&x_memo=xml格式

x_memo格式如下
<SendSMS>
<Item><!—此节可以循环,最大100-->
<ID>编号</ID> (如果失败,会输出这个编号,保证此包里不要重复)
<CardNo>用户手机号码</CardNo>
<Msg>
<![CDATA[短信内容]]>
</Msg>
<IsLongSMS>1长短信,0普通短信,(超过70字自动设置1)</IsLongSMS>
<SubId>扩展码</SubId>
</Item>
</SendSMS>

返回值(Int数字类型)
大于0成功,否则失败

6.获取公网ip用于验证访问密码,x_pwd_md5需要用到这个值

请求参数
X_ac=100

返回值
120.2.2.100

 

 

返回值参对表

 

HTTP返回值参对表

编号

说明

1

大于0

发送成功,此次发送成功条数

2

-1

参数无效

3

-2

通道不存在或者当前业务不支持此通道

4

-3

定时格式错误

5

-4

接收号码无效

6

-5

提交号码个数超过上限,每个通道都有批量提交的上限.详细值请参考通道说明

7

-6

发送短信内容长度不符合要求,参考通道要求长度

8

-7

当前账户余额不足

9

-8

网关发送短信时出现异常

10

-9

用户或者密码没输入

11

-10

企业ID或者会员账号不存在

12

-11

密码错误

13

-12

账户锁定

14

-13

网关状态关闭

15

-14

验证用户时执行异常

16

-15

网关初始化失败

17

-16

当前IP已被系统屏蔽,可能是与您设置的接入IP不同或者是失败次数太多

18

-17

发送异常

19

-18

账号未审核

20

-19

当前时间不允许此通道工作,主要对群发通道限制

21

-20

传输密钥未设置,请登陆平台设置

22

-21

提取密钥异常

23

-22

签名验证失败

24

-23

发现屏蔽关键字

25

-100-199

运营商返回失败代码

 

 

 

各语言短信接口的例子

 


--查询余额
http://api.zosms.com:6000/gbk/web_api/?x_sid=会员编号&x_eid=企业ID&x_uid=账号&x_pwd_md5=登陆密码MD5值&x_ac=30&x_gate_id=300
1. --ASP 调用例子-------------------------------------------------------------------------------------------
<%
'常用函数
'输入url目标网页地址,返回值getHTTPPage是目标网页的html代码
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
if err.number<>0 then err.Clear
end function
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

'自已组合一下提交的URL加入自己的账号和密码MD5
sms_url="http://api.zosms.com:6000/gbk/web_api/?x_sid=&x_eid=&x_uid=&x_pwd_md5=&x_ac=10&x_gate_id=101&x_target_no=&x_memo="
response.write getHTTPPage(sms_url)
%>

2.--C# 调用---------------------------------------------------------------------------------------------
//需要用到的命名空间
using System.Net;
using System.IO;
using System.Text;
//调用时只需要把拼成的URL传给该函数即可。判断返回值即可
public string GetHtmlFromUrl(string url)
{
string strRet = null;

if(url==null || url.Trim().ToString()=="")
{
return strRet;
}
string targeturl = url.Trim().ToString();
try
{
HttpWebRequest hr = (HttpWebRequest)WebRequest.Create(targeturl);
hr.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
hr.Method = "GET";
hr.Timeout = 30 * 60 * 1000;
WebResponse hs = hr.GetResponse();
Stream sr = hs.GetResponseStream();
StreamReader ser = new StreamReader(sr, Encoding.Default);
strRet = ser.ReadToEnd();
}
catch (Exception ex)
{
strRet = null;
}
return strRet;
}

3.---JAVA调用----------------------------------------------------------------------------------------------
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;


/**
* 发送短信基础类
* @author administration
*
*/
public class SmsBase {
private Integer x_eid=0;
private String x_uid="username";
private String x_pwd_md5="md5pass";
private Integer x_gate_id=300;

public String SendSms(String mobile,String content) throws UnsupportedEncodingException{
Integer x_ac=12;//发送信息
HttpURLConnection httpconn = null;
String result="-20";
String memo = content.trim();
StringBuilder sb = new StringBuilder();
sb.append("http://api.zosms.com:6000/utf8/web_api/?x_eid=");
sb.append(x_eid);
sb.append("&x_uid=").append(x_uid);
sb.append("&x_pwd_md5=").append(x_pwd_md5);
sb.append("&x_ac=").append(x_ac);
sb.append("&x_gate_id=").append(x_gate_id);
sb.append("&x_target_no=").append(mobile);
sb.append("&x_memo=").append(URLEncoder.encode(memo, "utf-8"));
try {
URL url = new URL(sb.toString());
httpconn = (HttpURLConnection) url.openConnection();
BufferedReader rd = new BufferedReader(new InputStreamReader(httpconn.getInputStream()));
result = rd.readLine();
rd.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(httpconn!=null){
httpconn.disconnect();
httpconn=null;
}

}
return result;
}
}

------4 PHP----------------------------------------------------------------------------------

$url='http://api.zosms.com:6000/gbk/web_api/?x_eid=&x_uid=&x_pwd_md5=&x_ac=10&x_target_no=&x_memo=test&x_gate_id=300';

echo Get($url);
function Get($url)
{
if(function_exists('file_get_contents'))
{
$file_contents = file_get_contents($url);
}
else
{
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}

5.VB.NET-------------------------------------------------------------------------------------
'调用发送短信,NoList接收号码.多个之间用,分开,Memo内容70字
Public Function SendSMS(ByVal NoList As String, ByVal Memo As String) As String
Dim Url As String = "http://api.zosms.com:6000/gbk/web_api/?x_sid=会员编号&x_eid=企业ID&x_uid=会员帐号&x_pwd_md5=MD5登录密码&x_ac=10&x_gate_id=300&x_memo=" & Memo & "&x_target_no=" & NoList
Dim webClient As New Net.WebClient()
Try
'Dim responseData As Byte() =
Dim srcString As String = webClient.DownloadString(Url)
Return srcString
Catch
Return "-444"
End Try
End Function

 

 

 

 

 

 

 

 

 

 

 

WebService接口文档

WebService接入方式简单快捷,只需要在系统添加引用该WS地址即可实现调用,投入精力少

WebService调用方式

WS网关地址:
Utf8网关
http://api.zosms.com:6000/utf8/ws_api/WebSMS_V2.asmx
GBK网关
http://api.zosms.com:6000/gbk/ws_api/WebSMS_V2.asmx

 

WebService服务函数目录
1.EditPWD
修改接口密码,平台登录密码不受影响
2.FastSend
快速发送短信,直接提交到运营商,本站不存储任何数据.返回值:SendResult 自定义类
3.FastSendLongSMS
发送长短信,最多支持450字.按64字计费,本站不存储任何数据.返回值:SendResult 自定义类
4.GetBalance
查询账户剩余短信/彩信条数,返回值:sms:100,mms:100 当前余额,否则返回失败代码
5.GetUpSMS
客户主动读取上行短信,最小间隔>30秒,返回多个Woxp_UpSMS上行类。每条上行信息生成一个类,没有上行就返回NULL
6.SendXMLPack
打包发送短信,适合不同内容批量提交,以xml格式打包,上限300条.返回值:SendResult

公共参数调用描述
eid_pwd_gateId ,该参数是字符串类型,由多个值拼成
所有函数都必须依赖这个参数来提供服务
参数格式
( 会员编号-企业代码-会员帐号-sha1(sha1(接口密码)+登录IP)-通道号)各个参数用‘-’分开
参数例如
(1)会员编号:15
(2)企业代码:10001
(3)会员帐号:smsone
(4)登录sha1: e10adc3949ba59abbe56e057f20f883e, sha1(sha1(接口密码)+登录IP)
登录IP可以由http://api.zosms.com:6000/utf8/web_api/SendSMS_V2.aspx?x_ac=100获取
(5)通道号:300(这个是固定值)
eid_pwd_gateId =15-10001-smsone-e10adc3949ba59abbe56e057f20f883e-300
(注意分隔符’-’半角下输入)

1.修改接口密码

public int EditPWD(string eid_pwd_md5, string newPwd_md5)
参数描述
newPwd_md5,新接口密码sha1值(32 位)
返回值
1成功,否则失败.

2.发送普通短信70
public SendResult FastSend(string eid_pwd_gateId, string TargetNo, string MsgContent, string SendTime, string strSubId)

参数描述

  1. TargetNo 发送手机号码,多个号码用逗号分开。最多支持300个号码
  2. MsgContent 发送短信内容,最多70个字符
  3. SendTime 定时发送时间,暂时为null,预留参数
  4. strSubId 扩展码,确认不同用户回复

返回值: SendResult自定义类
<SendResult>
<StatusReportId>string</StatusReportId>
<RetCode>int</RetCode>(是否成功由这个值确定,大于0成功其它值失败)
<GateWayRetutrn>string</GateWayRetutrn>
<GateWayId>int</GateWayId>
<GateWayRetutrn_Cn>string</GateWayRetutrn_Cn>
<BlackWords>string</BlackWords>
<ErrorDesc>string</ErrorDesc>
</SendResult>

成功标识 RetCode值大于0代表发送成功,返回计费条数,否则就返回失败代码

3.发送长短信450
public SendResult FastSendLongSMS(string eid_pwd_gateId, string TargetNo, string MsgContent, string SendTime, string strSubId)

解释同【发送普通短信70字】一样,请参考FastSend上面说明.

4.查询账户余额
public string GetBalance(string eid_pwd_md5)

调用成功后返回值
Sms:1000,mms:1000
该帐号剩余短信1000条,彩信1000条

5.获取用户回复的短信
public Woxp_UpSMS[] GetUpSMS(string eid_pwd_gateId)

返回值,
如果有回复短信返回Woxp_UpSMS数组集合.每个数组存储回复详细信息。否则为NULL
Woxp_UpSMS 自定义类型
<Woxp_UpSMS>
<Id>int</Id> (上行编号,可以忽略)
<Sid>int</Sid> (会员编号区分企业下面多个帐号)
<strMobile>string</strMobile> (回复者的手机号)
<Msg>string</Msg> (回复内容)
<RepTime>string</RepTime> (回复时间)
<SubNo>string</SubNo> (用户扩展码,区分哪个用户回复)
<SP_ID>string</SP_ID> (回复网关号码)
</Woxp_UpSMS>

6.打包提交不同内容短信,最大支持300个包
public SendResult SendXMLPack(string eid_pwd_gateId, string xml)

本函数适合不同内容短信批量提交,返回值请参考FastSend函数返回值.
调用参数 xml格式
<SendSMS>
<Item><!—此节可以循环,最大300-->
<ID>编号</ID> (如果失败,会输出这个编号,保证此包里不要重复)
<CardNo>用户手机号码</CardNo>
<Msg>
<![CDATA[短信内容]]>
</Msg>
<IsLongSMS>1长短信,0普通短信,(超过70字自动设置1)</IsLongSMS>
<SubId>扩展码</SubId>
</Item>
</SendSMS>

 

加载中
0
千古15
千古15
接口调用即可,卡洛思短信平台,专业做短信接口验证码,官网地址:http://www.karlos.com.cn
返回顶部
顶部