跳轉到主要內容
每次呼叫我方服務時都必須帶入 sign 參數。sign 由此次傳遞的參數加上 API Key 組合後產生。 採用單錢包時,我方呼叫貴司 API 也會以相同方式產生 sign,貴司請以相同方式驗證。

哪些參數要納入

  • 只納入各 API 參數表中標示「參與簽章」的欄位。沒有標示的欄位與 sign 本身都不納入。
  • 標示「參與簽章」的欄位即使沒有值也要納入。例如第一次查詢時 nextToken 為空字串,要以 nextToken= 的形式納入。
  • 參數值以實際送出的字串計算。例如 amount 送出 10.00,簽章時也要用 10.00,不能寫成 10。
  • 陣列參數以同名 key 重複出現,順序與送出時相同,例如 gameIDList=102&gameIDList=101。

產生步驟

  1. 依 key 升序排序:依參數名稱的字元碼(ASCII)排序,大寫字母排在小寫字母之前。
  2. URL-encode 並組成 query string:key 與 value 都要編碼,以 = 連接,參數之間以 & 連接。編碼規則如下:
    • 英文字母、數字與 -、_、.、~ 不編碼。
    • 空白編成 +。
    • 其餘字元以 UTF-8 編成 %XX,十六進位須為大寫,例如 : 編成 %3A、+ 編成 %2B。
  3. 接上 API Key 並計算 MD5:在 query string 後方直接接上 API Key,中間不加任何符號,計算 MD5 後以小寫十六進位字串(32 個字元)作為 sign。
時間參數編碼後的樣子:2025-12-01T00:00:00.000+08:00 會編成 2025-12-01T00%3A00%3A00.000%2B08%3A00。

範例

以存款為例,假設 API Key 為 a188va:

程式範例

以下範例都以上方的範例資料實際執行過,結果皆為 6368a5fd551daad9f202d7cda331bbeb。

簽章錯誤排查

回應訊息碼為 102(Sign invalid)時,請依序檢查:
  1. 是否只納入標示「參與簽章」的欄位,且沒有遺漏。
  2. 簽章用的參數值,是否與實際送出的值完全相同,包括小數位數與大小寫。
  3. 編碼是否為大寫十六進位,空白是否編成 +(不是 %20),~ 是否保持不編碼。
  4. MD5 結果是否為小寫。
  5. API Key 是否正確,前後不能有空白或換行。