搜索
博主信息
博文 53
粉丝 0
评论 0
访问量 15696
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP 短信扩展:基于 CRMEB 框架的多平台(一号通 / 阿里云 / 腾讯云 / 创蓝)实现
い独霸天下う
原创
402人浏览过

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

扩展入口文件

文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通

  1. namespace crmeb\services\sms;
  2. use crmeb\basic\BaseManager;
  3. use crmeb\services\AccessTokenServeService;
  4. use crmeb\services\sms\storage\yihaotong;
  5. use think\Container;
  6. use think\facade\Config;
  7. /**
  8. * Class Sms1
  9. * @package crmeb\services\sms
  10. * @mixin yihaotong
  11. */
  12. class Sms extends BaseManager
  13. {
  14. //...
  15. }

扩展配置文件

文件目录config/sms.php
stores 内的配置可以填写也可以留空,留空的话,需要在调取服务的时候从其他地方获取;

  1. return [
  2. //默认扩展
  3. 'default' => 'yihaotong',
  4. //单个手机每日发送上限
  5. 'maxPhoneCount' => 10,
  6. //验证码每分钟发送上线
  7. 'maxMinuteCount' => 20,
  8. //单个IP每日发送上限
  9. 'maxIpCount' => 50,
  10. //驱动模式
  11. 'stores' => [
  12. //一号通
  13. 'yihaotong' => [
  14. 'sms_account' => '',
  15. 'sms_token' => ''
  16. ],
  17. //阿里云
  18. 'aliyun' => [
  19. 'sign_name' => '',
  20. 'aliyun_AccessKeyId' => '',
  21. 'aliyun_AccessKeySecret' => '',
  22. 'aliyun_RegionId' => '',
  23. ],
  24. //腾讯云
  25. 'tencent' => [
  26. 'tencent_sms_app_id' => '',
  27. 'tencent_sms_secret_id' => '',
  28. 'tencent_sms_secret_key' => '',
  29. 'tencent_sms_sign_name' => '',
  30. 'tencent_sms_region' => '',
  31. ]
  32. ]
  33. ];

使用短信扩展

  1. use crmeb\services\sms\Sms;
  2. $sms = new Sms();
  3. $phone = '手机号';
  4. $templateId = '短信模板id';
  5. $data = [];//短信模板变量内容
  6. $res = $sms->send($phone, $templateId, $data = []);
  7. if (false === $res) {
  8. var_dump($sms=>getError());
  9. } else {
  10. //发送成功
  11. }

切换其他扩展发送

  1. use crmeb\services\sms\Sms;
  2. //使用腾讯云短信发送
  3. $sms = new Sms('tencent',[
  4. 'tencent_sms_app_id'=>'应用id',
  5. 'tencent_sms_secret_id'=>'secret_id',
  6. 'tencent_sms_secret_key'=>'secret_key',
  7. 'tencent_sms_sign_name'=>'签名',
  8. 'tencent_sms_region'=>'地域',
  9. ]);
  10. $phone = '手机号';
  11. $templateId = '短信模板id';
  12. $data = [];//短信模板变量内容
  13. $res = $sms->send($phone, $templateId, $data = []);
  14. if (false === $res) {
  15. var_dump($sms=>getError());
  16. } else {
  17. //发送成功
  18. }

使用内置服务发送

  1. use app\services\serve\ServeServices;
  2. /** @var ServeServices $serve */
  3. $serve = app()->make(ServeServices::class);
  4. //从数据库获取用户当前发送的扩展方式
  5. $type = sys_config('sms_type', null);
  6. $phone = '手机号';
  7. $templateId = '短信模板id';
  8. $data = [];//短信模板变量内容
  9. //发送短信
  10. //sms()方法内部自动从配置获取参数名,根据配置情况获取配置参数
  11. $res = $serve->sms($type)->send($phone, $templateId, $data);
  12. if (false === $res) {
  13. var_dump($sms=>getError());
  14. } else {
  15. //发送成功
  16. }

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

增加文件 crmeb\services\storage\Chuanglan.php
可以根据需求完成以下方法内的逻辑 send方法是必须要完成的

  1. namespace crmeb\services\sms\storage;
  2. use crmeb\services\sms\BaseSms;
  3. use crmeb\exceptions\AdminException;
  4. use think\facade\Config;
  5. /**
  6. * Class Chuanglan
  7. * @package crmeb\services\sms\storage
  8. */
  9. class Chuanglan extends BaseSms
  10. {
  11. //初始化
  12. protected function initialize(array $config = []){};
  13. //开通服务
  14. public function open(){};
  15. //修改签名
  16. public function modify(string $sign = null, string $phone, string $code){};
  17. //获取用户信息
  18. public function info(){};
  19. //获取短信模板
  20. public function temps(int $page = 0, int $limit = 10, int $type = 1){};
  21. //申请模版
  22. public function apply(string $title, string $content, int $type){};
  23. //申请模板记录
  24. public function applys(int $tempType, int $page, int $limit){};
  25. //f发送短信
  26. public function send(string $phone, string $templateId, array $data = []){};
  27. //发送记录
  28. public function record($record_id){};
  29. }

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

  1. use crmeb\services\sms\Sms;
  2. //使用创蓝驱动
  3. $sms = new Sms('chuanglan');
  4. $phone = '手机号';
  5. $templateId = '短信模板id';
  6. $data = [];//短信模板变量内容
  7. $res = $sms->send($phone, $templateId, $data = []);
  8. if (false === $res) {
  9. var_dump($sms=>getError());
  10. } else {
  11. //发送成功
  12. }

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

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学