腾讯云API3.0精简易用PHP版

2022-01-10 15:19 来源: 开发部
现在各个大厂API写的是越来越大,一个curl能解决的问题要加载一堆组件,本站主要是涉及域名类操作,完全满足。写了一个函数可以直接封装到业务类中,下列代码做了最大化精简,放

现在各个大厂API写的是越来越大,一个curl能解决的问题要加载一堆组件,本站主要是涉及域名类操作,完全满足。写了一个函数可以直接封装到业务类中,下列代码做了最大化精简,放弃了GET场景,根据官方文档和POST有点不同,请自行魔改,不罗嗦直接上代码:
脱坑指示 TX端对数据类型做了严格认证,所以提交数据时要转换类型,比如 string int 大部分情况下,手机号属于 string。
 
function api_call($api, $version, $action, $data)
{
    $secretId = "AK*****************************";
    $secretKey = "OadUD**************************";
    $host = $api . ".tencentcloudapi.com";
    $timestamp = time();
    $payload = json_encode($data);
    $date = gmdate("Y-m-d", $timestamp);
    $credentialScope = $date . "/" . $api . "/tc3_request";
    $stringToSign = "TC3-HMAC-SHA256n"
        . $timestamp . "n"
        . $credentialScope . "n"
        . hash("SHA256", "POSTn/nncontent-type:application/json; charset=utf-8n" . "host:" . $host . "nncontent-type;hostn" . hash("SHA256", $payload));
    $signature = hash_hmac("SHA256", $stringToSign, hash_hmac("SHA256", "tc3_request", hash_hmac("SHA256", $api, hash_hmac("SHA256", $date, "TC3" . $secretKey, true), true), true));
    $headers = [
        'Authorization: ' . "TC3-HMAC-SHA256 Credential=" . $secretId . "/" . $credentialScope . ", SignedHeaders=content-type;host, Signature=" . $signature,
        'Content-Type: application/json; charset=utf-8',
        'Host: ' . $host,
        'X-TC-Action: ' . $action,
        'X-TC-Timestamp: ' . $timestamp,
        'X-TC-Version: ' . $version,
        'X-TC-Region: ap-guangzhou',
    ];
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://' . $host);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
    $output = json_decode(curl_exec($ch), true);
    curl_close($ch);
    return $output;
}

//echo json_encode(api_call('dnspod', "2021-03-23", "DescribeRecordList", ["Domain" => "qq.cn"]));
//echo json_encode(api_call('domain', "2018-08-08", "DescribeDomainBaseInfo", ["Domain" => "qq.cn"]));

 
推荐内容
  • PhpSpreadsheet PHPExcel fgetcsv速度对比

    PHP表格读取速度对比,PhpSpreadsheet PHPExcel fgetcsv读取大文件对比。 单读取推荐 PHPExcel,PhpSpreadsheet支持功能更多一些,csv文件 推荐 使用fgetcsv 单独出来处理。

  • CKEditor 5 进阶设置 图片上传 字体大小 新窗口打开超链接

    CKEditor即大名鼎鼎的FCKeditor(文本编辑器),它终于在最近发布新版本了,与增加版本号不同,这次完全把它改名了,更名为CKeditor。CKEditor 5是替代CKEditor 4的最新版本,支持个性化定制功能。

  • iis789隐藏更改响应头Server:Microsoft-IIS/7.5

    现在iis url重写模块基本是必备组件,直接添加规则即可修改出站Server值 1.找到url重写组件 2.新建规则 3.写好规则并保存 变量名RESPONSE_SERVER 模式 .* 操作值就是 显示的Server 可以随便设置

  • 如何做好网站安全指导篇

    1.系统层 搞一个强壮的远程密码 开启防火墙,封闭用不到的端口 改默认远程端口,开启防扫 经常更新系统,保持最新 2.环境层 更新环境最新 比如当前 PHP7,关闭一些用不到的支持组件

  • IIS - 解决设置的404页面对.php无效的问题(No input file specified.)

    问题描述: .php 后缀地址报错No input file specified 环境iis7.5 解决办法: (1)打开IIS管理器,选择需要设置404页面的网站,双击打开右侧的处理程序映射按钮。 (2)找到php条目后双击。 (

  • linux服务器添加多ip的方法(centos系统)

    1、利用putty工具连接到服务器。 2、输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 回车。 3、输入i进行编辑 4、假如小明的vps主ip为123.123.123.1,购买了3个ip分别是123.123.123.2、123.123.123.3、123.