AlibabaCloudService.php 3.1 KB
<?php

namespace App\Services;

use AlibabaCloud\SDK\Alidns\V20150109\Alidns;
use AlibabaCloud\SDK\Alidns\V20150109\Models\AddDomainRecordRequest;
use AlibabaCloud\SDK\Alidns\V20150109\Models\DescribeDomainRecordsRequest;
use AlibabaCloud\SDK\Alidns\V20150109\Models\UpdateDomainRecordRemarkRequest;
use AlibabaCloud\SDK\Alidns\V20150109\Models\UpdateDomainRecordRequest;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;

class AlibabaCloudService
{
    /**
     * 创建客户端
     * @return Alidns
     * @author Akun
     * @date 2024/09/21 16:16
     */
    public static function createClient()
    {
        $config = new Config([
            'accessKeyId' => env('ALIBABA_CLOUD_KEY'),
            'accessKeySecret' => env('ALIBABA_CLOUD_SECRET'),
        ]);

        return new Alidns($config);
    }

    /**
     * 获取域名解析记录列表
     * @param $domain
     * @param $keyword
     * @param $status
     * @return array
     * @author Akun
     * @date 2024/09/21 17:19
     */
    public static function describeDomainRecords($domain, $keyword, $status = 'Enable')
    {
        $client = self::createClient();

        $request = new DescribeDomainRecordsRequest([
            'domainName' => $domain,
            'RRKeyWord' => $keyword,
            'status' => $status,
        ]);

        $response = $client->DescribeDomainRecords($request);

        return Utils::toArray($response);
    }

    /**
     * 添加解析记录
     * @param $domain
     * @param $rr
     * @param $type
     * @param $value
     * @return array
     * @author Akun
     * @date 2024/09/21 17:33
     */
    public static function addDomainRecord($domain, $rr, $type, $value)
    {
        $client = self::createClient();

        $request = new AddDomainRecordRequest([
            'domainName' => $domain,
            'RR' => $rr,
            'type' => $type,
            'value' => $value
        ]);

        $response = $client->AddDomainRecord($request);

        return Utils::toArray($response);
    }

    /**
     * 修改解析记录备注
     * @param $record_id
     * @param $remark
     * @return array
     * @author Akun
     * @date 2024/09/21 17:38
     */
    public static function updateDomainRecordRemark($record_id, $remark)
    {
        $client = self::createClient();

        $request = new UpdateDomainRecordRemarkRequest([
            'recordId' => $record_id,
            'remark' => $remark,
        ]);

        $response = $client->UpdateDomainRecordRemark($request);

        return Utils::toArray($response);
    }

    /**
     * 修改解析记录详情
     * @param $record_id
     * @param $rr
     * @param $type
     * @param $value
     * @return array
     * @author Akun
     * @date 2024/09/23 10:55
     */
    public static function updateDomainRecord($record_id, $rr, $type, $value)
    {
        $client = self::createClient();

        $request = new UpdateDomainRecordRequest([
            'recordId' => $record_id,
            'RR' => $rr,
            'type' => $type,
            'value' => $value,
        ]);

        $response = $client->UpdateDomainRecord($request);

        return Utils::toArray($response);
    }
}