当前位置: 首页 > news >正文

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

http://www.xdnf.cn/news/947593.html

相关文章:

  • 基于matlab策略迭代和值迭代法的动态规划
  • 基于 CNN-SHAP 分析卷积神经网络的多分类预测【MATLAB】
  • Matlab | 基于matlab的图像去噪的原理及实现
  • 【MATLAB第119期】基于MATLAB的KRR多输入多输出全局敏感性分析模型运用(无目标函数,考虑代理模型)
  • (原创改进)73-CEEMDAN-VMD-SSA-LSSVM功率/风速时间序列预测!
  • Linux 文本比较与处理工具:comm、uniq、diff、patch、sort 全解析
  • Selenium4+Pytest自动化测试框架
  • 基于 Three.js 的 3D 模型快照生成方案
  • FOUPK3云服务平台主体
  • Kafka主题运维全指南:从基础配置到故障处理
  • 消息队列生产问题解决方案全攻略
  • 【C#】多级缓存与多核CPU
  • (12)-Fiddler抓包-Fiddler设置IOS手机抓包
  • Mysql8 忘记密码重置,以及问题解决
  • 数据可视化交互
  • 计算机网络自定向下:第二章复习
  • GPIO(通用输入输出)与LPUART(低功耗通用异步收发传输器)简述
  • 简繁体智能翻译软件
  • 大数据清洗加工概述
  • 【c语言】安全完整性等级
  • Vue 3 + WebSocket 实战:公司通知实时推送功能详解
  • linux cgroup内存/io/cpu/网络使用总结
  • 怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
  • Android 开发中配置 USB 配件模式(Accessory Mode) 配件过滤器的配置
  • Android屏幕刷新率与FPS(Frames Per Second) 120hz
  • MySQL中【正则表达式】用法
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
  • 今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
  • web vue 项目 Docker化部署
  • 【DVWA系列】——xss(Reflected)——Medium详细教程