跳到主要内容

Python SDK 使用教程

安装

git clone https://github.com/anquanssl/python-sdk.git
cd python-sdk
python -m pip install build requests
python -m build
python -m pip install dist/anquanssl-*-py3-none-any.whl

初始化

from anquanssl.client import Client
from anquanssl.resource.product import Product
from anquanssl.resource.order import Order

client = Client("修改成 accessKeyId", "修改成 accessKeySecret")
product = Product(client)
order = Order(client)

如需指定 API 地址:

client = Client("accessKeyId", "accessKeySecret", "https://api.orion.pki.plus/api/v1")

产品及成本列表

接口文档

resp = product.product_list()
print(resp["data"]["products"])

证书下单

接口文档

import uuid
from anquanssl.request.certificate_create_request import CertificateCreateRequest

req = CertificateCreateRequest()
req.unique_id = f"order_{uuid.uuid4().hex}"
req.product_id = "sslcom_dv_flex"
req.period = "annually"
req.csr = """-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----"""
req.contact_email = "contact@example.com"
req.domain_dcv = {
"example.com": "dns",
"www.example.com": "http",
}
req.notify_url = "https://app.example.com/notify"

resp = order.certificate_create(req)
service_id = resp["data"]["service_id"]
print(resp)

查询证书

接口文档

from anquanssl.request.certificate_detail_request import CertificateDetailRequest

req = CertificateDetailRequest()
req.service_id = service_id

resp = order.certificate_detail(req)
print(resp)

修改 DCV

接口文档

当前 Python SDK 未封装 certificate_update_dcv 方法,可直接调用客户端:

resp = client.post(
"/certificate/update-dcv",
{},
{
"service_id": service_id,
"domain_dcv": {
"example.com": "dns",
"www.example.com": "https",
},
},
)
print(resp)

检查 DCV

接口文档

from anquanssl.request.certificate_validate_dcv_request import CertificateValidDCVRequest

req = CertificateValidDCVRequest()
req.service_id = service_id

resp = order.certificate_validate_dcv(req)
print(resp)

移除 SAN

接口文档

当前 Python SDK 未封装 certificate_remove_san 方法,可直接调用客户端:

resp = client.post(
"/certificate/remove-san",
{},
{
"service_id": service_id,
"domain": "www.example.com",
},
)
print(resp)

证书重签

接口文档

from anquanssl.request.certificate_reissue_request import CertificateReissueRequest

req = CertificateReissueRequest()
req.unique_id = f"reissue_{uuid.uuid4().hex}"
req.service_id = service_id
req.csr = """-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----"""
req.contact_email = "contact@example.com"
req.domain_dcv = {
"example.com": "dns",
"www.example.com": "http",
}

resp = order.certificate_reissue(req)
print(resp)

证书退款

接口文档

from anquanssl.request.certificate_refund_request import CertificateRefundRequest

req = CertificateRefundRequest()
req.service_id = service_id

resp = order.certificate_refund(req)
print(resp)

错误处理

resp = product.product_list()
if not resp.get("success"):
raise RuntimeError(resp.get("message"))