HUI CAI SDK for Java让您不用复杂编程即可访问恒通荟采开放平台开放的各项能力,SDK可以自动帮您满足能力调用过程中所需的基础校验、加签、验签、发送HTTP请求等非功能性要求。
HUI CAI SDK for Java to Demo
HUI CAI SDK for Java让您不用复杂编程即可访问恒通荟采开放平台开放的各项能力,SDK可以自动帮您满足能力调用过程中所需的基础校验、加签、验签、发送HTTP请求等非功能性要求。
适用于 Java 语言、JDK 版本 1.8 及以上的开发环境。
目前荟采开放平台SDK暂不支持Maven中央仓库,因此需使用荟采开放平台SDK的接入方需配置世纪恒通Maven仓库地址。
<repositories>
<repository>
<id>sjht-sdk</id>
<name>sjht-sdk</name>
<url>https://maven.cyzl.com/repository/public/</url>
</repository>
</repositories>
为方便接入方方便快捷的接入恒通荟采开放平台的各项开放服务能力,本 SDK 提供了统一的全量Maven依赖,同时接入方也可以根据自身需求只引入指定模块的Maven依赖。
<dependency>
<groupId>com.sjht.sdk</groupId>
<artifactId>huicai-sdk-all</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>com.sjht.sdk</groupId>
<artifactId>huicai-sdk-virtual</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>com.sjht.sdk</groupId>
<artifactId>huicai-sdk-physical</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>com.sjht.sdk</groupId>
<artifactId>huicai-sdk-onsite</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>com.sjht.sdk</groupId>
<artifactId>huicai-sdk-travel</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>com.sjht.sdk</groupId>
<artifactId>huicai-sdk-h5</artifactId>
<version>${version}</version>
</dependency>
SDK实现了大部分API的直接调用,以虚拟数字权益模块充值创建订单API为例,通过初始化客户端HuicaiApiClient,调用数字权益订单VirtualOrderService服务类的create方法即可。
HuicaiApiConfig config = HuicaiApiConfig.builder()
.serverUrl("https://testdj.cyzl.com")//世纪恒通API域名,不填默认为生产环境域名https://open.sjht.com
.appId("***pbotna*******")//世纪恒通AppId
.appSecret("********814847869e9ebd**********")//世纪恒通App秘钥
.encryptSecretKey("*****xOAny7a9X**********")//世纪恒通API使用3DES加解密秘钥
.logWitch(true)//是否开启API调用日志打印,默认为false关闭
.build();
HuicaiApiClient client= new DefaultApiClient(config);
VirtualOrderCreateRequest request = new VirtualOrderCreateRequest();
request.setAppOrderNo("***11986**********");
request.setUserMobile("13800000000");
request.setSkuId("***53856**********");
VirtualOrderCreateRequest.RechargeAccount rechargeAccount = new VirtualOrderCreateRequest.RechargeAccount();
rechargeAccount.setPhone("13800000000");
request.setAccounts(rechargeAccount);
request.setNotifyUrl("https://www.xxx.com/notifyUrl");
Result<VirtualOrderCreateResponse> response = new VirtualOrderService(client).create(request);
对于部分在SDK中未实现的API或接入方需自定义请求参数及响应参数的情况,接入方可直接调用HuicaiApiClient中的execute或executeToList方法,实现指定API的快速调用。如下所示以调用数字权益商品详情API为例:
JSONObject params = new JSONObject();
params.put("goodsId", "1853359363201175554");
Result<VirtualGoodsDetailsResponse> result = client.execute("/virtual/goods/details", params, VirtualGoodsDetailsResponse.class);
SDK提供了世纪恒通荟采开放平台回调通知接入方服务器的API签名校验方法,接入方可直接使用该方法进行回调通知的签名校验,确保通知数据的安全。如下以数字权益订单状态回调为例:
@PostMapping("/callbackNotify")
public EncryptModel callbackNotify(@RequestBody EncryptModel input) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HuicaiApiConfig config = HuicaiApiConfig.builder()
.appId("***pbotna*******")//世纪恒通AppId
.appSecret("********814847869e9ebd**********")//世纪恒通App秘钥
.encryptSecretKey("*****xOAny7a9X**********")//世纪恒通API使用3DES加解密秘钥
.build();
return new HuicaiNotifyService(config).notifyVerify(input, request, params -> {
log.info("回调数据-->{}", params.toJSONString());
//根据解密后的回调请求数据params,在此处处理签名校验成功后的业务逻辑
}, VirtualOrderNotifyResult.class);
}
OpenAPI规范(OAS),是定义一个标准的、与具体编程语言无关的RESTful API的规范,您可查阅 OAS官网 了解更多。
不管您在使用SDK的过程中遇到任何问题,欢迎前往 恒通荟采开放平台意见反馈模块 发帖与世纪恒通工作人员和其他开发者一起交流,或直接联系世纪恒通技术对接同学。