跳到主要内容

PHP SDK 使用教程

安装

composer require quantumca/sdk -vvv

初始化

<?php

use QuantumCA\Sdk\Client;

require __DIR__ . '/vendor/autoload.php';

$sdk = new Client('修改成 accessKeyId', '修改成 accessKeySecret');

如需指定 API 地址:

$sdk = new Client('accessKeyId', 'accessKeySecret', 'https://api.orion.pki.plus/api/v1');

产品及成本列表

接口文档

$result = $sdk->product->productList();
print_r($result->products);

证书下单

接口文档

use QuantumCA\Sdk\Requests\CertificateCreateRequest;

$request = new CertificateCreateRequest();
$request->unique_id = uniqid('order_', true);
$request->product_id = 'sslcom_dv_flex';
$request->period = 'annually';
$request->csr = "-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----";
$request->contact_email = 'contact@example.com';
$request->domain_dcv = [
'example.com' => 'dns',
'www.example.com' => 'http',
];
$request->notify_url = 'https://app.example.com/notify';

$result = $sdk->order->certificateCreate($request);
$serviceId = $result->service_id;

print_r($result);

查询证书

接口文档

use QuantumCA\Sdk\Requests\CertificateDetailRequest;

$request = new CertificateDetailRequest();
$request->service_id = $serviceId;

$result = $sdk->order->certificateDetail($request);
print_r($result);

修改 DCV

接口文档

use QuantumCA\Sdk\Requests\CertificateUpdateDcvRequest;

$request = new CertificateUpdateDcvRequest();
$request->service_id = $serviceId;
$request->domain_dcv = [
'example.com' => 'dns',
'www.example.com' => 'https',
];

$result = $sdk->order->certificateUpdateDcv($request);
print_r($result);

检查 DCV

接口文档

use QuantumCA\Sdk\Requests\CertificateValidateDcvRequest;

$request = new CertificateValidateDcvRequest();
$request->service_id = $serviceId;

$result = $sdk->order->certificateValidateDcv($request);
print_r($result);

添加 SAN

use QuantumCA\Sdk\Requests\CertificateAddSanRequest;

$request = new CertificateAddSanRequest();
$request->service_id = $serviceId;
$request->san = 1;

$result = $sdk->order->certificateAddSan($request);
print_r($result);

移除 SAN

接口文档

use QuantumCA\Sdk\Requests\CertificateRemoveSanRequest;

$request = new CertificateRemoveSanRequest();
$request->service_id = $serviceId;
$request->domain = 'www.example.com';

$result = $sdk->order->certificateRemoveSan($request);
print_r($result);

证书重签

接口文档

use QuantumCA\Sdk\Requests\CertificateReissueRequest;

$request = new CertificateReissueRequest();
$request->unique_id = uniqid('reissue_', true);
$request->service_id = $serviceId;
$request->csr = "-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----";
$request->contact_email = 'contact@example.com';
$request->domain_dcv = [
'example.com' => 'dns',
'www.example.com' => 'http',
];

$result = $sdk->order->certificateReissue($request);
print_r($result);

证书退款

接口文档

use QuantumCA\Sdk\Requests\CertificateRefundRequest;

$request = new CertificateRefundRequest();
$request->service_id = $serviceId;

$result = $sdk->order->certificateRefund($request);
print_r($result);

环境变量示例

SDK 仓库内置 examples/

export ACCESS_KEY_ID="你的 accessKeyId"
export ACCESS_KEY_SECRET="你的 accessKeySecret"
export SERVICE_ID="证书 service_id"

php examples/01_product_list.php
php examples/02_certificate_create.php
php examples/03_order_detail.php
php examples/04_update_dcv.php
php examples/05_validate_dcv.php
php examples/06_reissue_certificate.php
php examples/07_add_san.php
php examples/08_remove_san.php
php examples/09_refund.php

异常处理

use QuantumCA\Sdk\Exceptions\RequestException;

try {
$result = $sdk->product->productList();
} catch (RequestException $e) {
echo $e->getMessage();
}