# 应用系统快速接入

请先按照官网要求提供相应资料,通过邮件申请获得唯一的应用系统信息,并妥善保密保存应用编码和应用密钥,防止泄露。

# 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.接收开放平台的回调

在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

# 3.开发平台SDK下载

SDK下载:oa-contract-open-0.0.1-SNAPSHOT-sources.jar

更新时间: 2023-05-17 09:27:53