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")));
}