跳到主要内容

Java SDK 使用教程

安装

当前 Java SDK 以源码方式接入:

git clone https://github.com/anquanssl/java-sdk.git
cd java-sdk
mvn package

复制生成的 Jar 到业务项目,或把 SDK 作为 Maven module 引入。

依赖项:

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.1</version>
</dependency>

初始化

import com.anquanssl.Client;
import com.anquanssl.resource.Product;
import com.anquanssl.resource.Order;

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

如需指定 API 地址:

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

产品及成本列表

接口文档

import java.util.Map;

Map<String, Object> resp = product.productList();
System.out.println(resp.get("data"));

证书下单

接口文档

import com.anquanssl.request.CertificateCreateRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

CertificateCreateRequest req = new CertificateCreateRequest();
req.setUniqueId("order_" + UUID.randomUUID());
req.setProductId("sslcom_dv_flex");
req.setPeriod("annually");
req.setCsr("-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----");
req.setContactEmail("contact@example.com");
req.setNotifyUrl("https://app.example.com/notify");

Map<String, String> domainDcv = new HashMap<>();
domainDcv.put("example.com", "dns");
domainDcv.put("www.example.com", "http");
req.setDomainDcv(domainDcv);

Map<String, Object> resp = order.certificateCreate(req);
Map<String, Object> data = (Map<String, Object>) resp.get("data");
String serviceId = data.get("service_id").toString();

System.out.println(resp);

查询证书

接口文档

import com.anquanssl.request.CertificateDetailRequest;

CertificateDetailRequest req = new CertificateDetailRequest();
req.setServiceId(serviceId);

Map<String, Object> resp = order.certificateDetail(req);
System.out.println(resp);

修改 DCV

接口文档

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

Map<String, Object> body = new HashMap<>();
Map<String, String> domainDcv = new HashMap<>();
domainDcv.put("example.com", "dns");
domainDcv.put("www.example.com", "https");
body.put("service_id", serviceId);
body.put("domain_dcv", domainDcv);

Map<String, Object> resp = client.post("/certificate/update-dcv", new HashMap<>(), body);
System.out.println(resp);

检查 DCV

接口文档

import com.anquanssl.request.CertificateValidateDCVRequest;

CertificateValidateDCVRequest req = new CertificateValidateDCVRequest();
req.setServiceId(serviceId);

Map<String, Object> resp = order.certificateValidateDCV(req);
System.out.println(resp);

移除 SAN

接口文档

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

Map<String, Object> body = new HashMap<>();
body.put("service_id", serviceId);
body.put("domain", "www.example.com");

Map<String, Object> resp = client.post("/certificate/remove-san", new HashMap<>(), body);
System.out.println(resp);

证书重签

接口文档

Map<String, Object> body = new HashMap<>();
Map<String, String> domainDcv = new HashMap<>();
domainDcv.put("example.com", "dns");
domainDcv.put("www.example.com", "http");
body.put("unique_id", "reissue_" + UUID.randomUUID());
body.put("service_id", serviceId);
body.put("csr", "-----BEGIN CERTIFICATE REQUEST-----\n...\n-----END CERTIFICATE REQUEST-----");
body.put("contact_email", "contact@example.com");
body.put("domain_dcv", domainDcv);

Map<String, Object> resp = client.post("/certificate/reissue", new HashMap<>(), body);
System.out.println(resp);

证书退款

接口文档

import com.anquanssl.request.CertificateRefundRequest;

CertificateRefundRequest req = new CertificateRefundRequest();
req.setServiceId(serviceId);

Map<String, Object> resp = order.certificateRefund(req);
System.out.println(resp);

错误处理

Map<String, Object> resp = product.productList();
if (!Boolean.TRUE.equals(resp.get("success"))) {
throw new RuntimeException(String.valueOf(resp.get("message")));
}