跳至主要内容

簽名說明

為保證數據傳輸的安全,我們採用 MD5 加密算法。

請注意:支付寶代付,銀行卡代付,查詢餘額接口 也需要參數簽名。

一、簽名規則

1. 參數整理

將所有發送至 api 的 key=value 資料,根據 key 的 ASCII 碼由小至大排序(字典序)。

排除以下參數:

  • sign(簽名本身)
  • sign_type(簽名類型,如使用)
  • 值為空的參數(Empty String)

2. 拼接參數字符串

將排序好的參數以 key=value 的形式,用 & 字符連接起來。

例如:

amount=50000&notify_url=https://xxx.xxx&payment_cl_id=DEVPM00014581&platform_id=PF0002&request_time=1595504136&service_id=SVC0001

3. 拼接密鑰 (Platform Key)

在上述字符串的最後,拼接上 &key={your_platform_key}

例如:

amount=50000&notify_url=https://xxx.xxx&payment_cl_id=DEVPM00014581&platform_id=PF0002&request_time=1595504136&service_id=SVC0001&key=ThisIsYourSecretKey123

4. 生成簽名 (MD5)

對拼接後的最終字符串進行 MD5 加密,並將結果轉換為 小寫 32位 字符串。這就是您的 sign 值。

二、簽名代碼示例 (Java)

public static String sign(String content, String key) {
String signStr = content + "&key=" + key;
return DigestUtils.md5Hex(signStr).toLowerCase();
}

三、驗證簽名

接收回調通知或查詢結果時,response 中也會包含 sign 參數。請使用相同的規則(將所有返回參數除 sign 外排序拼接)加上您的 key 進行 MD5 計算,並比對結果是否一致,以確保數據未被竄改。