适合PbootCMS的阿里云短信发送类

2024-06-22 00:52

本文主要是介绍适合PbootCMS的阿里云短信发送类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言介绍

一款大佬分享的简单方便阿里云短信封装代码,不用官网复杂的SDK,快速上手。

现在我把它适配成pbootcms,可以拿来快速制作短信发送功能。

封装代码

<?php
/*** @author CMS88*  阿里云SMS*/
namespace core\sms;
use core\basic\Config;
class AliyunSms {// 保存错误信息public $error;// Access Key IDprivate $accessKeyId = '';// Access Access Key Secretprivate $accessKeySecret = '';// 签名private $signName = '';// 模版IDprivate $templateCode = '';public function __construct() {// 配置参数$this->accessKeyId = Config::get('sms_appid');$this->accessKeySecret = Config::get('sms_secret');$this->signName = Config::get('sms_signame');$this->templateCode = Config::get('sms_checkcodetpl');}private function percentEncode($string) {$string = urlencode ( $string );$string = preg_replace ( '/\+/', '%20', $string );$string = preg_replace ( '/\*/', '%2A', $string );$string = preg_replace ( '/%7E/', '~', $string );return $string;}/*** 签名* @param unknown $parameters            * @param unknown $accessKeySecret            * @return string*/private function computeSignature($parameters, $accessKeySecret) {ksort( $parameters );$canonicalizedQueryString = '';foreach ( $parameters as $key => $value ) {$canonicalizedQueryString .= '&' . $this->percentEncode ( $key ) . '=' . $this->percentEncode ( $value );}$stringToSign = 'GET&%2F&' . $this->percentencode ( substr ( $canonicalizedQueryString, 1 ) );$signature = base64_encode ( hash_hmac ( 'sha1', $stringToSign, $accessKeySecret . '&', true ) );return $signature;}/*** @param unknown $mobile            * @param unknown $verify_code            **/public function send_verify($mobile, $tpljson) {$params = array (//此处作了修改'SignName' => $this->signName,'Format' => 'JSON','Version' => '2017-05-25','AccessKeyId' => $this->accessKeyId,'SignatureVersion' => '1.0','SignatureMethod' => 'HMAC-SHA1','SignatureNonce' => uniqid (),'Timestamp' => gmdate ( 'Y-m-d\TH:i:s\Z' ),'Action' => 'SendSms','TemplateCode' => $this->templateCode,'PhoneNumbers' => $mobile,//'TemplateParam' => '{"code":"' . $verify_code . '"}' 'TemplateParam' => $tpljson   //更换为自己的实际模版);//var_dump($params);die;// 计算签名并把签名结果加入请求参数$params ['Signature'] = $this->computeSignature( $params, $this->accessKeySecret );// 发送请求(此处作了修改)//$url = 'https://sms.aliyuncs.com/?' . http_build_query ( $params );$url = 'http://dysmsapi.aliyuncs.com/?' . http_build_query ( $params );$result = json_decode( get_url($url) );if( isset($result->Code) && $result->Code=='OK' ) {return ['code'=>1,'msg'=>$result->Message];}else{return ['code'=>0,'msg'=>$result->Message];}}
}

这篇关于适合PbootCMS的阿里云短信发送类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1082832

相关文章

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

redis防止短信恶意调用的实现

《redis防止短信恶意调用的实现》本文主要介绍了在场景登录或注册接口中使用短信验证码时遇到的恶意调用问题,并通过使用Redis分布式锁来解决,具有一定的参考价值,感兴趣的可以了解一下... 目录1.场景2.排查3.解决方案3.1 Redis锁实现3.2 方法调用1.场景登录或注册接口中,使用短信验证码场

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修