6,PHP登陆验证码
2016-11-29 本文已影响223人
陈钢镚学财
前言
现在不论是APP应用还是WEB应用,手机验证码的使用越来越普遍。那么,今天就说说实现这个功能的整个流程。
工具
- 运载平台 (LNMP,LAMP,WAMP,WNMP任选其一)
- 阿里大于(短信签名,短信模板需要审核,另外需要记下appkey和secret,短信平台有很多,比如说百度的APIstore就整理了很多服务商)
流程
- 发送
- 验证
实现
- 创建表结构
CREATE TABLE `sms` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`mobile` varchar(50) NOT NULL DEFAULT '' COMMENT '手机号码',
`code` varchar(50) NOT NULL DEFAULT '' COMMENT '验证码',
`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '发送时间,用于控制时间限制',
`type` tinyint(2) NOT NULL DEFAULT '0' COMMENT '短息类型 登录/注册',
`ip` char(30) NOT NULL DEFAULT '' COMMENT '发送IP',
`validity` int(11) NOT NULL DEFAULT '0' COMMENT '有效期',
PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COMMENT='短信记录表';
- 实现与阿里大于的通讯(记得导入阿里大于提供的SDK)
如下是格式,详情可参考阿里大于开发文档
$c = new TopClient;
$c ->appkey = $appkey ;
$c ->secretKey = $secret ;
$req = new AlibabaAliqinFcSmsNumSendRequest;
$req ->setExtend( "" );
$req ->setSmsType( "normal" );
$req ->setSmsFreeSignName( "" );
$req ->setSmsParam( "" );
$req ->setRecNum( "13000000000" );
$req ->setSmsTemplateCode( "" );
$resp = $c ->execute( $req );
- 实现验证码入库与验证(这个根据自己的逻辑来,这里就不贴代码了)
结语
有完善的文档,开发起来事半功倍。