# 应用系统快速接入
请先按照官网要求提供相应资料,通过邮件申请获得唯一的应用系统信息,并妥善保密保存应用编码和应用密钥,防止泄露。
# 1.合同开发平台接口调用demo
接口统一采用Post请求,调用参考工具类:ContractHttpUtil(详细查看:3.开发平台SDK)
// 组装应用信息
Map<String, String> appInfoMap = new HashMap<>();
appInfoMap.put("appCode", "100001"); // 应用code 请替换
appInfoMap.put("secret", "123"); // 应用密钥 请替换
// 应用RSA公钥 请替换
appInfoMap.put("rsaPublicKey", "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDVA0hQ9gIPJVJYk3Q1QhFTD3+FifUIF3aaRA2dwinvK0FiEIhOdCcVaofbOmLNoZeG5ixZcK1LF+7gkfbGCebgHxBcgaV0Ex2vUAx/dHRnNHIUR+ISE7rRsGje++KjsindfuvevF0lgj6hv7V0NYg8+rMm3R0WlojkC0++GL0BwIDAQAB");
// 组装业务请求参数
Map<String, Object> bizParam = new HashMap<>();
bizParam.put("typeId", "213");
// 请求开放平台
ContractHttpUtil.execute("https://contracttest.hiido.com/contract/api/openApi/contractSign/listTemplate",bizParam, appInfoMap);
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 2.接收开放平台的回调
在Controller添加方法:
@PostMapping(value = "/testCallback")
public ResponseWrapper testCallback(@RequestBody String body, HttpServletRequest request, HttpServletResponse response) throws Exception {
Map result = JSONUtil.toBean(body, Map.class);
String sign = (String) result.get("sign");
Map bizParam = (Map) result.get("bizParam");
// 应用RSA公钥
String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDVA0hQ9gIPJVJYk3Q1QhFTD3+FifUIF3aaRA2dwinvK0FiEIhOdCcVaofbOmLNoZeG5ixZcK1LF+7gkfbGCebgHxBcgaV0Ex2vUAx/dHRnNHIUR+ISE7rRsGje++KjsindfuvevF0lgj6hv7V0NYg8+rMm3R0WlojkC0++GL0BwIDAQAB";
// 验签
if(ContractSecureUtil.verifySignByRSA(JSONUtil.toJsonStr(bizParam).getBytes(), sign, publicKey)){
// 验签通过就进行回调参数解析处理
// bizParam:业务数据
// ...
}
return new ResponseWrapper(null, 200, "success");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16