天天看點

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

下載下傳位址