-
微信支付的API使用https传输,已经可以保证完整性和传输加密,为什么在报文中,又要求做一次签名呢? 直接传递用户名和密码不行么?
补充:https还需要防范中间人攻击; 对内容再次进行签名可以防范中间人攻击。
但是,如果客户端正确校验服务端证书的合法性, 也可以有效防止中间人攻击,但为什么几大部分的支付类API都选择了对内容进行签名呢?
微信支付的退款API需要客户端安装商户证书,服务端会要求进行客户端证书认证。问题是,既然有了https + 签名, 已经可以保证完整性、机密性和抗抵赖,再加一个客户端证书认证是什么目的呢?
附上微信的开发文档
大概是为了更严格的安全吧。