tp5 发送阿里云短信

简介: 先在阿里大于短信平台注册,将appid和appsec准备好 1:下载 sdk包 (https://help.aliyun.com/document_detail/55359.html?spm=5176.

先在阿里大于短信平台注册,将appid和appsec准备好.

1:下载 sdk包 (https://help.aliyun.com/document_detail/55359.html?spm=5176.8195934.507901.12.2NiZni) ps:我下载的是轻量级的包
102201
放到 vendor目录下面去

2:新增一个AliSms控制器(我写的是 扩展类 直接放在extend)下面的

3:在控制器引入 包 由于tp5.1*以上 开启了自动加载,这儿你可以使用 require 或者定义命名空间的方式来引入
<?php
/**

  • 阿里云短信发送 模型
    */

namespace lib;
use AliyunDySDKLiteSignatureHelper;
use appcommonmodelWebsiteConfig;
use appcommonmodelSms;
use thinkDb;
class AliSms
{
  public static function sendSms($mobile,$code,$TemplateCode)
  {

    //引入 sdk 文件
    require '../vendor/aliyun-sms/SignatureHelper.php';
    //读取数据库 配置信息
    $config = WebsiteConfig::get(1);

    $accessKeyId = $config['sms_appid'];
    $accessKeySecret = $config['sms_appsecret'];

    //发送短信需要的数据
    $params = [
      'PhoneNumbers' => $mobile,//手机号
      'SignName' => 'xxx',//签名
      'TemplateCode' => $TemplateCode,//模板id
      'TemplateParam' => [//短信模板需要的 变量内容
        'code' => $code
      ]
    ];
try {
      Sms::where('mobile',$mobile)->delete();//将数据库存的 短信信息删除
      Sms::create([//插入本条短信内容
        'code' => $code,
        'mobile' => $mobile,
        'end_time' => time()+900
      ]);
    } catch (Exception $e) {
     return false;
    }
    if(!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {
      $params["TemplateParam"] = json_encode($params["TemplateParam"], JSON_UNESCAPED_UNICODE);
    }

    //实例化 速度快、
    $helper = new SignatureHelper();
    try {
      $content = $helper->request(//发送短 这儿的内容不需要更改
        $accessKeyId,
        $accessKeySecret,
        "dysmsapi.aliyuncs.com",
        array_merge($params,[
          "RegionId" => "cn-hangzhou",
          "Action" => "SendSms",
          "Version" => '2017-05-25',
        ])
      );
      return object_array($content);//将对象转为数组 返回
    } catch (Exception $e) {
      return false;
    }
}
/**

  • 验证验证码
  • @return code 0 为验证码不正确 2为验证码已过期 1为验证码正确
    */

  public static function check($mobile,$code)
  {
    $result = Sms::where(['mobile' => $mobile , 'code' => $code] )->find();

    if (empty($result)) {

    return ['code'=>0,'msg'=>'验证码不正确,请检查'];

    }elseif( ($result['end_time']      Sms::where(['mobile' => $mobile , 'code' => $code] )->delete();
      return ['code'=>0,'msg'=>'验证码已过期,请重新获取'];

    }else{

      Sms::where(['mobile' => $mobile , 'code' => $code] )->delete();

      return ['code'=>1,'msg'=>'验证码正确'];

    }
  }
}

相关文章
|
4月前
sms4j对接阿里云短信
sms4j对接阿里云短信
184 0
|
8月前
|
Java API 开发工具
Java程序如何通过阿里云OpenAPI调用短信接口
Java程序如何通过阿里云OpenAPI调用短信接口
517 1
|
10月前
阿里云短信套餐包什么意思?
阿里云短信套餐包是什么意思?短信套餐包就是一次性购买多少条的短信,然后使用时自动从短信套餐包中扣除短信数量。假设你花了6.9元购买了200条的短信套餐包,使用阿里云短信服务平台发送短信,发送了10条,就自动从这个套餐包中扣除已经使用的10条,还剩190条。
179 1
|
11天前
使用阿里云语音通知http批量推送模式获取用户回执短信内容
本文使用阿里云语音通知配置http批量推送模式获取用户回执信息,并进行测试
34 0
|
11天前
|
移动开发 小程序 安全
使用阿里云短信+微信短链接跳转微信小程序
此内容是关于使用阿里云短信带传递参数的微信短链接跳转到微信小程序。首先,需要准备微信开发者工具和一个已认证的小程序。接着,开通云开发并配置云开发权限。然后,配置H5静态网页,包括设置云开发权限和处理不同设备的跳转方式。最后,上传云函数并修改其权限,获取微信短信链接,配置短链接参数,并开通阿里云短信服务以进行测试验证。整个过程涉及到了微信开发者工具、云开发、H5页面配置、云函数的创建和部署以及阿里云短信服务的开通和使用等步骤。
37 0
|
25天前
|
安全 Java API
阿里云短信简介和接入流程
准备阿里云短信服务:1. 注册阿里云账号并实名,建议使用企业实名,个人无法接入短信发送API。2. 购买短信,可选验证码、通知、推广等类型。3. 设置短信签名和模板,签名用于短信前缀,模板包含具体短信内容,需审核。4. 创建并配置子用户AccessKey,仅分配短信权限,确保安全。5. 如有泄露,禁用或删除AccessKey。6. 开发阶段,参考官方文档和SDK进行代码接入。
|
2月前
调用阿里云接口实现短信消息的发送源码——CSDN博客
调用阿里云接口实现短信消息的发送源码——CSDN博客
60 0
|
5月前
|
Java Maven
(短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码
(短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码
728 0
|
10月前
|
安全 Java API
阿里云短信介绍和购买流程和使用流程
联网时代短信的应用无处不在,如APP的注册,平时的短信通知等。 下面就由小编系统的讲解一下阿里云短信的购买和使用流程
|
10月前
2023年阿里云短信价格多少钱1条?
2023年阿里云短信价格多少钱1条?阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条

热门文章

最新文章