Signature generation
The following information is provided as an example. Taking the addition of a deposit order as an example, the required parameters are:
| Parameter | Value |
|:---- |----- |
|apiKey|testApiKey |
|customerNo| test100000 |
|channel|bank |
|amount|100.00 |
|notifyUrl|http://test.com/getNotify |
|ip|127.0.0.1 |
After sorting the above parameter array by name in ascending order, the data will be arranged in the order shown in the table below.
| Parameter | Value |
|:---- |----- |
|amount|100.00 |
|apiKey|testApiKey |
|channel|bank |
|customerNo| test100000 |
|ip|127.0.0.1 |
|notifyUrl|http://test.com/getNotify |
After sorting the data, concatenate it into a string. Please note that the 'notifyUrl' does not need to be URL-encoded, otherwise it will result in an incorrect signature.
```
amount=100.00&apiKey=testApiKey&channel=bank&customerNo=test100000&ip=127.0.0.1¬ifyUrl=http://test.com/getNotify
```
After appending the key to the concatenated string, it will become the following string:
```
amount=100.00&apiKey=testApiKey&channel=bank&customerNo=test100000&ip=127.0.0.1¬ifyUrl=http://test.com/getNotifytestSecretKey
```
Finally, after performing MD5 encoding, the correct signature will be obtained.
```
5d50a182db6fa8a347cc85f36ca492f2
```
Note 1: For callback APIs, please encrypt according to the **returned content**. For non-callback APIs, encrypt based on the **contents of the data** array.
Note 2: If the content of a parameter is empty or null, it does not need to be included in the signature string.