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'=>'验证码正确'];

    }
  }
}

相关文章
|
8月前
阿里云短信价格查询
阿里云短信价格查询,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
|
8月前
阿里云短信套餐包什么意思?
阿里云短信套餐包是什么意思?短信套餐包就是一次性购买多少条的短信,然后使用时自动从短信套餐包中扣除短信数量。假设你花了6.9元购买了200条的短信套餐包,使用阿里云短信服务平台发送短信,发送了10条,就自动从这个套餐包中扣除已经使用的10条,还剩190条。
132 1
|
3月前
|
Java Maven
(短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码
(短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码
230 0
|
2月前
sms4j对接阿里云短信
sms4j对接阿里云短信
74 0
|
8月前
|
安全 Java API
阿里云短信介绍和购买流程和使用流程
联网时代短信的应用无处不在,如APP的注册,平时的短信通知等。 下面就由小编系统的讲解一下阿里云短信的购买和使用流程
|
8月前
2023年阿里云短信价格多少钱1条?
2023年阿里云短信价格多少钱1条?阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
|
8月前
阿里云短信价格表0.032元一条
阿里云短信价格表0.032元一条,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
|
8月前
阿里云短信--0.032元/条起,99%到达率,秒级触达
阿里云短信--0.032元/条起,99%到达率,秒级触达,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
|
4月前
阿里云sms发送短信(新)
阿里云sms发送短信(新)
103 0
|
6月前
|
Java API 开发工具
Java程序如何通过阿里云OpenAPI调用短信接口
Java程序如何通过阿里云OpenAPI调用短信接口
361 1

热门文章

最新文章

相关产品

  • 云迁移中心