請求與回應格式
請求
- 一律使用 HTTPS 與
POST,Content-Type: application/json,本文以 UTF-8 編碼。 - 本文是一個 JSON 物件。所有欄位值都必須是 JSON 字串,金額也一樣,例如
"amount": "1000.00";送數字1000.00會失敗(回invalid_signature或invalid_parameter)。 - 每個請求都必須帶
api_identity、timestamp與sign(見簽章)。 timestamp是送出請求當下的時間,格式同下方的時間(UTC+8,yyyy-MM-dd HH:mm:ss)。與 ST Pay 伺服器時間相差超過 5 分鐘(過去或未來都算)的請求會被拒絕,回timestamp_expired。請讓伺服器開啟 NTP 時間同步。- 選填欄位送空字串
"",視同沒送。
回應
所有 API 都回傳相同結構:
| 欄位 | 說明 |
|---|---|
code | 成功為 OK,失敗為英文錯誤碼(見錯誤碼)。程式請以此欄位判斷結果。 |
message | 繁體中文說明,給人閱讀用,內容可能調整,請勿用來判斷。 |
data | 成功時為回傳資料,失敗時為 null。 |
HTTP 狀態碼:成功為 200,失敗則依錯誤種類回傳 4xx 或 5xx(見錯誤碼)。
{
"code": "merchant_order_no_duplicate",
"message": "商戶單號重複",
"data": null
}
資料格式
| 類型 | 格式 |
|---|---|
| 金額 | 字串。請求:大於 0、最多 2 位小數(照字面算,"1000.500" 是 3 位)、不超過 9999999999999999.99,只能有數字與小數點,例如 "1000"、"1000.5"、"1000.50"。"1,000.00"、"1000.001"、"-5"、"0" 都不合法。回應與 Callback 的金額一律是 2 位小數,例如 "1000.50"。不帶幣別欄位。 |
| 時間 | 字串,UTC+8,格式 yyyy-MM-dd HH:mm:ss,例如 "2026-10-13 10:30:05"。 |
訂單號 order_no | ST Pay 產生的字串。請當作不透明字串保存,不要解析內容或依賴格式。 |
商戶單號 merchant_order_no | 由您產生,1 至 200 字元,只能包含英數字、底線 _、連字號 -。 |
資料保存期限
訂單自建立起保存 6 個月,之後會被刪除。刪除後查單會回 order_not_found,該商戶單號也可以再次使用。