思梦PHP-阿里大鱼手机验证码

小伙伴是否做PC网站的时候,是否遇到过注册用户需要使用短信验证的功能呢?或者找回密码,以及验证用户的信息等等功能!今天思梦PHP就为大家带来ThinkPHP整合阿里大鱼短信验证的功能!

首先,我们要明白短信发送是什么原理,其实我们使用的第三方是一个通讯的短信协议,然后把我们随机生成的一个验证码发送到用户的手机上,之后我们发送的同时在数据库里面要保存相应的信息用来验证,原理就是这样的了,下来我们就开始一步一步的教大家去玩这个功能!

(1)我们要去建一个保存短信消息的数据表

DROP TABLE IF EXISTS `tb_record`;

CREATE TABLE `tb_record` ( `id` int(11) NOT NULL AUTO_INCREMENT, `tel` varchar(255) NOT NULL COMMENT ‘手机号‘, `vc` varchar(255) NOT NULL, `time` varchar(255) NOT NULL, `ctime` varchar(255) NOT NULL COMMENT ‘最后一次发送验证码的时间‘, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT=‘短信发送记录表‘;

(2)我们要去使用第三方的类文件,当然这个类文件你可以去平台下载,上面有PHP的demo,然后我们整合到thinkphp里面就行了,加入放在类库里面不要忘记声明命名空间!

(3)我们在配置文件里面配置一些辅助变量

‘url‘=>‘http://www.etuocloud.com/gatetest.action‘, //这个是测试的调用地址,上限之后要更改‘app_key‘=>‘XXXXXXXXXX‘, // key,你申请之后创建应用会得到‘app_secret‘=>‘XXXXXXXXXXXX‘, // 密匙,你申请之后创建应用会得到‘format‘=>‘json‘, // 返回值的格式,分为XML和json

(4)这步就是我们开始写逻辑操作了

$_POST[‘tel‘] = "18522713XXX";$tel = $_POST[‘tel‘];$w[‘tel‘] = $tel;$res1 = D("Record")->where($w)->find();//一天之内只能有三次机会(验证)$gap = time()-$res1[‘ctime‘];if($gap>=86400){ $data[‘time‘] = 0; D("Record")->where($w)->save($data);}$res1 = D("Record")->where($w)->find();if($res1[‘time‘]>=3){ echo "短信上限!";}else { //随机发送的验证码的值 $num = rand(1000, 9999); //实例化一个对象 $ecd = new Ecd(C(‘url‘), C(‘app_key‘), C(‘app_secret‘), C(‘format‘)); //发送验证码短信 //第一个参数是手机号,第二个是模板的id,在应用管理有 一个模板的管理,第三个就是我们发送的随机的验证码,第 四个是订单号,咟?不填 $res = $ecd->send_sms_code("$tel", ‘1‘, "$num", ‘‘); $arr = json_decode($res, true); if ($arr[‘result‘] == 0 && $arr[‘msg‘] == "成功") { $w[‘tel‘] = $tel; $res1 = D("Record")->where($w)->find(); if ($res1) { $data[‘vc‘] = $num; $data[‘time‘] = $res1[‘time‘] + 1; $data[‘ctime‘] = time(); $res2 = D("Record")->where($w)->save($data); if ($res2) { echo "发送成功"; } else { echo "发送失败"; } } else { $data[‘tel‘] = $tel; $data[‘vc‘] = $num; $data[‘time‘] = 1; $data[‘ctime‘] = time(); $res3 = D("Record")->add($data); if ($res3) { echo "发送成功"; } else { echo "发送失败"; } } }}

(5)那就是收到短信,然后用户提交的时候我们根据用户的手机号去查相关的验证码好了!

$_POST[‘tel‘] = "18522713XXX";

$tel = $_POST[‘tel‘];$w[‘tel‘] = $tel;

$res1 = D("Record")->where($w)->find();//一天之内只能有三次机会(验证)

$gap = time()-$res1[‘ctime‘];

if($gap>=86400){

$data[‘time‘] = 0;

D("Record")->where($w)->save($data);

}

$res1 = D("Record")->where($w)->find();

if($res1[‘time‘]>=3){

echo "短信上限!";

}else {

//随机发送的验证码的值 $num = rand(1000, 9999);

//实例化一个对象

$ecd = new Ecd(C(‘url‘), C(‘app_key‘), C(‘app_secret‘), C(‘format‘));

//发送验证码短信 //第一个参数是手机号,第二个是模板的id,在应用管理有 一个模板的管理,第三个就是我们发送的随机的验证码,第 四个是订单号,咟?不填

$res = $ecd->send_sms_code("$tel", ‘1‘, "$num", ‘‘);

$arr = json_decode($res, true);

if ($arr[‘result‘] == 0 && $arr[‘msg‘] == "成功") {

$w[‘tel‘] = $tel;

$res1 = D("Record")->where($w)->find();

if ($res1) { $data[‘vc‘] = $num;

$data[‘time‘] = $res1[‘time‘] + 1;

$data[‘ctime‘] = time();

$res2 = D("Record")->where($w)->save($data);

if ($res2) {

echo "发送成功";

} else { echo "发送失败";

}

} else { $data[‘tel‘] = $tel;

$data[‘vc‘] = $num;

$data[‘time‘] = 1;

$data[‘ctime‘] = time();

$res3 = D("Record")->add($data);

if ($res3) { echo "发送成功";

} else {

echo "发送失败";

} } }}

还有就是小伙伴要注意的就是,阿里大鱼未认证的用户,只能给白名单的用户发送短信,所以你要去配置一下白名单,以保证我们发送的成功!还有就是刚申请的时候是有免费的100条使用的条数的,供我们测试使用!

时间: 2024-10-07 10:19:24

思梦PHP-阿里大鱼手机验证码的相关文章

原来对接阿里云手机验证码服务操作这么简单

接入阿里云短信服务1.注册阿里云短信服务账号,这里使用淘宝账号就可以登陆,不做演示,入口如图  2.既然使用服务,那肯定要涉及到费用,我们看一下收费标准,连接:短信业务规则  3.API说明文档,生成Acceses Key(生成后请妥善保存)  4.选择模板,获取模板code  注:${code}为变量名称申请成功后会得到模板code  注意事项:短信格式:?    短信由签名和模板两部分组成.用户需要先申请短信签名,审批通过后,再申请短信模板?    短信示例:[阿里云]验证码${code},

阿里大鱼短信接口整合Tp3.2.3开发整理

阿里大鱼 http://www.alidayu.com/ 的短信接口总体是不错的,别安驹个人认为不管是从性价比还是稳定性上都是跟同类的短信接口好些,毕竟是大公司的东西不会差到哪去.下面把之前开发的短信接口做个整理. 1,登陆阿里大鱼的管理中心新增自己的应用,然后使用什么模板请提交审核,此处不做多说. 2,核心步骤,整理阿里大鱼给出的php示例核心包,不过别安驹已经为你整理好了只需要下载即可  核心包传送门 (ps:解压密码:http://www.bieanju.com/). 3,前台调用发送短信

Tihinkphp3.2整合最新版阿里大鱼进行短信验证码发送

阿里大鱼最新下载地址:阿里大鱼SDK下载 或者从官网进行下载:阿里大鱼SDK官网下载 下载完成后,将压缩包内的api_sdk文件夹放到ThinkPHP\Library\Vendor目录下,修改文件名为Aliyun,若修改为其他名称,请修改命名空间! 阿里大鱼申请步骤就不说了!开始接入吧~ 设置阿里大鱼配置信息: 在配置文件中配置: 1 'ALI_SMS' => [ 2 'PRODUCT' => 'Dysmsapi', 3 'DOMAIN' => 'dysmsapi.aliyuncs.co

网站使用阿里大鱼发送短信DEMO及步骤

阿里大鱼的短息一条4分5,比起市场上7分5的短信,便宜多了,而且大平台,相信之后选择用它的人也会越来越多. 下面记述一下集成方法,有需要的可以看看. 1.申请大鱼,用淘宝账号登陆,最好是认证过的淘宝号,网址http://www.alidayu.com/ 2.在大鱼管理中心的右上角头像旁边点击进入“开发者控制台” 3.创建应用(阿里有更详细的说明:https://doc.alidayu.com/doc2/detail.htm?spm=0.0.0.0.4Ozcne&treeId=135&art

阿里大鱼短信接口 for Thinkphp

不得不说阿里云为创业者在起步时期提供了不少便利,短信接口不管是web应用还是APP都必不可少.大鱼一张口,这是要生吞其他小虾米的节奏啊,四分的价格很便宜了,现在注册会送60元代金券,时间不到一个月,也就是让你免费调试,短信发送效果很好,基本能够达到承诺的三秒,一般情况两三秒,具体效果还待检验,好了,直奔主题. 第一步:注册阿里大鱼账号:http://www.alidayu.com 第二步:进入<开发者控制台>--><应用管理>中创建应用,应用标签选择"阿里大鱼&qu

短信通道——阿里大鱼(java)

综述            注:本文写于2017年6月22日升级之后. 使用阿里大鱼发送短信已经成为一种趋势,因为权威,而且价格也比较适中,被越来越多的公司所采用.在介绍阿里大鱼发送短信之前,首先得拥有阿里云的账号,这个账号可以使用支付宝账号进行登录.笔者是Java程序猿,本篇也只介绍Java的方式,其他方式参考阿里云的帮助文档. 步骤 第一步:注册阿里云账号,获取app access key 和 app access secret.点击个人头像------>管理控制台-------->个人账

阿里大鱼的使用

使用阿里大鱼的短信验证码总结 自己做的是app直接调用阿里大鱼的短信验证码  然后和本地存储的随机六位数对比,下面说下步骤: 1.首先呢,先进入阿里大鱼的开放平台 http://open.taobao.com/doc2/apiDetail?spm=0.0.0.0.D1PYJd&apiId=25450 2.然后能看到  文档中心  让我们传递的一些参数(公共参数和请求参数) 有些是必传的 在此我列出 我自己传递的一些参数 首先我们看到的是第一个参数 appkey这个是注册就有的 format是固定

阿里大鱼短信平台

首先登陆阿里大鱼短息发送平台 http://www.alidayu.com/ (阿里巴巴旗下) 登陆后点击管理中心,进入后台的管理中心,如图所示  进入管理中心后,点击短信签名管理,建立短信签名模板(审核需要一个工作日,如果等不急联系技术支持可以加急处理),签名是发信息的时候最前面展示[您申请的短信签名名称](注意申请的时候只填汉字即可不需要人为的去加黑括号)  短信模板管理里面申请你要发短信的内容,点击添加模板  等待申请好了,审核通过以后可以通过详情中查看申请的模板  此时点击应用列表中的应

asp.net C# 实现阿里大鱼和云片网短信接口类

云片网短信通用类 public class YunpianSMS { public YunpianSMS() { } /// <summary> /// 服务器HTTP地址 /// </summary> private static string BASE_URI = "http://yunpian.com"; /// <summary> /// 服务版本号 /// </summary> private static string VER