微信支付API v3通过验证签名来保证请求的真实性和数据的完整性。
商户需要使用自身的私钥对API URL、消息体等关键数据的组合进行SHA-256 with RSA签名。请求的签名信息通过HTTP头Authorization 传递,具体说明请见 签名生成指南。没有携带签名或者签名验证不通过的请求,都不会被执行,并返回401 Unauthorized 。
对于签名验证成功的请求,微信支付API v3会使用微信支付的平台私钥对应答进行签名。签名的信息包含在HTTP头部中,具体说明请见 签名验证指南。
注意:
当调用商户的接口时,微信支付会使用微信支付的平台私钥对回调请求进行签名。签名的方法同应答签名的方式一致,商户必须使用微信支付公钥验证回调的签名。
注意:
通知必须验证微信支付签名,避免被恶意攻击