微信支付API v3通過驗證簽名來保證請求的真實性和數(shù)據(jù)的完整性。
# 請求簽名
商戶需要使用自身的私鑰對API URL、消息體等關鍵數(shù)據(jù)的組合進行SHA-256 with RSA簽名。請求的簽名信息通過HTTP頭Authorization
傳遞,具體說明請見 簽名生成指南。沒有攜帶簽名或者簽名驗證不通過的請求,都不會被執(zhí)行,并返回401 Unauthorized
。
# 應答簽名
對于簽名驗證成功的請求,微信支付API v3會使用微信支付的平臺私鑰對應答進行簽名。簽名的信息包含在HTTP頭部中,具體說明請見 簽名驗證指南。
注意
- 請使用微信支付的公鑰進行驗簽,它包含在微信支付平臺證書中。
- 請對攜帶了簽名的應答進行驗簽。
- 沒有攜帶簽名的成功應答(HTTP狀態(tài)碼為2xx),應認為是偽造或被篡改的應答。
# 回調通知簽名
當調用商戶的接口時,微信支付會使用微信支付的平臺私鑰對回調請求進行簽名。簽名的方法同應答簽名的方式一致,商戶必須 使用微信支付公鑰驗證回調的簽名。
通知必須驗證微信支付簽名,避免被惡意攻擊。