1.各语言短信接口的例子,
如有需要可以
下载接口演示版 http://www.xhsms.com/download/demo.rar
发送短信,<=0返回失败.大于0成功条数,个人的。企业ID为0
http://gateway.woxp.cn:6630/gb2312/web_api/?x_eid=企业ID&x_uid=账号&x_pwd_md5=登陆密码MD5值&x_ac=10&x_gate_id=300&x_target_no=手机号码&x_memo=短信内容
提示:HTTP调用URL接口时, 参数值必须URL编码后再调用
--x_eid企业代码,个人账号值为0
--x_gate_id值为300.代表组合通道
--x_target_no可以多个号码最多100个每次。之间用[,]分开。例如:15910011001,1591061000,15912341234
--x_memo短信内容70字
--查询余额
http://gateway.woxp.cn:6630/gb2312/web_api/?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://gateway.woxp.cn:6630/gb2312/web_api/?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=10;//发送信息
HttpURLConnection httpconn = null;
String result="-20";
String memo = content.length()<70?content.trim():content.trim().substring(0, 70);
StringBuilder sb = new StringBuilder();
sb.append("http://gateway.woxp.cn:6630/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://gateway.woxp.cn:6630/gb2312/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://gateway.woxp.cn:6630/gb2312/web_api/?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
2.HTTP 接口文档
HTTP 接口 当前版本V1.2
网关地址:
GB2312网关 http://gateway.woxp.cn:6630/gb2312/web_api/
UTF-8网关 http://gateway.woxp.cn:6630/utf8/web_api/
网页中参数详细列表
编号
参数名称
参数说明
是否必须
1
x_eid
会员企业ID号,个人用户为0
是
2
x_uid
会员账号
是
3
x_pwd_md5
登陆密码的MD5值
是
4
x_new_pwd
修改密码时需要此参数。代表要变更的新密码
否
5
x_sub_id
扩展子号码,发送短信时需要,根据通道是否支持子号码扩展而提供
否
6
x_target_no
接受者号码,多个号码用“,”分开
否
7
x_memo
短信发送内容.长度请参考通道说明
否
8
x_send_time
定时短信,格式YYYY-MM-DD HH:MM:SS,24小时制.值为空或无该参数代表立即发送
否
9
x_gate_id
发送短信时通道ID,通道发送失败可以切换其它通道,无该值系统使用默认通道
否
10
x_ac
本此提交的行为。比如是发送短信。查询余额,参数值如下
是
11
x_key_id
密钥的ID号,由客服人员提供。当x_ac=11时该值有效.
否
12
x_sign_hash
参数值签名算法,防止URL盗用。联系技术获取签名算法(可选参数)需要x_key_id参数
否
参数x_ac(提交动作)值
编号
值
说明
1
10
发送短信。返回失败或成功
2
11
安全发送短信。需要提供x_key_id值。对提交上来的数据进行加密。保证数据安全性
对下面的参数需要加密(对加密后的字符串必须进行URL编码)
x_eid & x_uid & x_pwd_md5 & x_target_no & x_memo x_send_time(可选) x_sub_id(可选)
3
12
长短信发送,最多支持300字符发送.64字计费.建议发送内容控制到130字符内(新增功能)
4
20
查询上行短信,分主动(客户自已获取)和被动(我们推送到指定地址)两种方式
1.被动接收客户.需要提交接收上行短信的URL地址(POST+XML)方式内容utf-8编码
2.主动接收短信,直接调用AC=20即可.
被动接收提示: .NET文件调用.需要在头设置ValidateRequest="false"参数.否则返回HTTP 500服务器内部错误
5
31
查询当前户剩余条数
6
40
获取指定通道的关键字屏蔽字符串,发送前先过滤关键字再提交
参数x_ac=10发送短信时。返回值
编号
值
说明
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
运营商返回失败代码
2.1 参数x_ac=20主动接受回复的短信,下面显示调用结果xml格式显示
<ReadSMS>
- <Item>
<Id>2805</Id>
<SenderNo>13020930000</SenderNo>
<MsgContent>空空荡荡漾我们的</MsgContent>
<SendTime>2009-11-21 16:54:14</SendTime>
<SP_PID>10655059052084</SP_PID>
<subNo >1200 <subNo /> <!--客户扩展子号码-->
</Item>
- <Item>
<Id>2802</Id>
<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方式发送,接口以POST+XML(utf-8编码)格式发送给客户提供的URL上。下面是XML格式
<ReadSMS> <!--收到短信开始-->
<Item> <!--如果有多条循环此节-->
<Id>101125</Id> <!-- 上行短信编号。唯一值 -->
<SenderNo>13405886058</SenderNo> <!--回复者号码-->
<MsgContent>星信:我时工作顺利用这</MsgContent> <!--回复短信内容-->
<SendTime>2008-03-14 23:07:39</SendTime> <!--回复时间-->
<SP_PID>1065810889988</SP_PID> <!-回复到SP号的号码-->
<subNo>101</subNo> <!--客户扩展子号码-->
</Item>
</ReadSMS>
参数x_ac=30查询账户.返回值
编号
值
说明
1
-1
查询账户余额失败
2
>=0
返回当前余额
用户身份验证时的返回值
编号
值
说明
1
-9
用户或者密码没输入
2
-10
企业ID号不存在
3
-11
登陆密码错误
4
-12
账户锁定
5
-13
网关状态关闭
6
-14
验证账户时执行异常
接收短信或查询账户余额例子
<form id="sms_send">
<input type="hidden" name="x_eid" value="100"/>
<input type="hidden" name="x_pwd_md5" value="md5(123)"/><!--密码必须MD5后的值,不区分大小写-->
<input type="hidden" name="x_ac" value="30"/> <!--提交目的是发送短信 20代表接收短信,需要提供通道ID号-->
<input type="submit" name="Submit" value="查询余额" />
</form>
HTTP GET方试 (参数使用URL编码)
http://gateway.woxp.cn:6630/gb2312/web_api/?x_eid=100&x_uid=admin&x_pwd_md5=asdfsdf&x_ac=10&x_target_no=15910619901&x_memo=test3.WebService 接口文档
WebService接口 当前版本V1.2
Web Service地址:
GB2312网关 http://gateway.woxp.cn:6630/gb2312/ws_api/WebSMS.asmx
UTF-8 网关 http://gateway.woxp.cn:6630/utf8/ws_api/WebSMS.asmx
公共参数说明
string eid_pwd_gateId
详细说明
用户身份标识串,由【企业ID号-会员账号-密码MD5-通道ID】组成。中间用"-"分隔开.
例如10002-admin-87373df3f89fa9932a9c6c58cc75e309-100(通道是可选值,不提供该值,系统使用默认通道),MD5不区分大小写
该值可通过GetIdentityMark函数获取.
获取网关身份识别字符串,供网关功能调用前的验证
public string GetIdentityMark(int Eid, string uid, string pwd, int gateId)
参数名称
参数说明
Eid
企业ID代码,个人用户为0
uid
注册时的账号
pwd
登陆密码.
gateId
短信通道ID,详细请参考通道说明
返回值说明
返回用户身份标识字符串
根据错误ID号,返回详细错误描述
public string GetErrorHint(int ErrorId)
参数名称
参数说明
ErrorId
错误的ID号。操作失败后的ID号
返回值说明
返回错误ID号的中文描述
获取指定通道的关键字屏蔽字符串
public string GetBadKeyWords(string eid_pwd_gateId)
参数名称
参数说明
eid_pwd_gateId
用户标识字符串,设定通道ID号
返回值说明
执行成功,返回指定通道的关键字屏蔽字符串,之间用'|'分开。
快速发送短信,直接提交到网关。
public SendResult FastSend(string eid_pwd_gateId,string No_List, string Memo, string SendTime,string strSubId)
参数名称
参数说明
TargetNo
发送对方的手机号码,多个用','分开。每次最多提交100条.是否支持移动还是联通或者小灵通请参考通道说明
MsgContent
发送短信内容,长度要求请参考通道说明
DateTime
定时发送时间,必须大于当前时间.空代表立即发送
strSubId
如果通道支持子号码扩展,值为子号码.否则使用空值
返回值说明
返回SendResult类型。显示发送详细状态
/// <summary>
/// 返回发送状态,大于0代表成功
/// </summary>
属性名: RetCode
/// 被屏蔽的关键字
/// </summary>
属性名: BlackWords
/// <summary>
/// 发送失败号的码列表,","分开
/// </summary>
属性名: FailNo
/// <summary>
/// 被屏蔽的号码列表,","分开
/// </summary>
属性名: ShieldNo
/// <summary>
/// 错误的描述
/// </summary>
属性名:ErrorDesc
长短信格式发送,最大支持300字,64字计费,建议短信内容控制在130字以内
public SendResult FastSendLongSMS(string eid_pwd_gateId, string TargetNo, string MsgContent, string SendTime, string strSubId)
参数名称
参数说明
TargetNo
发送对方的手机号码,多个用','分开。每次最多提交100条.是否支持移动还是联通或者小灵通请参考通道说明
MsgContent
发送短信内容,长度要求请参考通道说明
DateTime
定时发送时间,必须大于当前时间.空代表立即发送
strSubId
如果通道支持子号码扩展,值为子号码.否则使用空值
返回值说明
返回SendResult类型。显示发送详细状态
/// <summary>
/// 返回发送状态,大于0代表成功.返回短信计费总条数
/// </summary>
属性名: RetCode
/// 被屏蔽的关键字
/// </summary>
属性名: BlackWords
/// <summary>
/// 发送失败号的码列表,","分开
/// </summary>
属性名: FailNo
/// <summary>
/// 被屏蔽的号码列表,","分开
/// </summary>
属性名: ShieldNo
/// <summary>
/// 错误的描述
/// </summary>
属性名:ErrorDesc
快速安全发送短信,直接提交到网关。参数需要加密
public SendResult FastSend_Safe(int nKeyId,string eid_pwd_gateId, string TargetNo, string MsgContent, string SendTime, string strSubId)
参数名称
参数说明
nKeyId
密钥的ID,由客服人员提供
eid_pwd_gateId
需要加密.同上
TargetNo
需要加密,同上
MsgContent
需要加密,同上
DateTime
可选参数 需要加密,同上
strSubId
可选参数 需要加密,同上
返回值说明
返回SendResult类型。显示发送详细状态
/// <summary>
/// 返回发送状态,大于0代表成功
/// </summary>
属性名: RetCode
/// 被屏蔽的关键字
/// </summary>
属性名: BlackWords
/// <summary>
/// 发送失败号的码列表,","分开
/// </summary>
属性名: FailNo
/// <summary>
/// 被屏蔽的号码列表,","分开
/// </summary>
属性名: ShieldNo
/// <summary>
/// 错误的描述
/// </summary>
属性名:ErrorDesc
主动接收回复的短信(需被动接收短信请联系客服人员)
public string ReadXml(string eid_pwd_gateId)
返回值说明
<ReadSMS> <!--收到短信开始-->
<Item><!--如果有多条循环此节-->
<Id>10254</Id> <!-- 编号,唯一值-->
<SenderNo>13405886058</SenderNo><!--回复者号码-->
<MsgContent>星信:我时工作顺利用这</MsgContent><!--回复短信内容-->
<SendTime>2008-03-14 23:07:39</SendTime><!--回复时间-->
<SP_PID>1065810889988</SP_PID> <!-回复到SP号的号码-->
<subNo>101</subNo> <!--客户扩展子号码-->
</Item>
</ReadSMS>
查询当前账户余额
public double GetMoney(string eid_pwd_md5)
参数名称
参数说明
eid_pwd_md5
用户身份标识串,不需要通道ID号
返回值说明
返回当前用户金额,-1代表操作失败
查询当前账户条数
public int GetBalanceCount(string eid_pwd_md5)
参数名称
参数说明
eid_pwd_md5
用户身份标识串,不需要通道ID号
返回值说明
返回当前用户剩余短信条数,-1代表操作失败
用户修改登陆密码
public int EditPWD(string eid_pwd_md5,string newPwd)
参数名称
参数说明
eid_pwd_md5
用户身份标识串,不需要通道ID号
newPwd
新密码
返回值说明
1执行成功,其它值请调用错误函数获取详细信息