签名

微信支付API v3通过验证签名来保证请求的真实性和数据的完整性。

请求签名

商户需要使用自身的私钥对API URL、消息体等关键数据的组合进行SHA-256 with RSA签名。请求的签名信息通过HTTP头Authorization传递,具体说明请见签名生成指南。没有携带签名或者签名验证不通过的请求,都不会被执行,并返回401 Unauthorized

应答签名

对于签名验证成功的请求,微信支付API v3会使用微信支付的平台私钥对应答进行签名。签名的信息包含在HTTP头部中,具体说明请见签名验证指南

  • 请使用微信支付的公钥进行验签,它包含在微信支付平台证书中

  • 请对携带了签名的应答进行验签

  • 没有携带签名的成功应答(HTTP状态码为2xx),应认为是伪造或被篡改的应答

回调通知签名

当调用商户的接口时,微信支付会使用微信支付的平台私钥对回调请求进行签名。签名的方法同应答签名的方式一致,商户必须使用微信支付公钥验证回调的签名。

通知必须验证微信支付签名,避免被恶意攻击