thinkphp6使用阿里云SDK发送短信

news2024/11/28 13:53:56

使用composer安装sdk
在这里插入图片描述

   "alibabacloud/dysmsapi-20170525": "2.0.24"

封装发送短信类
发送到的短信参数写在env文件里面的
在这里插入图片描述
在这里插入图片描述

#发送短信配置
[AliyunSms]
AccessKeyId = ""
AccessKeySecret =""
signName=""
templateCode=""
<?php


namespace app\api\service;







use AlibabaCloud\Credentials\Credential\Config;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use Exception;
use think\facade\Env;

class AliSms
{


    /**
     * 发送短信验证码
     *
     * @param string $phoneNumber 手机号码
     * @param string $code 验证码
     * @return bool 发送成功返回true,否则返回false
     */
    public static function  sendSmsCode($phoneNumber, $code):array
    {
        // 阿里云控制台中获取的AccessKey信息
        $accessKeyId = Env::get("AliyunSms.AccessKeyId");
        $accessSecret = Env::get("AliyunSms.AccessKeySecret");

// 短信模板CODE,根据自己的模板填写
        $templateCode = Env::get("AliyunSms.templateCode");

// 短信签名,根据自己的签名填写
        $signName = Env::get("AliyunSms.signName");
        try {
            $config = new Config([
                // 必填,您的 AccessKey ID
                "accessKeyId" => $accessKeyId,
                // 必填,您的 AccessKey Secret
                "accessKeySecret" => $accessSecret
            ]);
            // 访问的域名
            $config->endpoint = "dysmsapi.aliyuncs.com";
            $client = new Dysmsapi($config);

            $sendSmsRequest = new SendSmsRequest([
                "phoneNumbers" => $phoneNumber,
                "signName" => $signName,
                "templateCode" => $templateCode,
                "templateParam" => json_encode(array('code' => $code))
            ]);
            $runtime = new RuntimeOptions([]);


            // 复制代码运行请自行打印 API 的返回值
            $result = $client->sendSmsWithOptions($sendSmsRequest, $runtime);


            if ($result->statusCode == 200) {
                return ["code" => 1, "msg" => "短信发送成功"];
            } else {
                // 短信发送失败
                return ["code" => -1, "msg" => "发送失败"];
            }
        } catch (Exception $error) {
            if (!($error instanceof TeaError)) {
                $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
            }
            // 如有需要,请打印 error

            return ["code" => -1, "msg" =>    Utils::assertAsString($error->message)];

        }


    }

}

调用方法

  $code = rand(1000, 9999);
  $res = AliSms::sendSmsCode($phone, $code);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1577754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

泛微OA 自定义多选浏览框

1、建模引擎-》应用建模-》表单 2、建模引擎-》应用建模-》模块 3、建模引擎-》应用建模-》查询 4、把查询页面挂到前端页面。 效果展示&#xff1a; 5、建模引擎-》应用建模-》浏览框 6、流程表单中字段应用

Java环境变量配置说明

1、右键点击“此电脑”&#xff0c;选择“属性”项。 2、点击“高级系统设置”&#xff0c;在弹出的系统属性框中&#xff0c;选择“高级”选项卡&#xff08;默认即显示该选项卡&#xff09;&#xff0c;点击“环境变量”。 3、在弹出的“环境变量”框&#xff0c;中选择下方…

武汉凯迪正大—红外SF6检漏仪

产品概述 KDWG-III高精度SF6气体检漏仪&#xff08;手持式&#xff09;是测量SF6气体泄漏的新产品&#xff0c;采用进口传感器&#xff0c;它具有灵敏度高、稳定性好、响应速度快、操作简便、移动范围大&#xff0c;可迅速、准确的定性和定量检测SF6断路器和GIS的泄漏点及年泄…

如何利用Anaconda管理ArcGISPro相关环境

1.查看 目标下载scikit-learn以及scikit-image&#xff0c;以下是在ArcGISPro中查询库的结果 我们发现原始环境中不存在这两个库 2.修改 向Anaconda的Channels中添加esri的channel&#xff0c;点击add...直接输入esri即可 3.下载 接下来就可以直接下载自己需要的库了

说说对WebSocket的理解?应用场景?

一、是什么 WebSocket&#xff0c;是一种网络传输协议&#xff0c;位于OSI模型的应用层。可在单个TCP连接上进行全双工通信&#xff0c;能更好的节省服务器资源和带宽并达到实时通迅 客户端和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c…

2024通信技术与航空航天工程国际会议(ICCTAE2024)

2024通信技术与航空航天工程国际会议(ICCTAE2024) 会议简介 通信技术和航空航天领域有着密切的关联和深远的意义。 随着通信技术和航空航天工程的快速发展&#xff0c;这两个领域的交叉融合为学术界和工业界提供了广阔的研究空间和实际应用前景。为了进一步推动相关领域的发…

手把手教你免费领取雨云游戏云服务器

随着云计算技术的快速发展&#xff0c;云服务器已经成为许多开发者和创业者的首选。雨云游戏云服务器作为一款专为游戏开发者打造的高性能、低成本的云服务&#xff0c;吸引了越来越多的用户&#xff0c;本文将手把手教你如何免费领取雨云游戏云服务器。 1、访问雨云官网并注册…

SpringBoot快速入门笔记(5)

文章目录 一、elemetnUI1、main.js2、App.vue3、fontAwesome 一、elemetnUI 开源前端框架&#xff0c;安装 npm i element-ui -S 建议查看官方文档 Element组件&#xff0c;这里是Vue2搭配elementUI&#xff0c;如果是vue3就搭配elementPlus&#xff0c;这里初学就以Vue2为例子…

【JavaWeb】Day32.SpringBootWeb请求响应——分层解耦(二)

3.IOC&DI 3.1 IOC&DI入门 完成Controller层、Service层、Dao层的代码解耦 思路&#xff1a; 1. 删除Controller层、Service层中new对象的代码 2. Service层及Dao层的实现类&#xff0c;交给IOC容器管理 3. 为Controller及Service注入运行时依赖的对象 Controller程序…

健身房如何通过软文获客?媒介盒子告诉你

如今全民健康意识上升&#xff0c;大家越来越重视运动带给人的获得感以及成就感&#xff0c;对于健身房来说&#xff0c;适当进行推广&#xff0c;不仅可以提高品牌知名度&#xff0c;还能吸引更多的潜在客户。今天媒介盒子就从专业角度和大家聊聊&#xff1a;健身房如何通过软…

手机软件何时统一--桥接模式

1.1 凭什么你的游戏我不能玩 2007年苹果手机尚未出世&#xff0c;机操作系统多种多样&#xff08;黑莓、塞班、Tizen等&#xff09;&#xff0c;互相封闭。而如今&#xff0c;存世的手机操作系统只剩下苹果OS和安卓&#xff0c;鸿蒙正在稳步进场。 1.2 紧耦合的程序演化 手机…

Social Skill Training with Large Language Models

Social Skill Training with Large Language Models 关键字&#xff1a;社交技能训练、大型语言模型、人工智能伙伴、人工智能导师、跨学科创新 摘要 本文探讨了如何利用大型语言模型&#xff08;LLMs&#xff09;进行社交技能训练。社交技能如冲突解决对于有效沟通和在工作和…

九泰智库 | 医械周刊- Vol.20

⚖️ 法规动态 国家药监局发布进一步加强医疗器械注册人委托生产监督管理的公告 4月3日&#xff0c;为全面落实医疗器械注册人质量安全主体责任&#xff0c;进一步加强注册人委托生产监督管理&#xff0c;有效防控医疗器械质量安全风险。国家药监局发布关于进一步加强医疗器械…

03-JAVA设计模式-适配器模式

适配器模式 设么是适配器模式 它属于结构型模式&#xff0c;主要用于将一个类的接口转换成客户端所期望的另一种接口&#xff0c;从而使得原本由于接口不兼容而无法协同工作的类能够一起工作。 适配器模式主要解决的是不兼容接口的问题。在软件开发中&#xff0c;经常会有这…

【JavaEE框架】spring之配置数据源和JdbcTemplate

目录 一、数据准备 1、在pom.xml种导入依赖包 2、 建立数据库表 二、测试数据源&#xff08;操作数据库&#xff09; 三、在spring中使用数据源 四、增删改查操作数据库 五、测试 六、部分代码具体分析 一、数据准备 1、在pom.xml种导入依赖包 <dependency><g…

Java设计模式:外观模式之优雅门面(九)

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 在软件工程中&#xff0c;设计模式是解决常见设计问题的经验总结&#xff0c;它为开发者提供了一种通用的、可复用的解决方案。外…

同样是测痛仪有什么不一样?大小鼠足底光热刺痛仪VS大小鼠鼠尾测痛仪

简单介绍&#xff1a; ZL-024E大小鼠足底光热刺痛仪是应用在痛觉生理学、药理学等痛觉研究的仪器。可自动测定大/小鼠在自由状态下足底光热刺激痛阈时间&#xff0c;操作简便&#xff0c;并且可自动得出测定结果&#xff0c;是用于药理实验中研究镇痛**的理想实验仪器。 详情…

编程网站推荐

这里是我的一些喜欢用的编程可以用到的网站 json在线格式化校验工具 随机密码生成

关于近期上架过包的一些总结分享

近期过包包体很多&#xff0c;所以遇到的一些问题也是很多很杂&#xff0c;但是基本上都解决了。少部分因为政策原因导致的包体问题封号&#xff0c;这类就只能先排查问题&#xff0c;再重新制作了。对于拒审问题的解决&#xff0c;希望各位开发者能留下相关流程截图&#xff0…

使用nodejs搭建脚手架工具并发布到npm中

使用nodejs搭建脚手架工具并发布到npm中 一、安装环境依赖及脚手架搭建过程二、搭建Monorepo 风格的脚手架工程三、脚手架的必备模块命令参数模块获取命令参数设置子命令用户交互模块文件拷贝模块脚手架中的路径处理目录守卫文件拷贝模块动态文件生成模块mustache简介自动安装依…