实现tp6发送阿里云短信sms

一、阿里云配置

1.1 创建AccessKey 和 AccessKey Secret  

https://ram.console.aliyun.com/profile/access-keys

1.2 获取签名名称模版code

https://dysms.console.aliyun.com/domestic/text/sign

二、PHP7.2 + tp6

2.1 安装阿里云SDK 

composer require alibabacloud/dysmsapi-20170525 3.0.0

2.2 上代码
<?php

namespace app\admin\controller;

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

class SmsController
{
    public function sms(): string
    {
        $mobile = "手机号码";
        $code = "验证码";
        return $this->send_sms($mobile, $code);
    }

    public function send_sms($mobile, $code): string
    {
        $client = self::createClient();
        $sendSmsRequest = new SendSmsRequest([
            "phoneNumbers" => $mobile, // 国际号码添加区号
            "signName" => '签名名称',
            "templateCode" => '模板code',
            "templateParam" => json_encode(['code' => $code]) // 模板参数
        ]);

        $runtime = new RuntimeOptions([]);
        try {
            $res = $client->sendSmsWithOptions($sendSmsRequest, $runtime);//判断是否发送成功
            if ($res->body->code == "ok") {
                return '短信发送成功';
            } else {
                return $res->body->message;
            }
        } catch (\Exception $error) {
            return $error->getMessage();
        }
    }

    public static function createClient(): Dysmsapi
    {
        $config = new Config([
            "accessKeyId" => 'AccessKey', // 必填
            "accessKeySecret" => 'AccessKey Secret' // 必填
        ]);
        // Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
        $config->endpoint = '服务接入点(dysmsapi.aliyuncs.com)';

        return new Dysmsapi($config);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值