# [原] 支付寶開放平臺使用 openssl 生成密鑰並配置密鑰

除了使用支付寶提供的一鍵生成工具外,也能夠使用OpenSSL工具命令生成密鑰。算法

支付寶的驗籤流程

①:商戶上傳本身的商戶公鑰到支付寶服務器 ②:使用商戶私鑰請求籤名參數 ③:簽名之後的參數請求到支付寶 ④:支付寶服務器使用商戶上傳的商戶公鑰,驗籤商戶請求參數,並處理支付結果 ⑤:對商戶支付結果使用支付寶私鑰簽名 ⑥:商戶使用支付寶公鑰驗籤支付返回的支付結果bash

1. 生成密鑰

首先進入OpenSSL工具,輸入如下命令。服務器

$ openssl
# 生成私鑰, 新建應用請務必使用2048位
OpenSSL> genrsa -out app_private_key.pem  2048
#Java開發者須要將私鑰轉換成PKCS8格式
OpenSSL> pkcs8 -topk8 -inform PEM -in app_private_key.pem -outform PEM -nocrypt -out app_private_key_pkcs8.pem 
#生成公鑰
OpenSSL> rsa -in app_private_key.pem -pubout -out app_public_key.pem
OpenSSL> exit #退出OpenSSL程序
複製代碼

通過以上步驟,開發者能夠在當前文件夾中(OpenSSL運行文件夾),看到app_private_key.pem(開發者RSA私鑰,非Java語言適用)、app_private_key_pkcs8.pem(pkcs8格式開發者RSA私鑰,Java語言適用)和 app_public_key.pem(開發者RSA公鑰)3個文件。開發者將私鑰保留,將公鑰提交給支付寶配置到開發平臺,用於驗證簽名。如下爲私鑰文件和公鑰文件示例。app

**TIPS:**對於使用Java的開發者,需將生成的pkcs8格式的私鑰去除頭尾、換行和空格,做爲私鑰填入代碼中,對於.NET和PHP的開發者來講,無需進行pkcs8命令行操做。工具

標準的私鑰文件示例(PHP、.NET使用)ui

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQ......k592
-----END RSA PRIVATE KEY-----
複製代碼

PKCS8處理後的私鑰文件示例(Java使用)spa

MIICeAIBADANBgk......PcUDUh2/
複製代碼

公鑰文件示例命令行

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSq......IDAQAB
-----END PUBLIC KEY-----
複製代碼

將公鑰文件去除頭尾、換行和空格,轉成一行字符串。把該字符串提供給支付寶帳號管理者,登陸開放平臺上傳應用公鑰並獲取支付寶公鑰。教程3d

若是須要使用文件方式(如PHP/.NET版本)讀取支付寶公鑰,須要在頭尾加入標示後保存至文件```code

2. 上傳支付寶

點擊簽名驗籤工具右下角的「上傳公鑰」會打開支付寶開放平臺網頁,輸入帳號登陸。

在「個人應用」中,選擇要配置密鑰的應用,點擊「查看」。記錄對應的APPID(下圖紅框處),在代碼中使用。

在「應用信息」-「接口加簽方式」下方點擊「設置應用公鑰」。

!!!!!!注意!!!!!! 1)接口中的sign_type參數應與上傳密鑰的加簽方式一致。例如接口參數中sign_type=RSA2,請求時就會使用此處設置的RSA2(SHA256)公鑰驗籤。 2)新建應用僅支持RSA2加簽方式,詳情請見開放平臺接口簽名方式升級公告

根據開發者的條件設置應用公鑰或上傳公鑰證書,常規請點擊設置應用公鑰。

3. App 對接支付寶流程

參考文章

相關文章
相關標籤/搜索