## 簽名生成算法
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
```