修改密码是经常会被要求发送短信验证码,那到底是怎么做到的呢?
利用第三方平台提供的短信服务可以做到,这里以云之讯为例子讲解(因为云之讯可以免费发送10条短信,并且,如果用阿里云短信服务,你申请短信签名需要被公司授权;云之讯不需要授权,直接在模板里修改就行;虽然表面上它说是送180条,但是当你发满10条,再次发送会返回错误码10005:你的ip不在白名单,云之讯甚至因为你操作过于频繁将你的服务器ip加入黑名单!但是利用它测试一下还是可以的,注意珍惜10条短信)
步骤:
1,首先注册云之讯,账户自动送10元,用于当短信费;
2,点击账户中心,进入产品;在右下角有API接口对接;
3,点击SDK下载,如果你是用php开发就点击php右边的下载按钮;下载完毕文档如下:
箭头指向的两个文件需要进行修改,lib文件不需要修改,具体的修改内容在(请先读我(重要).doc)里;
配置smsyzm.php文件下的2个变量
$appId:应用的ID,可在开发者控制台内的“验证通知短信”产品下查看
$templateId:认证通过的短信模板的ID
配置serverSid.php内的
$options['accountsid']:填写在开发者控制台首页上的Account Sid
$options['token']:填写在开发者控制台首页上的Auth Token
4,进入控制台,点击左侧菜单栏的短信,在弹出的菜单栏点击模板库,创建模板:
短信签名比如:江苏科技;
其中{1}和{2}都是在php中将会传进来的参数,不能随意设置,只能在花括号中加入数字来表示变量;步骤7会用到它;
4,下面写html表单页面:
<form id="myForm" method="post" name="f">
<table>
请输入账号:<input type="text" name="account">
手机号:
<input type="text" name="yzmtel" size="20" style="margin-right:0px">
<input type="submit" οnclick="javascript:document.f.action='smsyzm.php';document.f.submit();" value="获取验证码" />
输入验证码:
<input type="text" name="yzm" size="20" style="margin-right:0px" >
<input type="button" value="提交" οnclick="javascript:document.f.action='repwd.php';document.f.submit();">
</table>
</form>:
5,下面是smsyzm.php页面修改过的例子:(当点击获取验证码时)
require_once('lib/Ucpaas.class.php');
require_once('serverSid.php');
$appid = "af72024c37bb4a95b42e4ff075af0f21"; //
$templateid = "383694"; //
$param = $_POST['yzm']; //你输入的验证码
$mobile = $_POST['yzmtel']; //获取你的电话号码
$uid = "";
echo $ucpass->SendSms($appid,$templateid,$param,$mobile,$uid);
6,下面是serversid.php页面修改好的例子:(当
<?php
require_once('lib/Ucpaas.class.php');
$options['accountsid']='bda589bb2a***a0e6d886f2015091';
$options['token']='8ec06c653*****19f0a0c9180e6361';
$ucpass = new Ucpaas($options);
?>
7, 下面是lib中的ucpaas.class.php需要修改的地方:
如果用的notepad++,打开后在第106行进行修改,如图
黄色箭头代表的是模板中的两个参数,初始化是没有参数的,所以在传递的时候它被赋予null,根据你实际创建的模板的参数个数,你可以相应改变:比如我的模板参数有两个,那么设置就是 ‘param'=>("$randme,100"),其中$randme是自己自定义的随机验证码,$randme=rand(10000,99999);
8,以上只是负责把验证码发送到手机上,你还得把你设置的随机验证码变量存储到数据库,然后和用户输入的验证码进行对比,判断正误;
来源:CSDN
作者:kalinux
链接:https://blog.csdn.net/kalinux/article/details/83013636