短信接口以云片网的接口为例,默认已申请到云片网的相关信息,并且已配置好对应信息,在 .env
中配置 YUNPIAN_API_KEY
,注意下面需要替换为你自己的 key
:
# 云片
YUNPIAN_API_KEY=9c60bdd**********
1、安装:
composer require "overtrue/easy-sms"
2、由于该组件还没有 Laravel 的 ServiceProvider,我们可以自己封装一下。
首先在 config 目录中增加 easysms.php 文件,
touch config/easysms.php
3、config/easysms.php添加内容
<?php
return [
// HTTP 请求的超时时间(秒)
'timeout' => 5.0,
// 默认发送配置
'default' => [
// 网关调用策略,默认:顺序调用
'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
// 默认可用的发送网关
'gateways' => [
'yunpian',
],
],
// 可用的网关配置
'gateways' => [
'errorlog' => [
'file' => '/tmp/easy-sms.log',
],
'yunpian' => [
'api_key' => env('YUNPIAN_API_KEY'),
],
],
];
4、然后创建一个 ServiceProvider
php artisan make:provider EasySmsServiceProvider
修改文件 app/providers/EasySmsServiceProvider.php
<?php
namespace App\Providers;
use Overtrue\EasySms\EasySms;
use Illuminate\Support\ServiceProvider;
class EasySmsServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(EasySms::class, function ($app) {
return new EasySms(config('easysms'));
});
$this->app->alias(EasySms::class, 'easysms');
}
}
5、最后 打开config/app.php
在 providers
中增加 App\Providers\EasySmsServiceProvider::class,
6、调用
$sms = app('easysms');
try {
$sms->send(18888888888, [
'content' => '【Yietion】您的验证码是1234。如非本人操作,请忽略本短信',
]);
} catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception) {
$message = $exception->getException('yunpian')->getMessage();
dd($message);
}
*注释:18888888888
替换为你自己的手机