簽名驗證
拼接 (Concatenate)
首先,商戶從響應中獲取以下資訊。
HTTP 標頭
TTPay-Timestamp中的回覆時間戳。HTTP 標頭
TTPay-Nonce中的回覆隨機字串。響應消息體 (Response Body),根據接口返回的順序進行校驗。順序不正確會導致校驗失敗。
簽名字串共有三行,每行一個參數。行尾以 \n(換行符,ASCII 編碼值為 0x0A)結束,最後一行不添加 \n。如果參數本身以 \n 結尾,您仍需額外附加一個 \n。
Reply timestamp\n
Reply random string\n
Reply message body例如,HTTP 回覆消息如下:
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 02 Apr 2019 12:59:40 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 2204
Connection: keep-alive
Keep-Alive: timeout=8
Content-Language: zh-CN
TTPay-Nonce: c5ac7061fccab6bf3e254dcf98995b8c
TTPay-Signature: CtcbzwtQjN8rnOXItEBJ5aQFSnIXESeV28Pr2YEmf9wsDQ8Nx25ytW6FXBCAFdrr0mgqngX3AD9gNzjnNHzSGTPBSsaEkIfhPF4b8YRRTpny88tNLyprXA0GU5ID3DkZHpjFkX1hAp/D0fva2GKjGRLtvYbtUk/OLYqFuzbjt3yOBzJSKQqJsvbXILffgAmX4pKql+Ln+6UPvSCeKwznvtPaEx+9nMBmKu7Wpbqm/+2ksc0XwjD+xlvlECkCxfD/OJ4gN3IurE0fpjxIkvHDiinQmk51BI7zQD8k1znU7r/spPqB+vZjc5ep6DC5wZUpFu5vJ8MoNKjCu8wnzyCFdA==
TTPay-Timestamp: 1554209980
Cache-Control: no-cache, must-revalidate
{"app_id":"xxxx"}那麼簽名字串為:
回覆 (Reply)
tokenpay 的回覆簽名透過 HTTP 標頭 TTPay-Signature 傳輸。(註:此為示例,因排版可能包含換行,實際數據應在同一行)
判斷 (Judgment)
使用 AES-256-ECB 方法生成簽名(您可以參考簽名生成)。將生成的簽名與回覆簽名進行對比。如果不一致,則說明數據被篡改過。
最後更新於