1.签名计算

本系统所有的接口使用统一的入参对象,其中Sign属性是统一的签名字段,Message是消息体,请求参数的集合,除公共参数外所有请求参数都必须放在这个参数中传递,签名结果统一在入参对象的Sign节点体现,实现签名步骤如下:

1:将请求对象中的消息体先进行消息加密(加密方式请阅读消息体加密文档)后赋值到Message节点下,示例代码:

string message = AesHelper.Encrypt(queryOrder.ToJsonString(), aesKey).ToUrlEncode();

2:将参数对象属性转换为key-value对,根据Key正序排序;

3:将key-value对拼接成&=的字符串,示例:

Appid=10060&Message=agCAgM3aGKpdxEukBfg5Oflfr2XhxiD694r4bF0WbY9ShjcEpMq4%2fLppM1QxzBEfSyiAxXZjbCAF9ydnwyut%2bws1XpEW%2frkAyXwXxqzsLLwWOV%2bTlFWVj79ky2BWlDpgH%2fb0a5r6LWqwYd9ZCkjcK8osYB6kT48XYwDiNpJ1x9rKEXHBJhMO2rx%2b2HhtPvbK3%2fuT1gUF3gmzIO9N9AKIwBUs7eAXyYzMJojLJ4e5WxLXLDhCg5rBmbpFNUdltmoVffmj3mKe9dYmlpIKT%2fvn8gve3bFc%2fgYwxElEkQJ2I8hb581tQo0DAXekb6zhZR4ikUJEf%2b7iyJTu9UQNE7LFYmEbFys63QoXQwg8Fm7o6IRqMkhcBtHZBU65JOqp9ly8DSC4Sy2rBNud4qZtT7YkpbiH5fVw9%2btbPf6kcuF761rHL4ZShPvhjMUhDDLANWAE6y2BbZVKkoAUFi7zwrZsFAH2s3jdHSASVqFZeHbeSVz0f8%2blTeufdbAqw7KT0vHsQrKetWQjKhT8v895J%2bz8a7DpcaM25xUVcTxPUp4cX7cDtZ%2byliPhErCq5WvZBX1V&Timestamp=1597125073

4:将转成的&=字符串加上aes_key后的字符串进行MD5后转大写,示例代码:

(input + aeskey).MD5().ToUpper()

注意:

1:参数中的sign节点不参与签名计算过程