通知返回时sign与mysign为什么不相等
通知返回时,支付宝返回给商家网站众多信息中,包含一个签名结果(sign),商家对其他所有信息进行加密签名后会得到一个签名结果(mysign),如果要验证接口其有效性,需要把sign与mysign做比较,在MD5加密中,是做相等校验。
而出现不等的原因是:
安全校验码没有填写或填写不正确、请求时的参数格式不正确(如:有带自定义参数等)、编码格式混乱等。
解决方法:
1、检查安全校验码(参数key)是否有填写,且没有空格,是否是32位字符串
2、检查请求参数show_url、return_url、notify_url是否有带自定义参数,去掉自定义参数,
http://www.xxx.com/alipay/return_url.asp?id=123
?id=123,“?”以后带的参数都是自定义参数
3、 编码格式乱码。检查乱码的方法,可用写日志函数(log_result)来记录中文部分的数据是否乱码。如果乱码则确定是编码格式设置不一致,导致乱码。具体请检查编码格式参数input_charset、页面属性编码、网站项目整体编码等,确保传递数据时没有乱码。