如何使用php发送短信验证码

时光怂恿深爱的人放手 提交于 2019-12-09 09:54:19

修改密码是经常会被要求发送短信验证码,那到底是怎么做到的呢?

利用第三方平台提供的短信服务可以做到,这里以云之讯为例子讲解(因为云之讯可以免费发送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,以上只是负责把验证码发送到手机上,你还得把你设置的随机验证码变量存储到数据库,然后和用户输入的验证码进行对比,判断正误;

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!