使用腾讯云发送短信
创建一个config/easysms.php
文件
<?php
return [
// HTTP 请求的超时时间(秒)
'timeout' => 5.0,
// 默认发送配置
'default' => [
// 网关调用策略,默认:顺序调用
'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
// 默认可用的发送网关
'gateways' => [
'qcloud',
],
],
// 可用的网关配置
'gateways' => [
'errorlog' => [
'file' => __DIR__.'/../storage/logs/easy-sms.log',
],
'qcloud' => [
'sdk_app_id' => env('QCLOUD_APP_ID' , ''), // SDK APP ID
'app_key' => env('QCLOUD_APP_KEY' , ''), // APP KEY
'sign_name' => env('QCLOUD_SIGN_NAME' , ''), // 对应的是短信签名中的内容(非id)
],
],
];
类
use Carbon\Carbon;
use Qcloud\Sms\SmsSingleSender;
use Overtrue\EasySms\EasySms;
/**
* Class SendSmsService 发送短信接口
* @package App\Services
*/
class SendSmsService
{
/**
* 腾讯云自带sdk
* @param $phoneNumbers static 电话号码
* @param $code string 验证码
* @return bool true为发送成功
*/
public function qcloud($phoneNumbers,$code)
{
$smsSign = config('easysms.gateways.sign_name');
$templateId = 205650;
try {
$ssender = new SmsSingleSender(config('easysms.gateways.qcloud.sdk_app_id'), config('easysms.gateways.qcloud.app_key'));
$params = [$code]; // 验证码
$result = $ssender->sendWithParam("86", $phoneNumbers[0], $templateId, // 86 - 国家电话代码 , 电话号码,短信正文模板id,验证码,短信签名,默认为空,默认为空
$params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
$result = json_decode($result,true); // 这里会返回一个发送短信的结果
if( $result['errmsg'] == 'OK' ) {
return true;
}
} catch(\Exception $e) {
$error = [
'msg' => $e,
'phone' => $phoneNumbers,
'time' => Carbon::now()
];
\Log::error('发送失败' . json_encode($error));
}
return false;
}
/**
* easysms - sdk发送
* @param $phoneNumbers static 电话号码
* @param $code string 验证码
* @return bool true为发送成功
*/
public function easysms($phoneNumbers,$code)
{
$config = config('easysms');
$easySms = new EasySms($config);
try{
$result = $easySms->send($phoneNumbers, [
'template' => '205650',
'data' => [
'code' => $code
],
]); // 这里会返回一个发送短信的结果
if( $result['qcloud']['result']['errmsg'] == 'OK' ) {
return true;
}
}catch (\Overtrue\EasySms\Exceptions\NoGatewayAvailableException $exception){
$error = [
'msg' => $exception->getException(),
'phone' => $phoneNumbers,
'time' => Carbon::now()
];
\Log::error('发送失败' . json_encode($error));
}
return false;
}
}
推荐文章: