精简版阿里大鱼短信接口短信SMS发送接口PHP实例

2018-03-09编程教程
101

<?php header("Content-Type:text/html;charset=gb2312"); 

//签名函数
function createSign ($paramArr) {
     global $appSecret;
     $sign = $appSecret;
     ksort($paramArr);
     foreach ($paramArr as $key => $val) {
         if ($key != '' && $val != '') {
             $sign .= $key.$val;
         }
     }
     $sign.=$appSecret;
     $sign = strtoupper(md5($sign));
     return $sign;
}

//组参函数
function createStrParam ($paramArr) {
     $strParam = '';
     foreach ($paramArr as $key => $val) {
     if ($key != '' && $val != '') {
             $strParam .= $key.'='.urlencode($val).'&';
         }
     }
     return $strParam;
}

?><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>短信发送</title>
<style type="text/css">
/*自定义css*/
body{font-family:Georgia,仿宋_GB2312, Arial, Helvetica, sans-serif;}
table {margin:0 auto;width:468px;}
td{padding:1px;text-align:center;}
td span{font-size:14px;padding:1px;}
#m_,#n_{color:red;}
span,i{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}
i{width:320px;background:#e5f2fa;font-size:24px;font-weight:600;}
hr{PAGE-BREAK-AFTER:always;HEIGHT:0px;width:0px;margin:0;}
</style>
</head>
<body>
<script language="javascript"> 
var $=function(node){
return document.getElementById(node);
}
function $(objId){
return document.getElementById(objId);
}
function startRequest(Num) {
var queryString;
var ms=$("m").value.replace(/(^\s+)|(\s+$)/g, "");//去除前后的空格
var ns=$("n").value.replace(/(^\s+)|(\s+$)/g, "");//去除前后的空格
if(Num == 3 || Num == 0){
if (!ms.match(/^1[34578][\d]{9}$/)){
$('m').style.borderColor='red';
$("m_").innerHTML="请输入正确手机号!";
return false;
}else{
$('m').style.borderColor='green';
$("m_").innerHTML="OK!";
}
}
if(Num == 4 || Num == 0){
if (!ns.match(/^[0-9]{6}$/)){
//if($("n").value == ""){
$('n').style.borderColor='red';
$("n_").innerHTML="请输入6位数字验证码!";
return false;
}else{
$('n').style.borderColor='green';
$("n_").innerHTML="OK!";
}
}
if(Num == "0"){
//$("sub").submit();
//return false;
}
}
</script>
<?php

$mm=$_POST['m'];
$nn=$_POST['n'];
$randkey= rand(111000,999888);

if(!$mm){
}else{

//修改以下参数为你的参数(正确修改才可以正常使用)
//**********************************************************
//以下俩项目:https://www.alidayu.com/center/application/list点击对应项目后查看
$appKey = '232788888';  
$appSecret = '12345678900000000';
//在这个页面查看短信模板:https://www.alidayu.com/center/tpl/list/code
$template_code = 'SMS_2505450';
//在这个页面查看短信签名:https://www.alidayu.com/center/sign/list/code
$sinname= '身份验证'; //
$product= '微信公众号绑定身份验证';
//**********************************************************


//以下不用管
$sinname= iconv('GB2312', 'UTF-8', $sinname);
$product= iconv('GB2312', 'UTF-8', $product);
$sinnames= urlencode($sinname);
$products= urlencode('{"code":"'.$randkey.'","product":"'.$product.'"}');
$sinnames= $sinname;
$products= '{"code":"'.$nn.'","product":"'.$product.'"}';

//参数数组
$paramArr = array(
     'app_key' => $appKey,
     'method' => 'alibaba.aliqin.fc.sms.num.send',
     'format' => 'xml',
     'v' => '2.0',
     'sms_type' => 'normal',
     'sign_method'=>'md5',
     'timestamp' => date('Y-m-d H:i:s'),
     'extend' => ''.$randkey.'',
     'rec_num' => ''.$mm.'',
     'sms_free_sign_name' => ''.$sinnames.'',
     'sms_param' => ''.$products.'',
     'sms_template_code' => ''.$template_code.''
);

//生成签名
$sign = createSign($paramArr);

//组织参数
$strParam = createStrParam($paramArr);
$strParam .= 'sign='.$sign;

//访问服务
$url = 'http://gw.api.taobao.com/router/rest?'.$strParam; //沙箱环境调用地址
$result = file_get_contents($url);
//$result = json_decode($result);
echo "<br>'.$result.'<br>";
//print_r($result);
}

?>
<table border="0" cellpadding="0">
<form id="form" name="form" method="post" action="" onsubmit="return startRequest(0);">
<tr>
<td style="width:120px;">
手机号:
</td>
<td>
<input name="m" type="text" id="m" style="width:100%;" onBlur="startRequest(3)" /><span id="m_"></span>
</td>
</tr>
<tr>
<td style="width:120px;">
验证码:
</td>
<td>
<input name="n" type="text" id="n" style="width:100%;" onBlur="startRequest(4)" value="<?php echo $randkey; ?>" /><span id="n_"></span>
</td>
</tr>
<tr>
<td colspan="2" bgcolor="#FFFFFF">
<input type="submit" name="Submit3" value=" 发送短信 " />
</td>
</tr>
</form>
</table>
</body>
</html>

The End

相关推荐

PHP错误Warning: Cannot modify header information - headers alr
今天在用php进行图片保存输出时候,图片一直显示错误,后面用调试模式下提示:Warning: Cannot modify header information - headers already sent by... 看了一些网上的方法也没解决,最后在php.ini配置output_buffering默认为4096就没有遇到这个错误了: o...
2022-05-18 编程教程
69

Parse error: syntax error, unexpected '&'解决办法
在使用PHP5.4及以上版本时,在调用函数时,使用引用符号时,会出现Parse error: syntax error, unexpected 或PHP Fatal error: Call-time pass-by-reference has been removed者,这是由于在函数调用时通过引用传递参数已被弃用,因为它影响了代码的整洁,如...
2022-05-11 编程教程
295

解析PHP中ob_start()函数的用法
ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有Header had all ready send by的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出.当然打开缓冲区的作用很多,只要...
2022-05-11 编程教程
106

php中判断一个字符串包含另一个字符串的方法
第一种方法:用php的strpos() 函数判断字符串中是否包含某字符串的方法 if(strpos(www.genban.org,genban) !== false){ echo 包含genban; }else{ echo 不包含genban; } 第二种 使用了explode 用explode进行判断PHP判断字符串的包含代码如下: ?php $name = 00...
2020-03-28 编程教程
403

PHP中preg_match正则匹配的/u /i /s是什么意思
/u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字) /i 表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象) /s 表示将字符串视为单行来匹配...
2020-03-28 编程教程
202

PHP 随机用户名账号的生成
随机生成难点是在于如何避免碰撞,有人说用md5,GUID这些机制啊,当然可以,但是做为账号,看着有乱,而且生成位数也过长。 本方法只需要解决1秒内的并发碰撞就可以,因为固定头部采用的是unixtime时间,精确到秒,超过1秒,这个头部的时间肯定变化了。同时...
2020-03-27 编程教程
79