CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展

<>扩展入口文件

文件目录 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 内的配置可以填写也可以留空,留空的话,需要在调取服务的时候从其他地方获取;

复制代码
return [
    //默认扩展
    'default' => 'yihaotong',
    //单个手机每日发送上限
    'maxPhoneCount' => 10,
    //验证码每分钟发送上线
    'maxMinuteCount' => 20,
    //单个IP每日发送上限
    '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 {
    //发送成功
}

<>切换其他扩展发送

复制代码
use crmeb\services\sms\Sms;

//使用腾讯云短信发送
$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 {
    //发送成功
}

<>使用内置服务发送

复制代码
use app\services\serve\ServeServices;

/** @var ServeServices  $serve */
$serve = app()->make(ServeServices::class);

//从数据库获取用户当前发送的扩展方式
$type = sys_config('sms_type', null);

$phone = '手机号';
$templateId = '短信模板id';
$data  = [];//短信模板变量内容

//发送短信
//sms()方法内部自动从配置获取参数名,根据配置情况获取配置参数
$res = $serve->sms($type)->send($phone, $templateId, $data);

if (false === $res) {
    var_dump($sms=>getError());
} else {
    //发送成功
}

<>举例增加:创蓝短信发送扩展

增加文件 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发送短信
    public function send(string $phone, string $templateId, array $data = []){};

    //发送记录
    public function record($record_id){};

}

<>使用创蓝短信扩展发送短信

复制代码
use crmeb\services\sms\Sms;

//使用创蓝驱动
$sms = new Sms('chuanglan');

$phone = '手机号';
$templateId = '短信模板id';
$data  = [];//短信模板变量内容

$res = $sms->send($phone, $templateId, $data = []);

if (false === $res) {
    var_dump($sms=>getError());
} else {
    //发送成功
}

附件:https://gitee.com/ZhongBangKeJi/CRMEB

相关推荐
星辰烈龙12 小时前
黑马程序员JavaSE基础加强d5
服务器·网络·php
No0d1es12 小时前
2025年12月 GESP CCF编程能力等级认证Python三级真题
开发语言·php
哥只是传说中的小白13 小时前
Nano Banana Pro高并发接入Grsai Api实战!0.09/张无限批量生成(附接入实战+开源工具)
开发语言·数据库·ai作画·开源·aigc·php·api
亚历山大海14 小时前
PHP HTML 实体(HTML Entities)没有被正确解码导致< 和 δ 等字符被转换
开发语言·html·php
咕噜企业分发小米14 小时前
阿里云AI教育产品如何助力企业提升客户转化率?
人工智能·阿里云·云计算
weisian15118 小时前
入门篇--知名企业-20-阿里巴巴-8--阿里云PAI:AI开发的“全自动装配线”
人工智能·阿里云·云计算·pai
chao_66666618 小时前
【MCP】Claude Code for VS Code 配置阿里云 MCP 工具教程
阿里云·云计算·claude·mcp
二等饼干~za89866818 小时前
碰一碰发视频系统源码搭建部署技术分享
服务器·开发语言·php·音视频·ai-native
. . . . .18 小时前
WordPress开发到部署
php
成为你的宁宁18 小时前
【Zabbix 自定义监控全流程实战指南(附图文教程):从语法基础到内存传参、PHP-FPM 服务、Web 场景监控配置】
php·zabbix