错误代码
PayerScan API 使用标准化的错误响应格式。所有错误遵循一致的结构,便于商户后端处理。
错误响应结构
{
"status": "error",
"message": "Invalid API key. Please check your API key and try again.",
"error_code": "INVALID_API_KEY",
"request_id": "ORDER_123456",
"details": { ... }
}
属性说明:
status:始终为"error"。message:人类可读的错误描述。error_code:机器可读的错误代码,UPPER_SNAKE_CASE格式。使用switch/case自动处理。request_id(可选):您的订单 ID,仅在创建发票时提供后返回。details(可选):错误的附加上下文(如验证错误、字段名称)。
错误代码参考
认证错误
| 错误代码 | HTTP | Message | 解决方案 |
|---|---|---|---|
MISSING_API_KEY | 401 | Missing API key. Please provide x-api-key header. | 在请求中添加 x-api-key header。 |
INVALID_API_KEY | 401 | Invalid API key. Please check your API key and try again. | 在 Dashboard 上验证您的 API key。 |
ACCOUNT_INACTIVE | 403 | Merchant account is inactive. Please contact support to reactivate. | 联系 PayerScan 支持。 |
STORE_INACTIVE | 403 | Store is inactive. Please contact support to reactivate your store. | 在 Dashboard 上重新启用商店。 |
AUTHENTICATION_FAILED | 500 | Authentication failed. Please try again later. | 稍后重试;如果持续出现,请联系支持。 |
验证错误
| 错误代码 | HTTP | Message | 解决方案 |
|---|---|---|---|
VALIDATION_ERROR | 400 | Validation failed. Please check your request body. | 检查 details.errors 了解具体字段问题。 |
INVALID_MERCHANT_ID | 400 | Invalid merchant_id. The merchant_id does not match your API key. | 确保 merchant_id 与 API key 的商店匹配。 |
业务逻辑错误
| 错误代码 | HTTP | Message | 解决方案 |
|---|---|---|---|
INSUFFICIENT_BALANCE | 402 | Insufficient balance. Please top-up your account to continue. | 在 PayerScan Dashboard 充值。查看 details 了解缺少金额。 |
NO_PAYMENT_METHOD | 400 | No payment method configured. Please add at least one wallet or exchange platform. | 在 Dashboard 上添加钱包或连接交易所平台。 |
发票错误
| 错误代码 | HTTP | Message | 解决方案 |
|---|---|---|---|
INVOICE_NOT_FOUND | 404 | Invoice not found. | 验证 trans_id 并确保属于您的商店。 |
MISSING_TRANS_ID | 400 | Missing trans_id in URL. | 在 URL 路径中包含 trans_id:GET /invoice/:trans_id。 |
INVALID_TRANS_ID_FORMAT | 400 | Invalid trans_id format. | 使用正确格式:TID-XXXXXXXXXXXXXXXX。 |
速率限制错误
| 错误代码 | HTTP | Message | 解决方案 |
|---|---|---|---|
RATE_LIMIT_EXCEEDED | 429 | Too many requests per second. / Rate limit exceeded. | 等待 retry_after_seconds 后重试。参见速率限制。 |
服务器错误
| 错误代码 | HTTP | Message | 解决方案 |
|---|---|---|---|
INTERNAL_ERROR | 500 | Internal server error. Please try again later. | 使用指数退避重试。如果持续出现,请联系支持。 |