天天看点

ThinkPHP5 实现短信验证码注册功能

在现在这个短信通知泛滥的年代,短信验证码成了不可或缺,与此同时,短信验证码的平台也是各种各样。这样一来,平台好坏就无从区分。这里推荐用云之讯的吧,速度还不错,延迟没有,还送10块钱(100多条吧,测试够用了)。基本概念就不说了,下面直接进入正题吧。

1.注册。

2.进入到:开发者控制台->短信->产品总览,记录下右下角的api接口中的AppID,Account Sid,Auth Token

再去 模板库 记录下要使用的 模板id,以备后续使用。这些都是必须要有。

3.把AppID,Account Sid,Auth Token,模板id 填到配置项/application/extra/sms.php 中

<?php
return [
    'sms_appid' => 'xxxxxxxxxxx',// 应用id
    'sms_accountsid' => 'xxxxxxxxxxx',// 填写在开发者控制台首页上的Account Sid
    'sms_authtoken' => 'xxxxxxxxxxx', // 填写在开发者控制台首页上的Auth Token
    'sms_templateid' => 'xxxxxxxxxxx',// 模板id
];
           

4.下载 phpsdk,

在/extend目录下新建一个“sms”文件夹,把下载的sdk解压到/extend/sms中

ThinkPHP5 实现短信验证码注册功能

5.修改里面的文件代码,在/extend/sms/lib/Ucpass.class.php里加上命名空间并重命名为Ucpass.php.

ThinkPHP5 实现短信验证码注册功能

6.在/extend/sms目录新建一个类文件Send.php

将serverSid.php和smsyzm.php中的代码合并到Send.php文件中:(当然你懒得弄也就无所谓了,记得把前面提到的id和token修改好就行了。)

<?php
/**
 * User: Xunm
 * Date: 2018/10/5
 * Time: 17:40
 */
namespace sms;

use sms\lib\Ucpaas;

class Send
{
    public static function SendSms($pin, $phone)
    {
       //填写在开发者控制台首页上的Account Sid
        $options['accountsid'] =  config('sms.sms_accountsid');

        //填写在开发者控制台首页上的Auth Token
        $options['token'] = config('sms.sms_authtoken');

        //初始化 $options必填
        $appid = config('sms.sms_appid');    //应用的ID,可在开发者控制台内的短信产品下查看
        $templateid = config('sms.sms_templateid');    //可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID

        //以下是发送验证码的信息
        $param = $pin; //验证码 多个参数使用英文逗号隔开(如:param=“a,b,c”),如为参数则留空
        $mobile = $phone; // 手机号
        $uid =  config('sms.sms_uid');
        $ucpass = new Ucpaas($options);
        $result = $ucpass->SendSms($appid, $templateid, $param, $mobile, $uid);
        
        return $result;
    }
}
           

7.在需要的控制器中

use sms\Send
           

调用SendSms(‘验证码’,‘手机号’)函数并传入验证码及手机号即可。

也可以直接去github下载修改完的,clone下后直接放在/extend即可。

下载地址