Laravel之阿里云短信发送接口使用

1、先使用Composer将 Alibaba Cloud Client for PHP 添加为依赖项。

composer require alibabacloud/client

2、新建控制器文件,将以下代码复制

<?php

namespace App\Http\Controllers;
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;

use Illuminate\Http\Request;

class Sms extends Controller
{
    public function index(){

        AlibabaCloud::accessKeyClient('<accessKeyId>', '<accessSecret>')->asDefaultClient();

        $code=rand(1000,9999);
        try {
            $result = AlibabaCloud::rpc()
                ->regionId('cn-chengdu') // 指定请求的地域,不指定则使用客户端地域、默认地域。
                ->product('Dysmsapi') // 指定产品。
                ->version('2017-05-25') // 指定产品版本。
                ->action('SendSms') // 指定产品接口。
                ->method('POST') // 指定请求方式。
                ->host('dysmsapi.aliyuncs.com') // 指定域名则不会寻址,如认证方式为Bearer Token的服务则需要指定。
                ->options([
                    'query' => [
                        'RegionId' => "cn-chengdu",
                        'PhoneNumbers' => "18508*22333",
                        'SignName' => "高职助手",
                        'TemplateCode' => "SMS_177399",
                        'TemplateParam' => "{code:".$code."}",
                    ],
                ])
                ->request(); // 发起请求并返回结果对象,请求需要放在设置的最后面。

            print_r($result->toArray());

        } catch (ClientException $exception) {
            print_r($exception->getErrorMessage());
        } catch (ServerException $exception) {
            print_r($exception->getErrorMessage());
        }

    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注