Skip to main content
啟潤支付的每個 Webhook 請求都包含一個加密簽名,你應該驗證此簽名以確保請求是真實的且未被篡改。

簽名演算法

啟潤支付使用 HMAC-SHA256 對 Webhook 載荷進行簽名:
簽名和時間戳透過 HTTP 請求標頭發送:

驗證步驟

1

提取請求標頭

從請求標頭中讀取 X-Kyren-SignatureX-Kyren-Timestamp
2

檢查時間戳

驗證時間戳在當前時間的 5 分鐘(300000 毫秒)以內。這可以防止重放攻擊。
3

計算預期簽名

拼接 timestamp + "." + 原始請求本體,然後使用你的 Webhook 密鑰計算 HMAC-SHA256。
4

比較簽名

將計算出的簽名與請求標頭中的簽名進行比較。使用常數時間比較以防止時序攻擊。

程式碼範例

Node.js

Python

Go

重要安全注意事項:
  • 處理事件前必須先驗證簽名
  • 使用常數時間比較函數以防止時序攻擊
  • 拒絕時間戳超過 5 分鐘(300000 毫秒)的請求以防止重放攻擊
  • 使用原始請求本體進行簽名驗證(JSON 解析之前)