xolphin / xolphin-api-php
PHP的Xolphin API模块
v3.0.5
2024-01-29 17:11 UTC
Requires
- php: >=7.4|8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.4
Requires (Dev)
- phpunit/phpunit: 9.5.*
README
xolphin-php-api是一个库,允许快速在PHP中集成Xolphin REST API,以实现SSL证书的自动化订购、签发和安装。
关于Xolphin
Xolphin是荷兰最大的SSL证书和数字签名供应商。Xolphin拥有一支专业的团队,提供可靠的支持和快速签发来自行业领先品牌(如Sectigo、GeoTrust、GlobalSign、Thawte和Symantec)的SSL证书,价格合理。
库安装
库可以通过Composer安装
composer require xolphin/xolphin-api-php
并且通过以下方式更新
composer update xolphin/xolphin-api-php
升级指南:从v2.x到v3.x
- 从
$response->getPagination()->{{method}};
访问分页属性 - 请从您的代码中移除所有EE(EncryptionEverywhere)块,它们已被最终移除。
- 确保您使用正确的类型,因为我们现在强制执行严格类型。
从v1.8.3升级到v2.x的指南
在您的composer.json
文件中将xolphin/xolphin-api-php
依赖项更新到^2.0
。
类名更改
所有端点类都已重命名为更通用的名称<resource>Endpoint
。您应该更新您的使用。
调用端点类
所有端点类在启动时都会被创建。您可以使用$client->certificates->all()
而不是$client->certificate()->all()
来调用它们。
使用辅助器而不是字符串
在2.0.0版本中,我们引入了辅助器类。这些类包含所有静态字符串变量的常量(枚举)。请使用这些常量而不是字符串,因为我们将在更改API中相应值时更改这些常量。
例如,在创建域的DCV时
$dcvDomain = new Xolphin\Requests\DCVDomain('someDomain', Xolphin\Helpers\DCVTypes::EMAIL_VALIDATION, 'someemail@address.com');
证书下载()方法返回字符串
类CertificatesEndpoint
上的download()
方法现在返回证书字符串,而不是GuzzlestreamInterface
。
用法
客户端初始化
<?php require 'vendor/autoload.php'; $client = new Xolphin\Client('<username>', '<password>');
速率限制
当前限制
$limit = $client->getLimit(); echo $limit . PHP_EOL;
限制请求剩余次数
$requestsRemaining = $client->getRequestsRemaining(); echo $requestsRemaining . PHP_EOL;
请求
获取请求列表
$requests = $client->requests->all(); foreach($requests as $request) { echo $request->id . PHP_EOL; }
通过ID获取请求
$request = $client->requests->get(1234); echo $request->id;
请求证书
$products = $client->support->products(); // request Sectigo EssentialSSL certificate for 1 year $request = $client->requests->create($products[1]->id, 1, '<csr_string>', DCVTypes::EMAIL_VALIDATION) ->setAddress("Address") ->setApproverFirstName("FirstName") ->setApproverLastName("LastName") ->setApproverPhone("+12345678901") ->setZipcode("123456") ->setCity("City") ->setCompany("Company") ->setApproverEmail('email@domain.com') //currently available languages defined in RequestLanguages ->setLanguage(RequestLanguage::ENGLISH) ->addSubjectAlternativeNames('test1.domain.com') ->addSubjectAlternativeNames('test2.domain.com') ->addSubjectAlternativeNames('test3.domain.com') ->addDcv(new \Xolphin\Requests\DCVDomain('test1.domain.com', DCVTypes::EMAIL_VALIDATION, 'email1@domain.com')) ->addDcv(new \Xolphin\Requests\DCVDomain('test2.domain.com', DCVTypes::EMAIL_VALIDATION, 'email2@domain.com')); $client->requests->send($request);
重新签发证书
// Reissue a current certificate $reissue = new \Xolphin\Requests\ReissueRequest('<csr_string>', DCVTypes::EMAIL_VALIDATION); $reissue->setApproverEmail('email@domain.com'); $client->certificates->reissue(<certificate_id>, $reissue);
续订证书
// Renew a current certificate $currentCertificate = $client->certificates->get(<certificate_id>); $renew = new \Xolphin\Requests\RenewRequest($currentCertificate->product, <years>, '<csr_string>', DCVTypes::FILE_VALIDATION); $renew->setApproverEmail('email@domain.com'); $client->certificates->renew(<certificate_id>, $renew);
创建笔记
$result = $client->requests->sendNote(1234, 'My message');
获取笔记列表
$notes = $client->requests->getNotes(1234); foreach($notes as $note){ echo $note->messageBody . PHP_EOL; }
发送"Sectigo订阅协议"电子邮件
//currently available languages defined in RequestLanguages $client->requests->sendSectigoSAEmail(1234, 'mail@example.com', RequestLanguage::ENGLISH);
证书
证书列表和到期日期
$certificates = $client->certificates->all(); foreach($certificates as $certificate) { echo $certificate->id . ' - ' . $certificate->isExpired() . "\n"; }
下载证书
$certificates = $client->certificates->all(); $cert = $client->certificates->download($certificates[0]->id, CertificateDownloadTypes::CRT); file_put_contents('cert.crt', $cert);
支持
产品列表
$products = $client->support->products(); foreach($products as $product) { echo $product->id . PHP_EOL; }
解码CSR
$csr = $client->support->decodeCSR('<your csr string>'); echo $csr->type;
发票
发票列表
$invoices = $client->invoices->all(); foreach($invoices as $invoice) { echo $invoice->id . ' ' . $invoice->invoiceNr . ' ' . $invoice->amount . PHP_EOL; }
以PDF格式下载发票
$invoices = $client->invoices->all(); $invoicePdf = $client->invoices->download($invoices[0]->id, InvoiceDownloadTypes::PDF); file_put_contents('invoice.pdf' , $invoicePdf);