作者 wangzhi

k

... ... @@ -80,7 +80,7 @@
<div class="input-group-addon"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></div>
<input type="password" class="form-control" placeholder="短信验证码" name="code" autocomplete="off" value="" />
<span class="input-group-addon" style="padding:0;border:none;cursor:pointer;">
<button type="submit">发送短信验证码</button>
<button type="submit" id="send_btn">发送短信验证码</button>
</span>
</div>
{if $Think.config.fastadmin.login_captcha}
... ... @@ -109,4 +109,19 @@
</div>
{include file="common/script" /}
</body>
<script>
$('#send_btn').on('click', function(){
var fd = new FormData($('form')[0])
$.ajax({
method: 'post',
url: '',
data: fd,
contentType: false,
processData: false,
success: function(res){
console.log('res')
}
});
})
</script>
</html>
\ No newline at end of file
... ...
... ... @@ -176,4 +176,67 @@ class Common extends Api
}
return;
}
//发送验证码
public function send()
{
$mobile = '13292442918';
$event = 1;
// $ipSendTotal = \app\common\model\Sms::where(['ip' => $this->request->ip()])->whereTime('createtime', '-1 hours')->count();
// if ($ipSendTotal >= 5) {
// $this->error(__('发送频繁2'));
// }
$url = "https://api.mix2.zthysms.com/v2/sendSms";
$records = [];
$code = mt_rand(1000, 9999);
for ($i = 0; $i < 1; $i++) {
$record = array("mobile" => 13800000000, "tpContent" => array("var1" =>
'您的验证码是' . $code));
array_push($records, $record);
}
$tKey = time();
$password = md5(md5('Cxz307312') . $tKey);
$date = array(
'username' => 'yizhan', //用户名
'password' => $password, //密码
'tKey' => $tKey, //tKey
'signature' => '【驿站小程序】',
'records' => $records,
'mobile' => $mobile,
'content' => '【驿站小程序】您的验证码是:"' . $code . '",请于10分钟内使用,如非本人操作,可忽略此消息。'
);
$ret = $this->httpPost($url, $date);
$time = time();
$ip = request()->ip();
$sms = \app\common\model\Sms::create(['event' => $event, 'mobile' => $mobile, 'code' => $code, 'ip' => $ip, 'createtime' => $time]);
if ($ret) {
$this->success(__('发送成功'));
} else {
$this->error(__('发送失败,请检查短信配置是否正确'));
}
}
function httpPost($url, $date)
{ // 模拟提交数据函数
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($date)); // Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, false); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回
curl_setopt($curl, CURLOPT_HEADER, true); //开启header
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8'
)); //类型为json
$result = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo 'Error POST' . curl_error($curl);
}
curl_close($curl); // 关键CURL会话
return $result; // 返回数据
}
}
... ...