搜索
系统检测到您的用户名不符合规范:

tp5融合阿里大于,一键发送短信

浏览:1126 发布日期:2016年11月08日 分类:技术分享
可以方便调用阿里短信验证namespace app\index\controller;

use think\Controller;
use think\Request;
use think\Db;
use think\Loader;

class Alidayu extends Base {

public function index()
{
// 短信配置信息
$appkey = config('sms_appkey');//你的App key
$secret = config('sms_appsecret');//你的App Secret:
$sms_templatecode = config('sms_template_code');
$sms_signname = config('sms_signname');

$ab = $this->randstring();//获取随机数字
$mobile = input('post.mobile');//接收手机号码
$captcha = input('post.captcha');//接收的验证码
// 验证
// 实例化验证器
$validate = Loader::validate('Login');
// 验证数据
$data = ['mobile'=>$mobile,'captcha'=>$captcha];
// 加载语言包
$validate->loadLang();
// 验证
if(!$validate->scene('sms_login')->check($data)) {
return $this->error($validate->getError());
}
$data['yzm_time'] = time();
$data['code'] = $ab;
$data['num'] = 0;
$data['mobile'] = $mobile;
$data['captcha'] = $captcha;
$res = Db::name('Code')->where('mobile',$mobile)->find();
if($res) {
$interval_time = $data['yzm_time']-$res['yzm_time'];
if($interval_time<config('sms_interval')) {
$data['message']='发送太频繁请稍后重试';

return $this->error($data['message']);
} else {
$data['num'] = 0;
Db::name('Code')->where('mobile',$mobile)->update($data);
}
} else {
Db::name('Code')->where('mobile',$mobile)->insert($data);
}

import('org.util.taobao.top.TopClient');
import('org.util.taobao.top.ResultSet');
import('org.util.taobao.top.RequestCheckUtil');
import('org.util.taobao.top.TopLogger');
import('org.util.taobao.top.request.AlibabaAliqinFcSmsNumSendRequest');
// 将需要的类引入,并且将文件名改为原文件名.php的形式
$c = new \TopClient;
$c->appkey = $appkey;
$c->secretKey = $secret;
$req = new \AlibabaAliqinFcSmsNumSendRequest;
$req->setExtend("123456");//确定发给的是哪个用户,参数为用户id
$req->setSmsType("normal");

$req->setSmsFreeSignName($sms_signname);
$req->setSmsParam("{'code':'".$ab."','product':'小微企业'}");
$req->setRecNum("".$mobile."");//参数为用户的手机号码
$req->setSmsTemplateCode($sms_templatecode);
$resp = $c->execute($req);
$postObj = simplexml_load_string($resp, 'SimpleXMLElement', LIBXML_NOCDATA);

if($resp->result->success ){
$data['message']="发送成功";
return $this->success($data['message']);
}else{
$data['message']="发送失败";
return $this->success($data['message']);
}

}
前台利用AJAX进行验证,十分方便<script type="text/javascript">

//获取手机验证码
function sendSms(){
var mobile = $("#mobile").val();
var pic_code = $("#pic_code").val();
if(verifymobile(mobile) == false){
alert('请填写正确的手机号码')
return false
}
$.ajax({
type:"post",
url:"{:url('alidayu/index')}",
data:{"mobile":mobile,"captcha":pic_code},
dataType:"json",
success: function(res){
if(res.code == 0 )
{
alert(res.msg);
} else{
var wait = 60;
$(".code_button").val((--wait) + "秒后重新发送");
var time_line = setInterval(function(){
if(wait == 0)
{
$(".code_button").val("获取手机验证码");
return clearInterval(time_line);
}else{
$(".code_button").val((--wait) + "秒后重新发送");
}
},1000);
alert(res.msg);
}
}
});
}
这里篇幅限制,无法提供所有示例,详细研究请下载源代码,大家共同交流,促进技术进步
源码索取QQ群号 :588401996 或登录小微云商官网:http://w.yunshang.shop
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
764617706
积分:291 等级:LV1
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /