# 签名计算规则示例：

# 以下仅做示例说明，实际的签名规则可自行设计。

### 简要描述：
- 除sign字段外，所有参数按照字段名的ascii码从小到大排序后，使用QueryString的格式（即key1=value1&key2=value2…）拼接成字符串后，再在前后追加上 商户密钥 的值，然后转换成32位大写的MD5字符串。
#### <font color='red'>注意事项：如空值参数是否参与签名需要在提供的文档中进行说明哈</font>

**假设 商户密钥 值为：** <font color='red'>rste57w8rsubsnxsb384ur3u9kn5fzhr0a091b3aa4324435aab703142518a8f7</font>

**假设请求参数为：**
```csharp
{
    "userId":"1001",
    "orderNo":"2023061917481700001",
    "productNo":"test01",
    "buyNum":1,
    "attach":"{\"account\":\"13888888888\"}",
    "maxAmount":""
    "timestamp":1687168097,
    "callbackUrl":"",
    "version":"1.0",
    "sign":"EF387ED4D401A275498A9FCC6C22116B"
}
```
**验签步骤：**
1. 转换成字符串如下：
```
attach={"account":"13888888888"}&buyNum=1&callbackUrl=&maxAmount=&orderNo=2023061917481700001&productNo=test01&timestamp=1687168097&userId=1001&version=1.0
```

2. 前后追加上  商户密钥 的MD5源串如下：
```
rste57w8rsubsnxsb384ur3u9kn5fzhr0a091b3aa4324435aab703142518a8f7attach={"account":"13888888888"}&buyNum=1&callbackUrl=&maxAmount=&orderNo=2023061917481700001&productNo=test01&timestamp=1687168097&userId=1001&version=1.0rste57w8rsubsnxsb384ur3u9kn5fzhr0a091b3aa4324435aab703142518a8f7
```

3. MD5后转成32位大写的签名值如下：
```
EF387ED4D401A275498A9FCC6C22116B
```





