目前已有一號通短信、阿里云短信、騰訊云短信擴展
擴展入口文件
文件目錄 crmeb\services\sms\Sms.php 默認驅動類型為:一號通
namespace crmeb\services\sms;
use crmeb\basic\BaseManager;
use crmeb\services\AccessTokenServeService;
use crmeb\services\sms\storage\yihaotong;
use think\Container;
use think\facade\Config;
/**
* Class Sms1
* @package crmeb\services\sms
* @mixin yihaotong
*/
class Sms extends BaseManager
{
//...
}
擴展配置文件
文件目錄config/sms.php
stores 內的配置可以填寫也可以留空,留空的話,需要在調取服務的時候從其他地方獲?。?/p>
return [
//默認擴展
'default' => 'yihaotong',
//單個手機每日發(fā)送上限
'maxPhoneCount' => 10,
//驗證碼每分鐘發(fā)送上線
'maxMinuteCount' => 20,
//單個IP每日發(fā)送上限
'maxIpCount' => 50,
//驅動模式
'stores' => [
//一號通
'yihaotong' => [
'sms_account' => '',
'sms_token' => ''
],
//阿里云
'aliyun' => [
'sign_name' => '',
'aliyun_AccessKeyId' => '',
'aliyun_AccessKeySecret' => '',
'aliyun_RegionId' => '',
],
//騰訊云
'tencent' => [
'tencent_sms_app_id' => '',
'tencent_sms_secret_id' => '',
'tencent_sms_secret_key' => '',
'tencent_sms_sign_name' => '',
'tencent_sms_region' => '',
]
]
];
使用短信擴展
use crmeb\services\sms\Sms;
$sms = new Sms();
$phone = '手機號';
$templateId = '短信模板id';
$data = [];//短信模板變量內容
$res = $sms->send($phone, $templateId, $data = []);
if (false === $res) {
var_dump($sms=>getError());
} else {
//發(fā)送成功
}
切換其他擴展發(fā)送
use crmeb\services\sms\Sms;
//使用騰訊云短信發(fā)送
$sms = new Sms('tencent',[
'tencent_sms_app_id'=>'應用id',
'tencent_sms_secret_id'=>'secret_id',
'tencent_sms_secret_key'=>'secret_key',
'tencent_sms_sign_name'=>'簽名',
'tencent_sms_region'=>'地域',
]);
$phone = '手機號';
$templateId = '短信模板id';
$data = [];//短信模板變量內容
$res = $sms->send($phone, $templateId, $data = []);
if (false === $res) {
var_dump($sms=>getError());
} else {
//發(fā)送成功
}
使用內置服務發(fā)送
use app\services\serve\ServeServices;
/** @var ServeServices $serve */
$serve = app()->make(ServeServices::class);
//從數據庫獲取用戶當前發(fā)送的擴展方式
$type = sys_config('sms_type', null);
$phone = '手機號';
$templateId = '短信模板id';
$data = [];//短信模板變量內容
//發(fā)送短信
//sms()方法內部自動從配置獲取參數名,根據配置情況獲取配置參數
$res = $serve->sms($type)->send($phone, $templateId, $data);
if (false === $res) {
var_dump($sms=>getError());
} else {
//發(fā)送成功
}
舉例增加:創(chuàng)藍短信發(fā)送擴展
增加文件 crmeb\services\storage\Chuanglan.php
可以根據需求完成以下方法內的邏輯 send
方法是必須要完成的
namespace crmeb\services\sms\storage;
use crmeb\services\sms\BaseSms;
use crmeb\exceptions\AdminException;
use think\facade\Config;
/**
* Class Chuanglan
* @package crmeb\services\sms\storage
*/
class Chuanglan extends BaseSms
{
//初始化
protected function initialize(array $config = []){};
//開通服務
public function open(){};
//修改簽名
public function modify(string $sign = null, string $phone, string $code){};
//獲取用戶信息
public function info(){};
//獲取短信模板
public function temps(int $page = 0, int $limit = 10, int $type = 1){};
//申請模版
public function apply(string $title, string $content, int $type){};
//申請模板記錄
public function applys(int $tempType, int $page, int $limit){};
//f發(fā)送短信
public function send(string $phone, string $templateId, array $data = []){};
//發(fā)送記錄
public function record($record_id){};
}
使用創(chuàng)藍短信擴展發(fā)送短信
use crmeb\services\sms\Sms;
//使用創(chuàng)藍驅動
$sms = new Sms('chuanglan');
$phone = '手機號';
$templateId = '短信模板id';
$data = [];//短信模板變量內容
$res = $sms->send($phone, $templateId, $data = []);
if (false === $res) {
var_dump($sms=>getError());
} else {
//發(fā)送成功
}
商城后臺/設置/接口設置/短信接口配置/阿里云短信配置 將對應的數據配置上即可