ThinkPHP

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

2018-10-06  本文已影响79人  kzj1994

在现在这个短信通知泛滥的年代,干啥都要短信验证码,短信验证码平台也是各种各样,参差不齐的。也不知道哪个好,哪个赖。刚开始的事后就入了几个坑,这里推荐用云之讯的吧,速度还不错,延迟没有,还送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中

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

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即可。

下载地址

上一篇下一篇

猜你喜欢

热点阅读