PHP code example of toplan / laravel-sms

1. Go to this page and download the library: Download toplan/laravel-sms library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

toplan / laravel-sms example snippets


Toplan\PhpSms\PhpSmsServiceProvider::class,
Toplan\Sms\SmsManagerServiceProvider::class,

'PhpSms' => Toplan\PhpSms\Facades\Sms::class,
'SmsManager' => Toplan\Sms\Facades\SmsManager::class,

php artisan vendor:publish --provider="Toplan\PhpSms\PhpSmsServiceProvider"
php artisan vendor:publish --provider="Toplan\Sms\SmsManagerServiceProvider"

'scheme' => [
    //被使用概率为2/3
    'Luosimao' => '20',

    //被使用概率为1/3,且为备用代理器
    'YunPian' => '10 backup',

    //仅为备用代理器
    'YunTongXun' => '0 backup',
];

'validation' => [
    //内置的mobile参数的验证配置
    'mobile' => [
        'isMobile'    => true,
        'enable'      => true,
        'default'     => 'mobile_captcha' => [
        'enable' => true,
    ],
],

'content' => function ($code, $minutes, $input) {
    return '【signature】您的验证码是' . $code . ',有效期为' . $minutes . '分钟,请尽快验证。';
}

'templates' => [
    'YunTongXun' => '短信模版id',
    'Alidayu'    => ['短信模版id', '语音模版id'],
]

'data' => [
    'code' => function ($code) {
        return $code;
    },
    ...
],

php artisan migrate

'dbLogs' => true,

$enable = PhpSms::queue(); //true of false

//开启队列:
PhpSms::queue(true);

//关闭队列:
PhpSms::queue(false);

php artisan queue:listen

//example:
PhpSms::queue(function($sms, $data){
    //假设如此推入队列:
    $this->dispatch(new YourQueueJobClass($sms));
});

//example:
'middleware' => ['api'],

use SmsManager;

$result = SmsManager::validateSendable();

//使用内置的验证逻辑
$result = SmsManager::validateFields();

//自定义验证逻辑
$result = SmsManager::validateFields(function ($fields, $rules) {
    //在这里做你的验证处理,并返回结果...
    //如:
    return Validator::make($fields, $rules);
});

$result = SmsManager::requestVerifySms();

$result = SmsManager::requestVoiceVerify();

//example:
$state = SmsManager::state();

$state = SmsManager::retrieveState();

SmsManager::updateState('key', 'value');
SmsManager::updateState([
    'key' => 'value'
]);

SmsManager::forgetState();

//方式1:
//如果不设置name,那么name默认为当前访问路径的path部分
SmsManager::storeRule('mobile', '');

//方式3
SmsManager::storeRule('mobile', [
    'myRuleName' => '

$rule = SmsManager::retrieveRule('mobile', 'myRuleName');

$rules = SmsManager::retrieveRules('mobile');

SmsManager::forgetRule('mobile', 'myRuleName');

SmsManager::forgetRules('mobile');

$mobileRuleName = SmsManager::input('mobile_rule');
$all = SmsManager::input();

SmsManager::closure(function () {
    //do someting...
});
javascript
$('#sendVerifySmsButton').sms({
    //laravel csrf token
    //该token仅为laravel框架的csrf验证,不是access_token!
    token       : "{{csrf_token()}}",

    //请求时间间隔
    interval    : 60,

    //语音验证码
    voice       : false,

    //请求参数
    requestData : {
        //手机号
        mobile: function () {
            return $('input[name=mobile]').val();
        },
        //手机号的检测规则
        mobile_rule: 'mobile_