- 中文参数数据导致签名失效
现象: 英文参数没有问题,一旦使用中文就导致签名失效
分析: 淘宝或者阿里服务器在进行签名验证的时候会把数据解析为name-value的对,如果和调用时的name-value一致那么签名后的结果应该一致,觉得问题出现在name-value不一致导致的,因为我用的是apache的httpclient,里面默认没有设置发送的encode,查看源代码,发现使用的默认的iso8859-1发送的数据,所以导致在阿里或淘宝的服务器收到数据无法正确解析出来,导致签名不一致而签名错误
解决: 在发送的数据使用utf-8编码即可(某些接口可能需要gbk编码)
09-05
09-05
09-05