收银系统互通

收银系统互通


交互总体说明

[TOC]

基础说明
  • 接口中的地址,为我司处理数据的地址以及基础的字段,同理适用于对接方,对接方只需要告知接收对应业务的地址即可,我司将按照接口原样传输对应数据;
加密传输规则
  • 使用RSA2048位加密公私钥对,敏感信息使用DES3加密传输,如有必要可以加入IP白名单规则;
  • RSA生成可以百度,也可以参考支付宝官方生成的方式:https://docs.zhifux.com/read/zhifufm/alipayrsa
Java代码请求示例
String des3Key="双方约定的DES3密钥";
String responseJson = "需要加密的数据";
String privateKey="客户自己的私钥";
String publickey="恒强的公钥";

String data = Des3Encryption.encode(des3Key, responseJson);//加密数据
String signature = RSAUtil.sign(data, privateKey);//RSA得到签名

//组装请求参数的封装数据(可以根据自己的情况改动,这里只是作为演示)
Map<String, Object> contentData = new HashMap<>();
contentData.put("signature", signature);
contentData.put("data", data);
String responseJson1 = JSONObject.toJSONString(contentData);
Map<String, Object> requestJsonMap1 = JSONObject.parseObject(responseJson1, Map.class);

String responseResult = HttpUtil.doPostJson("请求地址", requestJsonMap1);

//响应得到签名
String signature1 = (String) map.get("signature");
//响应得到加密域数据
String responsedata = (String) map.get("data");

if (!StringUtils.isBlank(signature1)) {
    boolean b = RSAUtil.verify(responsedata, publickey, signature1);//进行验签
}
请求参数说明
参数名 类型 说明 必传
signature string 请求的签名数据
data string 请求加密数据
7.java返回参数样例
{
    "bizType": "XXXXXAAA",
    "data": "v+QGzpFzCnjHZ+I/2+tfT6/+0y2kgXof0f4A0J8eOxFDTaLdL9NEzq2Wy+yV4NAHyeBA5QokxLsGMlLdSvl7dsAXT26Cag3xf3/5cFsKjBo=",
    "signature": "O+pXuU73QjKb9oCXcAvL1ZP1jZYrPTXSvqEOs1Ci7kPBuUb++GS7BKibznUXMomaLreMYm/e3srhgfmkVj5S8zQcE7cxmTTaOXrbUg8OyHVsHjrHmNJYBX9MJ4vycQB3r7NsqOcFM7C+b5Q/g/+PKVKMuP3e+M8Vv5rY/D8N20xEDDSeEsvUVKbK8WgVHKXbgA58FE4nMFEioUnPKp6yDaWcYCoa2ye8KGm5FEV8wlU751jAWrgrMhWpY4PXMQT7QZtMWWHQ45Z6YwQ16nOX6vA64k2a/A7kT+zUUtkx0CYz9CGle8zDjVo6LrUxtE2BbKNA8zUZuGKgzHbDHduM4w==",
    "retCode": "C0000",
    "retMsg": "成功"
}
8.返回参数说明
参数名 类型 说明 是否必返
bizType String 请求的接口
data String 加密信息域,需要解密
signature String 签名域
retCode String 返回码
retMsg String 返回信息
备注
  • retCode返回码解释如下:C5555:系统处理失败,C9999:系统异常,C0000:处理成功,其余返回码均表示具体的业务失败原因;

页面列表

ITEM_HTML