微信支付 V3 接口涉及到多個密鑰番刊,以及安全概念狐肢。這里幫大家做了一個梳理亿傅。
V3 接口涉及的密鑰概念
參考:私鑰和證書
商戶 API 證書
用途:用于調(diào)用所有 V3 接口;
含義:包含商戶號嚷炉,公司名稱十厢,商戶公鑰信息
獲取方法:有財務老師在微信商戶后臺申請等太。【通過微信提供的工具蛮放,填入商戶號缩抡,公司名稱等進行申請】
商戶 API 私鑰
用途:簽名
獲取方法:在申請商戶 API 證書時,申請工具會生成該私鑰包颁。
APIv3 密鑰
用途:特定接口(通知瞻想,平臺證書下載)結(jié)果信息中,關(guān)鍵敏感信息的解密
獲取方法:商戶自定義(32字節(jié))娩嚼,然后配置到商戶后臺蘑险。
注意:該密鑰與商戶API私鑰沒有任何關(guān)系,設(shè)置該密鑰也不會導致商戶API私鑰失效岳悟。
微信支付平臺證書
用途:響應和通知的驗簽佃迄,敏感信息加密
注意:由于微信存在多個平臺證書泼差,我們需要根據(jù)序列號,采取對應證書內(nèi)的公鑰來驗簽
含義:包含微信支付平臺的身份信息呵俏,商戶公鑰信息
獲取方法:調(diào)用接口
主要安全流程
簽名
調(diào)用微信支付平臺v3 API 時堆缘,需要使用商戶 API 私鑰對請求報文進行 SHA-256 with RSA 簽名∑账椋【簽名信息存放于頭中】
參考:如何生成請求簽名
驗簽
微信支付平臺會對其響應報文吼肥,以及通知報文進行 SHA-256 with RSA 簽名。作為商戶随常,需要使用微信支付平臺證書內(nèi)的公鑰潜沦,對簽名進行驗簽。
參考:如何驗證簽名
敏感信息加解密
商戶請求微信:商戶使用微信支付平臺證書公鑰绪氛,對敏感信息進行 RSA 公鑰加密。
微信返回結(jié)果:商戶使用商戶 API 私鑰涝影,對響應的敏感信息密文進行 RSA 解密枣察。
參考:如何加解密敏感信息
平臺證書與通知報文解密
針對兩個特殊場景【微信平臺證書獲取接口】,【通知】:我們使用 APIv3 密鑰基于 AES-256-GCM 做對稱加解密燃逻。
國密
為了支持國家信息安全的號召序目,微信是可以提供支持國密SM2/3/4的v3接口交互的。商戶可聯(lián)系微信技術(shù)支持申請伯襟。
參考:國家商用密碼簡介