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