由支付寶官方為廣大開發人員提供的支付寶開放平臺開發助手是支付寶開放平臺推出的一鍵生成RSA密鑰工具,該工具也提供了簽名及驗簽功能,可以演示針對支付寶開放平臺接口的簽名和驗簽流程,windows版本工具請不要安裝在含有空格的目錄路徑下!

支付寶開放平臺開發助手常見問題
Q:RSA簽名涉及到的商戶角色有哪些?
A:通常由支付寶賬戶管理者登錄開放平臺上傳商戶應用公鑰,并記錄appid及支付寶公鑰信息。
技術同學得到 1).appid,2).商戶私鑰,3).支付寶公鑰,放到代碼里去簽名和驗簽。
Q: 什么是RSA算法?
A:RSA簽名算法是一種非對稱算法,RSA密鑰包括公鑰和私鑰兩部分,公鑰是公開信息,私鑰是保密信息。在開放平臺,開發者的私鑰由開發者自己保存;開發者的公鑰可對外公開。私鑰用于簽名,公鑰用于驗簽。開發者保存自己的私鑰,并對發給支付寶的信息進行簽名,支付寶通過使用開發者的公鑰進行驗簽;(支付寶端類似),通過這種方式保證信息傳輸的完整性以及發送者身份的真實性。
Q:和支付寶交換公鑰是什么意思?
A:開發者私鑰由開發者自行保管,把對應公鑰提供給支付寶。相應的,支付寶提供自己的公鑰給開發者,這稱為交換公鑰。
開發者使用開發者私鑰對請求內容簽名,支付寶收到請求后,會使用開發者公鑰進行驗簽,驗簽通過證明信息來源可靠并且未篡改。
支付寶發送給開發者的數據中,支付寶也會使用自己的私鑰進行簽名。商戶收到后,使用支付寶公鑰驗簽,驗簽通過證明是支付寶發送的消息,并且未篡改。
Q:開放平臺 openapi 網關接口和支付寶 mapi 網關接口簽名處理上有何區別?
A:開放平臺接口網關地址是 open.alipay.com,mapi網關地址是mapi.alipay.com。
簽名專區描述的內容是針對openapi網關接口的簽名和驗簽方法。如果是mapi網關接口,簽名規則有所區別,具體請參考對應接口文檔(歷史接口)中的簽名描述。
Q:開放平臺支持的“普通公鑰”、“公鑰證書”兩種簽名方式有什么區別?
A:在報文簽名場景下,報文接受方使用發送方的公鑰進行報文驗簽,該功能兩種簽名方式都可以實現。而證書簽名方式的優勢在于引入了CA機構對公鑰持有者進行身份識別,保證該證書所屬實體的真實性,以實現報文的抗抵賴。
Q:原使用“普通公鑰”簽名方式的應用如何升級“公鑰證書”簽名方式?
A:開發者登陸開放平臺,在應用“加簽方式”設置頁面,選擇“公鑰證書”方式,再在該頁面中通過“上傳CSR文件在線生成證書”或“上傳已申請證書”兩種方式設置應用的公鑰證書,具體操作詳見簽名專區教程。
注意:對于從“公鑰”變更到“公鑰證書”簽名方式的應用,在變更一周內允許開發者撤銷證書回退到“公鑰”模式;變更一周后不允許再回退到原模式。開發者調用支付寶網關的代碼也需要升級,否則變更一周后原來的“公鑰”模式接入會被支付寶網關攔截而無法成功調用。
Q:老應用公鑰證書如何更換成新公鑰證書?
A:開發者登陸開放平臺,在應用“加簽方式”設置頁面,選擇“公鑰證書”方式,再在該頁面中通過“上傳CSR文件在線生成證書”或“上傳已申請證書”兩種方式設置應用新應用公鑰證書,具體操作詳見簽名專區教程。
注意:
上傳新應用公鑰證書后,開放平臺將為老應用公鑰證書保留7天有效期(若在這7天內老證書到期,以老證書自身過期時間點為準),超過7天后老證書將不可用。開發者務必在更新證書后7天時間內,更換接入開放平臺網關代碼中的應用公鑰證書,否則7天后開放平臺網關將驗簽失敗。
生成商戶私鑰/支付寶公鑰教程:
1、先下載支付寶開放平臺開發助手 和官方教程

2、找到生成的公鑰、私鑰



應用私鑰2048.txt也就是商戶私鑰
3、生成支付寶公鑰

我們把“商戶應用公鑰”到支付寶開放平臺,把工具生成的“商戶應用公鑰”填寫進入,保存即可。然后我們可以看到系統會生成對應的“支付寶公鑰”,點擊“查看支付寶公鑰”:
保存
4、取得支付寶公鑰 查看

