清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
一、工作方式
双方通过HTTP方式交互数据,第三方可以简单的“name=value”方式发送提交内容或响应请求内容。即通过HTTP的GET/POST方式交换。
另外双方需要保证数据传输的完整性和安全性,每次发送请求都有响应(响应返回格式为纯文本),安全验证目前采用用户名和密码的方式。
二、字符编码
服务器接收数据可以是GBK或UTF-8编码字符,默认接收数据是GBK编码,如提交的是UTF-8编码字符,需要添加参数encode=utf8。
请求响应返回内容是GBK编码。
三、响应格式
所为响应即每次向服务器提交请求后返回值
响应值格式为纯文本
状态码
如发送成功后返回
100
四、短信发送
GET/POST操作格式:
http://http.c123.com/tx/?uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容
接口参数说明:
参数名
参数字段
参数说明
uid
用户账号
pwd
用户密码
小写32位MD5加密
time
定时时间
可选项,及时发送时参数无 格式:YYYY-MM-DD HH:MM 如:"2010-05-27 12:01" (年-月-日 时:分),发送时间以北京时间为准
mid
子扩展号
可选项,根据用户账号是否支持扩展
encode
字符编码
可选项,默认接收数据是GBK编码,如提交的是UTF-8编码字符,需要添加参数 encode=utf8
mobile
接收号码
同时发送给多个号码时,号码之间用英文半角逗号分隔(,)如:13972827282,13072827282,02185418874
GET 方式每次最多可以提交50条号码
POST 方式每次最多可以提交2000条号码[建议用POST方式提交]
content
短信内容
发送内容需要进行URL字符标准化转码。
{URL字符编码说明:返回字符串,此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)}
ASP:server.URLEncode("短信内容")
PHP:urlencode("短信内容")
JAVA:java.net.URLEncoder.encode("短信内容")
例:
接 收 号:13900008888,13900009999,13100006666,0218882228
发送内容:中国短信网发送测试
http://http.c123.com/tx/?uid=9999&pwd=fa246d0262c3925617b0c72bb20eeb1d&mobile=13900008888,13900009999,13100006666,0218882228&content=%D6%D0%B9%FA%B6%CC%D0%C5%CD%F8%B7%A2%CB%CD%B2%E2%CA%D4
发成功时响应状态码值:
100
返回发送的状态码
状态码 说明
100 发送成功
101 验证失败
102 短信不足
103 操作失败
104 非法字符
105 内容过多
106 号码过多
107 频率过快
108 号码内容空
109 账号冻结
110 禁止频繁单条发送
111 系统暂定发送
120 系统升级
五、接收回复短信
GET操作的格式:
http://http.c123.com/rx/?uid=用户账号&pwd=MD5位32密码
接口参数说明:
参数
参数字段名
说明
uid
用户账号
pwd
用户密码
小写32位MD5加密
例:
http://http.c123.com/rx/?uid=9999&pwd=fa246d0262c3925617b0c72bb20eeb1d
响应结果为纯文本,每次可接收多条回复信息:
状态码{&}回复号码||回复内容||回复时间||回复网关号{&}回复号码||回复内容||回复时间||回复网关号…….
例响应结果值:
100{&}13912341234||中国短信测试回复||2008-05-27 12:10:11||1068112227282{&}15912343333||中国短信测试回复2||2008-05-27 13:11:11||106811222728200
返回发送的状态码
无回复内容时返回空
状态码 说明
100 接收成功
101 验证失败
六、取剩余短信条数
GET操作格式:
http://http.c123.com/mm/?uid=用户账号&pwd=MD5位32密码
接口参数说明:
参数
参数字段名
说明
uid
用户账号
pwd
用户密码
小写32位MD5加密
例:
http://http.c123.com/mm/?uid=9999&pwd=fa246d0262c3925617b0c72bb20eeb1d
响应结果为纯文本:
状态码||剩余可发短信
例响应结果值:
100||22348
状态码 说明
100 请求成功
101 验证失败
七、程序示例
ASP示例 发送短信
<%
'--------------------------------
'功能: 中国短信网ASP HTTP接口示例
'修改: 2009-04-08
'作者: 短信网技术 QQ 1084690886
'说明: http://http.c123.com/tx/?uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容
'--------------------------------*/
dim mobile,content
mobile = "13955447828,02188744445,13154316688" '多个号码之间用”,”分隔
content = "中国短信网短信测试123" '发送内容
sendsms trim(replace(mobile),",",",")),trim(content)
Sub sendsms(mobile,msg)
dim userid,password,status
dim xmlObj,sendurl
userid = "9999" '用户帐号
password = "9999" '用户密码
password = LCASE(MD5(password,32))
sendurl="http://http.c123.com/tx/?uid="&userid&"&pwd="&password&"&mobile="&mobile&"&content="&server.URLEncode(msg)
set xmlObj = server.CreateObject("Microsoft.XMLHTTP")
xmlObj.Open "GET",sendurl,false
xmlObj.send()
status = xmlObj.responseText
set xmlObj = nothing
if status = "100" then '发送成功
Response.Write "发送成功!"
else '发送失败
Response.Write "发送失败!"
end if
End sub
%>
PHP示例 发送短信
/*--------------------------------
功能: 中国短信网PHP HTTP接口
修改: 2009-04-08
作者: 短信网技术 QQ 1084690886
说明: http://http.c123.com/tx/?uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容
--------------------------------*/
$uid = '9999'; //用户账号
$pwd = '9999'; //用户密码
$http = 'http://http.c123.com/tx/'; //发送地址
$mobile = '13912341234,13312341234,13512341234,02122334444'; //多个号码之间用”,”分隔
$content = '中国短信网PHP&HTTP接口'; //发送内容
//即时发送
$res = sendSMS($mobile,$content);
echo $res;
//定时发送
$time = '2010-05-27 12:11';
//$res = sendSMS($mobile,$content,$time);
//echo $res;
function sendSMS($mobile,$content,$time='',$mid='')
{
global $uid,$pwd,$http;
$data = array
(
'uid'=>$uid, //用户账号
'pwd'=>strtolower(md5($pwd)), //MD5位32密码小写
'mobile'=>$mobile, //号码
'content'=>$content, //内容
'time'=>$time, //空即时发送
'mid'=>$mid //子扩展号
);
$re= postSMS($http,$data);
if( trim($re) == '100' )
{
return "发送成功!";
}
else
{
return "发送失败!";
}
}
function postSMS($url,$data='')
{
$row = parse_url($url);
$host = $row['host'];
$port = $row['port'] ? $row['port']:80;
$file = $row['path'];
while (list($k,$v) = each($data))
{
$post .= rawurlencode($k)."=".rawurlencode($v)."&"; //转URL标准码
}
$post = substr( $post , 0 , -1 );
$len = strlen($post);
$fp = fsockopen( $host ,$port, $errno, $errstr, 10);
if (!$fp) {
return "$errstr ($errno)\n";
} else {
$receive = '';
$out = "POST $file HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: $len\r\n\r\n";
$out .= $post;
fwrite($fp, $out);
while (!feof($fp)) {
$receive .= fgets($fp, 128);
}
fclose($fp);
$receive = explode("\r\n\r\n",$receive);
unset($receive[0]);
return implode("",$receive);
}
}
?>