当前位置: 首页 > 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

相关文章:

  • 初版BL程序一些细节整理(碎碎念)
  • Rust 学习笔记:关于共享状态并发的练习题
  • UNECE R152——解读自动驾驶相关标准法规(AEB)
  • 【向量库】Weaviate概述与架构解析
  • 0day同步!昇思MindSpore框架成功适配面壁MiniCPM4.0模型并上线魔乐社区
  • 树莓派4B, ubuntu20.04, 安装Ros Noetic[踩坑记录]
  • 云原生K8s+Docker+KubeSphere+DevOps
  • K8S认证|CKS题库+答案| 10. Trivy 扫描镜像安全漏洞
  • 数据可视化交互
  • go 里面的指针
  • 盲盒一番赏小程序:引领盲盒新潮流
  • Appuploader:在WindowsLinux上完成iOS APP上架的一种解决方案
  • LeetCode 高频 SQL 50 题(基础版)之 【高级字符串函数 / 正则表达式 / 子句】· 下
  • 手机平板能效生态设计指令EU 2023/1670标准解读
  • 打开网页即可远程控制手机,Linux系统亦可使用
  • 2025盘古石杯决赛【手机取证】
  • Polarr:手机修图,专业与创意并存
  • 从物理机到云原生:全面解析计算虚拟化技术的演进与应用
  • 打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
  • 什么是TRS收益互换?金融创新架构下的交易系统开发与实践
  • 为什么自己做不出一个好网站/关键词排名seo
  • 建站平台塔山双喜/最好的免费信息发布平台
  • 更改wordpress菜单字体/seo优化关键词排名
  • 小语种服务网站/网站自动推广软件免费
  • 微网站的案例/百度投流
  • 安庆网站建设专业制/长沙百度seo代理