管理系统如何开发短信认证功能?"/>
微赞管理系统如何开发短信认证功能?
公司买了一套微赞管理系统,让我国庆前做好会员短信认证服务,就是会员注册、登陆、找回密码、还有一系列操作事的短信认证功能,之前也没做过这个,问了下以前的同事说里面有系统的插件可以直接用,我在网上找了下,发现真的可以,都是别人开发好的,覆盖后就可以用。
功能介绍
手机号短信验证注册
安装步骤
覆盖一下目录里的两个文件
1、data\tpl\web\default\system\common.tpl.php
2、framework\function\sms.func.php
3、web/source/system/common.ctrl.php
4、web/source/utility/verifycode.ctrl.php
5、web/source/user/register.ctrl.php
短信设置在系统-系统管理-其它设置
代码示例
//接口类型:互亿无线触发短信接口,支持发送验证码短信、订单通知短信等。// 账户注册:请通过该地址开通账户/?b5kwA // 注意事项://(1)调试期间,请使用用系统默认的短信内容:您的验证码是:【变量】。请不要把验证码泄露给其他人。//(2)请使用 APIID 及 APIKEY来调用接口,可在会员中心获取;//(3)该代码仅供接入互亿无线短信接口参考使用,客户可根据实际需要自行编写;//开启SESSION
session_start();header("Content-type:text/html; charset=UTF-8");//请求数据到短信接口,检查环境是否 开启 curl init。
function Post($curlPost,$url){$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_NOBODY, true);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);$return_str = curl_exec($curl);curl_close($curl);return $return_str;
}//将 xml数据转换为数组格式。
function xml_to_array($xml){$reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";if(preg_match_all($reg, $xml, $matches)){$count = count($matches[0]);for($i = 0; $i < $count; $i++){$subxml= $matches[2][$i];$key = $matches[1][$i];if(preg_match( $reg, $subxml )){$arr[$key] = xml_to_array( $subxml );}else{$arr[$key] = $subxml;}}}return $arr;
}//random() 函数返回随机整数。
function random($length = 6 , $numeric = 0) {PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);if($numeric) {$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));} else {$hash = '';$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';$max = strlen($chars) - 1;for($i = 0; $i < $length; $i++) {$hash .= $chars[mt_rand(0, $max)];}}return $hash;
}
//短信接口地址
$target = ".php?method=Submit";
//获取手机号
$mobile = $_POST['mobile'];
//获取验证码
$send_code = $_POST['send_code'];
//生成的随机数
$mobile_code = random(4,1);
if(empty($mobile)){exit('手机号码不能为空');
}
//防用户恶意请求
if(empty($_SESSION['send_code']) or $send_code!=$_SESSION['send_code']){exit('请求超时,请刷新页面后重试');
}$post_data = "account=用户名&password=密码&mobile=".$mobile."&content=".rawurlencode("您的验证码是:".$mobile_code."。请不要把验证码泄露给其他人。");
//查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID
//查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY
$gets = xml_to_array(Post($post_data, $target));
if($gets['SubmitResult']['code']==2){$_SESSION['mobile'] = $mobile;$_SESSION['mobile_code'] = $mobile_code;
}
echo $gets['SubmitResult']['msg'];
更多推荐
微赞管理系统如何开发短信认证功能?
发布评论