## 簽名加密 / **加簽**
###### 最后更新日期:**2021-08-08 12:00:00**
*****
以下是計算簽名字段的步驟; 步驟一:發送的參數使用"鍵=值”的方式存儲,當前沒有 sign 參數 步驟二:使用“&”將參數的鍵值鏈接起來,例如:key1=value1&key2=value2....keyn=valuen,要注意計算簽名時, 會對 KEY 按照升序排列。 步驟三:將分配的秘鑰追加在步驟二生成字符串的后邊。 步驟四:最終 sign 將會是步驟三字符串的哈希值。對于接收的信息,接入方將使用相同的算法來計算簽名保證消息傳輸的準確性。**注意,biz_content是用urlencode處理后的值進行簽名運算。**
### **1 傳入的參數**
```
var param={ "app_key":"575d1166997f9b3359b37b36", "method":'oms.trade.add', "version":"1.0", "biz_content":"%7B%7D" }
```
### **2 字典排序生成待簽名字符串**
根據key排序得到:
```
var param={ "app_key":"575d1166997f9b3359b37b36", "biz_content":"%7B%7D", "method":'oms.trade.add', "version":"1.0"}
```
使用“&”和“=”連接參數組,得到:
```
var signString="app_key=575d1166997f9b3359b37b36&biz_content=%7B%7D&method=oms.trade.add&version=1.0"
```
### **3 加上token(signString+app\_secret)**
假設app\_secret 為1234567890abc
```
var signStringKey="app_key=575d1166997f9b3359b37b36&biz_content=%7B%7D&method=oms.trade.add&version=1.01234567890abc"
```
### **4 MD5**
```
var signature=MD5(signStringKey);
```
對字符串進行md5運算,結果字母取小寫