Why sign and dinpaysign are not equal when returning notification?

When returning notification, there is one signature result (sign) and another signature result (dinpaySign) which is the encrypted signature delivered by merchant towards all other information in among information from Dinpay to merchant website. If requires to verify the validity of the interface, will compare the sign and dinpaySign in MD5 encryption.
The reason of why unequal occurs:
Empty Private Key or invalid Private Key, invalid parameter format upon request (such as: include self-defined parameter and other), confusion arise from coding format and others.
Solution:
1. Make sure Private Key (parameter key) is filled and no space is required, up to 20 characters strings
2. Remove self-defined parameter from request parameter show_url, return_url, notify_url. http://www.xxx.com/return_url.asp?id=123?id=123,the parameter follow after “?” is self-defined parameter.
3. Coding format error. May use log function (log_result) to record data in Chinese to check whether there is any messy code. If there is messy code, it is due to different coding format setting. Check the coding format parameter input-charset, webpage attribute code, overall code for web application, etc. ensure no messy code when transmitting data.