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

2023-12-01 0 816

前言介绍

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

由CMS88适配成pbootcms,可以拿来快速制作短信发送功能。

封装代码

<?php
/**
*@authorCMS88
*阿里云SMS
*/
namespacecore\\sms;
usecore\\basic\\Config;
classAliyunSms{
//保存错误信息
public$error;
//AccessKeyID
private$accessKeyId='';
//AccessAccessKeySecret
private$accessKeySecret='';
//签名
private$signName='';
//模版ID
private$templateCode='';
publicfunction__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');
}
privatefunctionpercentEncode($string){
$string=urlencode($string);
$string=preg_replace('/\\+/','%20',$string);
$string=preg_replace('/\\*/','%2A',$string);
$string=preg_replace('/%7E/','~',$string);
return$string;
}
/**
*签名
*@paramunknown$parameters
*@paramunknown$accessKeySecret
*@returnstring
*/
privatefunctioncomputeSignature($parameters,$accessKeySecret){
ksort($parameters);
$canonicalizedQueryString='';
foreach($parametersas$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;
}
/**
*@paramunknown$mobile
*@paramunknown$verify_code
*
*/
publicfunctionsend_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];
}
}
}

站长补充

如果需要留言或表单手机号阿里云短信验证功能,可咨询客服获取二开服务

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Pbootcms教程 适合PbootCMS的阿里云短信发送类 https://www.u-9.cn/jiaocheng/pbootcms-jiaocheng/15318.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务