5.4.5 城市节点网关Xuperchain API

5.4.5.1 应用接入签名算法

  链下业务系统向城市节点网关发送交易请求时,需使用应用接入密钥对中的私钥对交易请求报文进行数字签名,节点网关接收到交易请求报文后,使用已上传或托管的密钥对中的公钥对该报文进行验签。只有在交易报文验签通过时,网关才会对交易请求报文进行后续的交易处理。具体签名算法如下:

  1. 组装签名字符串

  将请求参数按照文档参数表格中的顺序转换为字符串进行拼接,其中请求参数优先拼接Header中的UserCode、AppCode;返回参数优先拼接code、msg,然后再次按照文档参数顺序拼接Body中的参数。

  2.不同类型的转换格式

类型 规则 示例 结果
String 不转换 abc abc
int/int64/long 十进制转换 -12 -12
float 十进制转换,小数位参考备注 1.23 1.23
bool 转换为“true”或者“false” true true
Array 按照参数顺序和类型拼接 [“abc”,”xyz”] abcxyz
Map[key]value 按照顺序拼接key和value [“a”:1,”b”:2] a1b2
Object 将对象内的属性按照文档循序依据上述格式转换 {“name”:”abc”,”secret”:”123456”} abc123456
  3. 签名规则

  • 哈希值计算:将需要签名的字符串按照UTF-8编码做SM3计算;
  • 对哈希值获取签名:将哈希值与私钥进行SM2签名计算;
  • 将签名结果做Base64计算。

  4. 示例参数

   {
       "header":{
           "userCode":"user01",
           "appCode":"app01"
        },
        "mac":"",
        "body":{
            “userId”:”abc”,
            ”list”:[“abc”,”xyz”]
        }
    }

  结果:user01app01abcabcxyz

Copyright 北京红枣科技有限公司

results matching ""

    No results matching ""

    results matching ""

      No results matching ""