美文网首页
阿里云开放API-PHPSDK,CheckDomain,

阿里云开放API-PHPSDK,CheckDomain,

作者: 可乐_加冰_ | 来源:发表于2019-12-30 14:49 被阅读0次

以阿里云CheckDomain,检查域名是否可以注册。

省去签名验证的各种采坑。。。。

①准备好 AccessKey ID  和 AccessKeySecret

②下载php-SDK

通过composer获取sdk, 输入以下命令

composer require alibabacloud/sdk

大概就是这样,我把下载下来的sdk存放在该指定目录下【vendor 为sdk下载文件】。

③通过在线调试,生成php代码,复制代码到自己新建的test.php文件下

调试结果:

注意,一、require __DIR__ . '/vendor/autoload.php'; 为新增代码

           二、test.php 与文件夹 vendor 在同一目录 【我这里这样举例,】

④最后访问test.php即可看到api返回信息

参考官方文档【https://help.aliyun.com/document_detail/53111.html?spm=a2c1g.8271268.10000.133.5f4ddf25niHcrN

版本二[略...],

define('AccessKeyId', 'KEY');

define('AccessKeySecret', 'Secret');

date_default_timezone_set('UTC');

/**

*  获取请求签名

*/

function getSign($add)

{

    $nonce = time() . rand(11111, 99999);

    $time = date('Y-m-d') . 'T' . date('H:i:s') . 'Z';

    $data = array(

        'AccessKeyId' => AccessKeyId,

        'Format' => 'json',

        'SignatureMethod' => 'HMAC-SHA1',

        'SignatureNonce' => $nonce,

        'SignatureVersion' => '1.0',

        'Timestamp' => $time,

        'Version' => '2015-01-09'

    );

    $data = array_merge($data, $add);

    ksort($data);

    $format = http_build_query($data);

    $signUrl = 'GET&%2F&' . urlencode($format);

    $sign = urlencode(base64_encode(hash_hmac('sha1', $signUrl, AccessKeySecret . '&', true)));

    return array('url' => $format, 'sign' => $sign);

}

/**

*  获取域名解析记录

*/

function getDNS($domain)

{

    $sign = getSign(['Action' => 'DescribeSubDomainRecords', 'SubDomain' => $domain]);

    $url = 'https://alidns.aliyuncs.com/?' . $sign['url'] . '&Signature=' . $sign['sign'];

    $dns = json_decode(httpRequest($url));

    if (isset($dns->DomainRecords->Record[0])) {

        return $dns->DomainRecords->Record[0];

}

    return '';

}

/**

*  更新域名解析

*/

function updateDNS($id, $name, $ip)

{

    $data = array(

        'Action' => 'UpdateDomainRecord',

        'RecordId' => $id,

        'RR' => $name,

        'Type' => 'A',

        'Value' => $ip,

);

    $sign = getSign($data);

    $url = 'https://alidns.aliyuncs.com/?' . $sign['url'] . '&Signature=' . $sign['sign'];

    return httpRequest($url);

}

/**

*  发起 HTTP 请求

*/

function httpRequest($url)

{

    $header = array(

        'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0',

        'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',

        'Accept-Encoding: gzip, deflate',

        'Connection: keep-alive',

);

    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

    curl_setopt($curl, CURLOPT_ENCODING, 'gzip');

    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

    $data = curl_exec($curl);

    $error = curl_error($curl);

    curl_close($curl);

    if ($error) {

        return $error;

    } else {

        return $data;

}

}

}

相关文章

网友评论

      本文标题:阿里云开放API-PHPSDK,CheckDomain,

      本文链接:https://www.haomeiwen.com/subject/zhhmoctx.html