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&notifyUrl=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&notifyUrl=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.