php短信不同账号发,云信PHP短信发送接口方法详解说明

功能:使用smsapi.fun.php功能函数发送短信示例

说明:http://api.sms.cn/sms/?ac=send&uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容

变量模板发送示例

demo.php<?php

include 'smsapi.fun.php';

//用户账号

$uid = 'testsms';

//MD5密码

$pwd = '353447s535dd';

/*

* 变量模板发送示例

* 模板内容:您的验证码是:{$code},对用户{$username}操作绑定手机号,有效期为5分钟。如非本人操作,可不用理会。【云信】

* 变量模板ID:100003

*/

//号码

$mobile = '13900001111,13900001112';

//变量模板ID

$template = '100005';

//6位随机验证码

$code = randNumber();

//短信内容参数

$contentParam = array(

'code'=> $code,

'username'=> '您好'

);

//即时发送

$res = sendSMS($uid,$pwd,$mobile,array_to_json($contentParam),$template);

if( $res['stat']=='100' ) {

echo "发送成功!";

} else {

echo "发送失败! 状态:".$res['stat'].'|'.$res['message'];

}

全文模板发送示例

demo2.php<?php

include 'smsapi.fun.php';

//用户账号

$uid = 'testsms';

//MD5密码

$pwd = '353447s535dd';

/*

* 全文模板发送示例

* 模板内容:登录验证码:{**}。如非本人操作,可不用理会!【云信】

*

*/

//号码 多个号码用,英文逗号隔开

$mobile = '13900001111';

//短信内容

$code = randNumber();//验证码

$content = '登录验证码:'.$code.'。如非本人操作,可不用理会!【云信】';

//即时发送

$res = sendSMS($uid,$pwd,$mobile,$content);

if( $res['stat']=='100' ) {

echo "发送成功!";

} else {

echo "发送失败! 状态:".$res['stat'].'|'.$res['message'];

}

smsapi.fun.php<?php

/**

SMS短信发送函数

@authorsms.cn

@linkhttp://www.sms.cn

*/

/**

* 短信发送

*

* @param string $uid 短信账号

* @param string $pwd MD5接口密码

* @param string $mobile 手机号码

* @param string $content 短信内容

* @param string $template 短信模板ID

* @return array

*/

function sendSMS($uid,$pwd,$mobile,$content,$template='')

{

$apiUrl = 'http://api.sms.cn/sms/';//短信接口地址

$data = array(

'ac' =>'send',

'uid'=>$uid,//用户账号

'pwd'=>md5($pwd.$uid),//MD5位32密码,密码和用户名拼接字符

'mobile'=>$mobile,//号码

'content'=>$content,//内容

'template'=>$template,//变量模板ID 全文模板不用填写

'format' => 'json',//接口返回信息格式 json\xml\txt

);

$result = postSMS($apiUrl,$data);//POST方式提交

$re = json_to_array($result);    //JSON数据转为数组

//$re = getSMS($apiUrl,$data);//GET方式提交

return $re;

/*

if( $re['stat']=='100' )

{

return "发送成功!";

}

else if( $re['stat']=='101')

{

return "验证失败! 状态:".$re;

}

else

{

return "发送失败! 状态:".$re;

}

*/

}

/*

//密码直接写的函数里

function sendSMS($mobile,$content,$template='')

{

$uid = 'test';

$pwd = 'testpass';

$apiUrl = 'http://api.sms.cn/sms/';//短信接口地址

$data = array(

'ac' =>'send',

'uid'=>$uid,//用户账号

'pwd'=>md5($pwd.$uid),//MD5位32密码,密码和用户名拼接字符

'mobile'=>$mobile,//号码

'content'=>$content,//内容

'template'=>$template,//变量模板ID 全文模板不用填写

'format' => 'json',//接口返回信息格式 json\xml\txt

);

$result = postSMS($apiUrl,$data);//POST方式提交

$re = json_to_array($result);    //JSON数据转为数组

if( $re['stat']=='100' )

{

return "发送成功";

}

else if( $re['stat']=='101')

{

return "验证失败! 状态:".$re;

}

else

{

return "发送失败! 状态:".$re;

}

}

*/

/**

* POST方式HTTP请求

*

* @param string $url URL地址

* @param array $data POST参数

* @return string

*/

function postSMS($url,$data='')

{

$row = parse_url($url);

$host = $row['host'];

$port='';

$port = $row['port'] ? $row['port']:80;

$file = $row['path'];

$post='';

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);

}

}

/**

* GET方式HTTP请求

*

* @param string $url URL地址

* @param array $data POST参数

* @return string

*/

function getSMS($url,$data='')

{

$get='';

while (list($k,$v) = each($data))

{

$get .= $k."=".urlencode($v)."&";//转URL标准码

}

return file_get_contents($url.'?'.$get);

}

//数字随机码

function randNumber($len = 6)

{

$chars = str_repeat('0123456789', 10);

$chars = str_shuffle($chars);

$str   = substr($chars, 0, $len);

return $str;

}

//把数组转json字符串

function array_to_json($p)

{

return urldecode(json_encode(json_urlencode($p)));

}

//url转码

function json_urlencode($p)

{

if( is_array($p) )

{

foreach( $p as $key => $value )$p[$key] = json_urlencode($value);

}

else

{

$p = urlencode($p);

}

return $p;

}

//把json字符串转数组

function json_to_array($p)

{

if( mb_detect_encoding($p,array('ASCII','UTF-8','GB2312','GBK')) != 'UTF-8' )

{

$p = iconv('GBK','UTF-8',$p);

}

return json_decode($p, true);

}

?>

状态码:状态:{"stat":"100","message":"发送成功"}

100 发送成功

101 验证失败

102 短信不足

103 操作失败

104 非法字符

105 内容过多

106 号码过多

107 频率过快

108 号码内容空

109 账号冻结

112号码错误

116 禁止接口发送

117 绑定IP不正确

161 未添加短信模板

162 模板格式不正确

163 模板ID不正确

164 全文模板不匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值