Appearance
概述
系统短信通知模块默认基于 EBAOZU 自研一号通(app/services/third/)实现。同时支持通过驱动扩展机制接入第三方短信服务商(如阿里云、腾讯云、创蓝等)。
IMPORTANT
重要区分:本系统默认短信服务为 EBAOZU 自研一号通(平台地址 https://admin.ebaozu.cn,配置环境变量 PLAT_KEY,基类 ThirdBaseService)。请勿使用已废弃的 CRMEB 原始一号通。
基础使用方式
发送短信
php
use crmeb\services\sms\Sms;
$sms = new Sms();
$phone = '13800138000';
$templateId = 'VERIFY_CODE';
$data = ['code' => '123456'];
$res = $sms->send($phone, $templateId, $data);
if (false === $res) {
// 发送失败处理
$error = $sms->getError();
} else {
// 发送成功
}扩展第三方短信驱动
若需接入其他第三方短信平台,只需按照系统驱动规范实现 BaseSms 抽象类:
创建驱动类
在 crmeb/services/sms/storage/ 目录下创建驱动类(例如 Chuanglan.php):
php
namespace crmeb\services\sms\storage;
use crmeb\services\sms\BaseSms;
class Chuanglan extends BaseSms
{
// 初始化配置
protected function initialize(array $config = [])
{
parent::initialize($config);
}
// 发送短信(核心方法)
public function send(string $phone, string $templateId, array $data = [])
{
// 编写调用第三方短信 API 的具体逻辑
// ...
return true;
}
// 获取短信余量/信息
public function info()
{
// ...
}
// 获取短信模板列表
public function temps(int $page = 0, int $limit = 10, int $type = 1)
{
// ...
}
}配置文件注册驱动
在 config/sms.php 中添加对应驱动的连接配置:
php
return [
'default' => 'yihaotong',
'stores' => [
'yihaotong' => [
// 自研一号通配置
],
'chuanglan' => [
'account' => env('SMS_CHUANGLAN_ACCOUNT', ''),
'password' => env('SMS_CHUANGLAN_PASSWORD', ''),
],
],
];使用指定驱动发送
php
use crmeb\services\sms\Sms;
// 指定使用创蓝驱动
$sms = new Sms('chuanglan');
$res = $sms->send('13800138000', '1001', ['code' => '8888']);