commit | author | age
|
3e083b
|
1 |
<?php |
B |
2 |
header("Content-Type:text/html;charset=utf-8"); |
|
3 |
/*-------------------------------- |
|
4 |
功能:HTTP接口 发送短信 |
|
5 |
说明: http://http.yunsms.cn/tx/?uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容 |
|
6 |
状态: |
|
7 |
100 发送成功 |
|
8 |
101 验证失败 |
|
9 |
102 短信不足 |
|
10 |
103 操作失败 |
|
11 |
104 非法字符 |
|
12 |
105 内容过多 |
|
13 |
106 号码过多 |
|
14 |
107 频率过快 |
|
15 |
108 号码内容空 |
|
16 |
109 账号冻结 |
|
17 |
110 禁止频繁单条发送 |
|
18 |
111 系统暂定发送 |
|
19 |
112 有错误号码 |
|
20 |
113 定时时间不对 |
|
21 |
114 账号被锁,10分钟后登录 |
|
22 |
115 连接失败 |
|
23 |
116 禁止接口发送 |
|
24 |
117 绑定IP不正确 |
|
25 |
120 系统升级 |
|
26 |
--------------------------------*/ |
|
27 |
//$uid = '9999'; //用户账号 |
|
28 |
//$pwd = '9999'; //密码 |
|
29 |
//$mobile = '13912341234,13312341234,13512341234,02122334444'; //号码 |
|
30 |
//$content = '你好,验证码:1019【云信】'; //内容 |
|
31 |
//即时发送 |
|
32 |
//$res = sendSMS($uid,$pwd,$mobile,$content); |
|
33 |
//echo $res; |
|
34 |
|
|
35 |
//定时发送 |
|
36 |
/* |
|
37 |
$time = '2010-05-27 12:11'; |
|
38 |
$res = sendSMS($uid,$pwd,$mobile,$content,$time); |
|
39 |
echo $res; |
|
40 |
*/ |
|
41 |
function sendSMS($mobile,$content,$time='',$mid='') |
|
42 |
{ |
|
43 |
$content = iconv('utf-8','gbk',$content); |
|
44 |
$http = 'http://api.chanyoo.cn/utf8/interface/send_sms.aspx/'; //'http://http.yunsms.cn/tx/'; |
|
45 |
$uid = 'xxxxx'; // 用户账号 |
|
46 |
$pwd = 'xxxx'; // 密码 |
|
47 |
$data = array |
|
48 |
( |
|
49 |
'uid'=>$uid, //用户账号 |
|
50 |
'pwd'=>strtolower(md5($pwd)), //MD5位32密码 |
|
51 |
'mobile'=>$mobile, //号码 |
|
52 |
'content'=>$content, //内容 如果对方是utf-8编码,则需转码iconv('gbk','utf-8',$content); 如果是gbk则无需转码 |
|
53 |
'time'=>$time, //定时发送 |
|
54 |
'mid'=>$mid //子扩展号 |
|
55 |
); |
|
56 |
$re= postSMS($http,$data); //POST方式提交 |
|
57 |
|
|
58 |
$re_t = substr(trim($re), 3, 3); |
|
59 |
|
|
60 |
if(trim($re) == '100' || $re_t == '100') |
|
61 |
|
|
62 |
{ |
|
63 |
return "发送成功!"; |
|
64 |
} |
|
65 |
else |
|
66 |
{ |
|
67 |
return "发送失败! 状态:".$re; |
|
68 |
} |
|
69 |
} |
|
70 |
|
|
71 |
function postSMS($url,$data='') |
|
72 |
{ |
|
73 |
$port = $post = ''; |
|
74 |
$row = parse_url($url); |
|
75 |
$host = $row['host']; |
|
76 |
$port = isset($row['port']) ? $row['port']:80; |
|
77 |
$file = $row['path']; |
|
78 |
while (list($k,$v) = each($data)) |
|
79 |
{ |
|
80 |
$post .= rawurlencode($k)."=".rawurlencode($v)."&"; //转URL标准码 |
|
81 |
} |
|
82 |
$post = substr( $post , 0 , -1 ); |
|
83 |
$len = strlen($post); |
|
84 |
$fp = @fsockopen( $host ,$port, $errno, $errstr, 10); |
|
85 |
if (!$fp) { |
|
86 |
return "$errstr ($errno)\n"; |
|
87 |
} else { |
|
88 |
$receive = ''; |
|
89 |
$out = "POST $file HTTP/1.1\r\n"; |
|
90 |
$out .= "Host: $host\r\n"; |
|
91 |
$out .= "Content-type: application/x-www-form-urlencoded\r\n"; |
|
92 |
$out .= "Connection: Close\r\n"; |
|
93 |
$out .= "Content-Length: $len\r\n\r\n"; |
|
94 |
$out .= $post; |
|
95 |
fwrite($fp, $out); |
|
96 |
while (!feof($fp)) { |
|
97 |
$receive .= fgets($fp, 128); |
|
98 |
} |
|
99 |
fclose($fp); |
|
100 |
$receive = explode("\r\n\r\n",$receive); |
|
101 |
unset($receive[0]); |
|
102 |
return implode("",$receive); |
|
103 |
} |
|
104 |
} |
|
105 |
?> |