tp6 对接阿里云短信

1、获取AccessKey ID,AccessKey Secret,第一次会提示需要创建

2、添加签名 

 3、创建模板

 

composer版本太老了,可能会导致下载失败,建议升级下版本 

官方提供的最新依赖版本,我的会报错,下载不了,提示用2.0.20版本

composer require alibabacloud/dysmsapi-20170525 2.0.23

 我用的是这版本

composer require alibabacloud/dysmsapi-20170525 2.0.20

封装一个类放到 app\index\controller\Admin\AliSms.php下(位置随意,找得到就行)

<?php

namespace app\controller\Admin;

use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;

class AliSms
{
    /**
     * 使用AK&SK初始化账号Client
     * @param string $accessKeyId
     * @param string $accessKeySecret
     * @return Dysmsapi Client
     */
    public static function createClient($accessKeyId, $accessKeySecret){
        $config = new Config([
            // 您的 AccessKey ID
            "accessKeyId" => "*********",
            // 您的 AccessKey Secret
            "accessKeySecret" => "*******"
        ]);
        // 访问的域名
        $config->endpoint = "dysmsapi.aliyuncs.com";写死
        return new Dysmsapi($config);
    }

    /**
     * @param string[] $args
     * @return array
     */
    public static function main($args){
        $client = self::createClient("accessKeyId", "accessKeySecret");
        $sendSmsRequest = new SendSmsRequest([
            "phoneNumbers" => $args['phone'],  //发送的手机号码
            "signName" => "短信签名",  //签名
            "templateCode" => $args['template'],  //模板CODE
            "templateParam" => json_encode($args['info'])  //这个根据你的模板信息来
        ]);

        $result = $client->sendSms($sendSmsRequest);
        if ($result->body->message == 'OK' && $result->body->code == 'OK') {
            return ['code' => 200,'message'=>'success'];
        }
        if ($result->body->code == 'isv.MOBILE_NUMBER_ILLEGAL') {
            return ['code' => 200, 'message' => '手机号码格式不正确'];
        }
        return ['code' => 200, 'message' => '短信发送失败,网络繁忙'];
    }
}

 方法中调用

<?php
namespace app\controller\Admin;

use app\BaseController;

class Index extends BaseController
{  
 
    //调用方法
    public function apisms()
    {
        $data = [
            'phone'=> '13******',
            'template' => 'SMS_********',
            'info' => ['name'=>'测试','time'=>'2022-10-30']  //根据模板里面的变量来填写
        ];
        //调用阿里云短信发送方法
        $send = new AliSms;
        $result = $send::main($data);
        //var_dump($result);
        //die;
     }
}
?>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于thinkphp5扩展的阿里大鱼短信接口。 使用方式: 1:将压缩包解压到项目根目录下simplewind文件夹下的extend文件夹中。 2:在use think\config文 件中加入配置 'wechat' =>array( /**********阿里大鱼配置************/ 'all_appkey' => '',//阿里大鱼Appkey 'all_secret' => '',//阿里大鱼Secret 'domain' => 'dysmsapi.aliyuncs.com',//阿里大鱼产品域名 'product' => 'Dysmsapi',////产品名称:云通信流量服务API产品,开发者无需替换 'region' => 'cn-hangzhou',//暂时不支持多Region 'end'=>'cn-hangzhou',// 服务结点 ), 3:在公共函数文件头部中加入 use aliyun\api_demo; 然后添加以下的阿里云调用方法: /**********************************发送短信--阿里大鱼********************/ /** * @param $autograph //签名 * @param $model //短信模板 * @param $phone //短信接收号码 * @param array $array //短信模板内容 * @param $water //流水号 * @return api_demo\stdClass|string */ function sk_aldayuCode($autograph,$model,$phone,$array=array(),$water){ if(!$autograph || !$model || !$phone || empty($array) || !$water){ return "参数不齐全:".$autograph."|".$model."|".$phone."|".$water; } $response = api_demo\SmsDemo::sendSms($autograph,$model,$phone,$array,$water); if(!$response->Message || $response->Message != 'OK'){ $msg['Message'] = $response->Message; return json_encode($msg,JSON_UNESCAPED_UNICODE); }else{ $msg['code'] = $array; $msg['Message'] = "OK"; return json_encode($msg,JSON_UNESCAPED_UNICODE); } } /**********************************发送短信--阿里大鱼********************/ 4:在须要调用短信发送的类中直接调用上方的函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值