请求与响应格式
请求
- 统一使用 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,该商户单号也可以再次使用。