## 签名生成算法
1. 设所有发送或者接收到的数据为集合M
2. 将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序)
3. 使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串
4. 将商户密钥拼接在字符串后面
5. 将拼接完之后的字符串进行md5加密,得到的加密结果就是签名
### 一、假设要传递的数据
```
uid: 1000
timestamp: 1548047628
```
### 二、将数据按字典排序
* 参数名ASCII码从小到大排序(字典序)
* 如果参数的值为空不参与签名
* 参数名区分大小写
* 接收回调时,回调中的sign参数不参与签名
* 接口有可能会增加参数,验证签名时必须支持增加的扩展字段
```
timestamp: 1548047628
uid: 1000
```
### 三、将数据拼接成字符串
```
timestamp=1548047628&uid=1000
```
### 四、拼接商户密钥
>[info] 假设商户密钥为`58b31d465652be856d7ed80977aa4ce4`
```
timestamp=1548047628&uid=100058b31d465652be856d7ed80977aa4ce4
```
### 五、加密字符串成签名
```
15540d3398e5ed2a37533e3fc032e1a0
```