Photo Enhancer API 文档#
© Ideal House AI — 版权所有。
基础 URL:
https://api.ideal.house
版本: v1
更新日期: 2026-04-17
概述#
Photo Enhancer API 允许您通过选择 presetId、提供自定义 prompt 或两者结合,异步增强房地产照片。
当前请求模型:
presetId为可选参数。prompt为可选参数。presetId和prompt不能同时为空。至少需要提供其中之一。- 使用
imageUrl作为唯一的图片输入字段。 imageUrl支持单图和多图格式。
工作流程:
- 调用生成端点并获取
taskId。 - 使用该
taskId轮询结果端点。 - 任务成功后,读取生成的图片 URL。
认证#
所有 API 请求必须在请求头中包含您的 API 密钥。
| 请求头 | 是否必填 | 说明 |
|---|---|---|
APIKEY | 是 | 您的 API 认证密钥 |
Content-Type | 是 | POST 请求的 application/json |
积分#
每次成功创建任务扣除 10 积分。如果任务后续失败,积分将自动退还。
有关积分规则,请参阅 credits-deduction.md。
端点#
1. 创建任务#
创建新的图片增强任务。
端点
POST /api/v1/photoEnhancer/generate
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
presetId | string | 否 | 可选的预设请求值。从预设参考中选择一个。 |
imageUrl | string | array<string> | 是 | 图片输入。支持单个 URL 字符串,或如 ["https://a.jpg", "https://b.jpg"] 的 URL 数组。 |
prompt | string | 否 | 可选的自定义提示文本。 |
imageSize | string | 否 | 可选的输出尺寸。支持的值:512、1K、2K、4K。对于 API 调用,如果省略,服务器默认为 4K。 |
图片要求: 每张输入图片必须使用 JPG/JPEG、PNG 或 WebP 格式。每张图片大小不得超过 20 MB,尺寸为 128 × 128 px 至 6,000 × 6,000 px(含边界)。超过最大像素尺寸的图片会自动按比例缩小以适合 6,000 × 6,000 px,然后再进行处理。图片 URLs 必须能被 API 服务器直接访问。
imageUrl 格式
单张图片:
{
"imageUrl": "https://example.com/room.jpg"
}
多张图片:
{
"imageUrl": [
"https://example.com/room_1.jpg",
"https://example.com/room_2.jpg"
]
}
行为说明
imageUrl是该 API 的唯一请求图片字段。presetId可以省略。prompt可以省略。presetId和prompt不能同时为空。至少需要提供其中之一。- 如果
imageUrl是普通 URL 字符串,则任务使用一张图片。 - 如果
imageUrl是数组,服务器会将其解析为内部图片列表。 hdr-merge-hdr-merge是为多图设计的预设。- 多图通常仅在
hdr-merge-hdr-merge下能产生最佳效果。 - 其他
presetId值并非为多图生成设计。如果使用它们提交多张图片,生成的结果可能不佳。建议使用单图输入。
请求示例#
cURL
# Single image example
curl -X POST "https://api.ideal.house/api/v1/photoEnhancer/generate" \
-H "APIKEY: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://example.com/exterior.jpg",
"presetId": "virtual-twilight-warm-sunset-twilight",
"imageSize": "4K"
}'
# HDR Merge example - multi-image input
curl -X POST "https://api.ideal.house/api/v1/photoEnhancer/generate" \
-H "APIKEY: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"imageUrl": [
"https://example.com/interior_under.jpg",
"https://example.com/interior_mid.jpg",
"https://example.com/interior_over.jpg"
],
"presetId": "hdr-merge-hdr-merge",
"imageSize": "4K"
}'
# Prompt-only example
curl -X POST "https://api.ideal.house/api/v1/photoEnhancer/generate" \
-H "APIKEY: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://example.com/interior.jpg",
"prompt": "Brighten the room, keep the lighting natural, and make the image listing-ready.",
"imageSize": "4K"
}'
Java (OkHttp)
import okhttp3.*;
import java.io.IOException;
public class PhotoEnhancerApiExample {
private static final String BASE_URL = "https://api.ideal.house";
private static final String API_KEY = "your_api_key_here";
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
// Single image example
String requestBody = """
{
"imageUrl": "https://example.com/exterior.jpg",
"presetId": "virtual-twilight-warm-sunset-twilight",
"imageSize": "4K"
}
""";
// HDR Merge example - multi-image input
// String requestBody = """
// {
// "imageUrl": [
// "https://example.com/interior_under.jpg",
// "https://example.com/interior_mid.jpg",
// "https://example.com/interior_over.jpg"
// ],
// "presetId": "hdr-merge-hdr-merge",
// "imageSize": "4K"
// }
// """;
// Prompt-only example
// String requestBody = """
// {
// "imageUrl": "https://example.com/interior.jpg",
// "prompt": "Brighten the room, keep the lighting natural, and make the image listing-ready.",
// "imageSize": "4K"
// }
// """;
Request request = new Request.Builder()
.url(BASE_URL + "/api/v1/photoEnhancer/generate")
.addHeader("APIKEY", API_KEY)
.addHeader("Content-Type", "application/json")
.post(RequestBody.create(requestBody, MediaType.parse("application/json")))
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println("Response: " + response.body().string());
}
}
}
Python (requests)
import requests
BASE_URL = "https://api.ideal.house"
API_KEY = "your_api_key_here"
headers = {
"APIKEY": API_KEY,
"Content-Type": "application/json"
}
# Single image example
payload = {
"imageUrl": "https://example.com/interior.jpg",
"presetId": "image-optimization-full-correction-suite",
"prompt": "Keep the result natural and listing-ready."
}
# HDR Merge example - multi-image input
# payload = {
# "imageUrl": [
# "https://example.com/interior_under.jpg",
# "https://example.com/interior_mid.jpg",
# "https://example.com/interior_over.jpg"
# ],
# "presetId": "hdr-merge-hdr-merge",
# "imageSize": "4K"
# }
# Prompt-only example
# payload = {
# "imageUrl": "https://example.com/interior.jpg",
# "prompt": "Brighten the room, keep the lighting natural, and make the image listing-ready.",
# "imageSize": "4K"
# }
response = requests.post(
f"{BASE_URL}/api/v1/photoEnhancer/generate",
headers=headers,
json=payload
)
data = response.json()
task_id = data.get("data")
print(f"Task ID: {task_id}")
Node.js (axios)
const axios = require('axios');
const BASE_URL = 'https://api.ideal.house';
const API_KEY = 'your_api_key_here';
async function createPhotoEnhancerTask() {
try {
const response = await axios.post(
`${BASE_URL}/api/v1/photoEnhancer/generate`,
{
imageUrl: 'https://example.com/interior.jpg',
presetId: 'image-quality-correction-ai-photo-sharpening',
imageSize: '4K'
// HDR Merge example - multi-image input:
// imageUrl: [
// 'https://example.com/interior_under.jpg',
// 'https://example.com/interior_mid.jpg',
// 'https://example.com/interior_over.jpg'
// ],
// presetId: 'hdr-merge-hdr-merge',
// imageSize: '4K'
// Prompt-only example:
// imageUrl: 'https://example.com/interior.jpg',
// prompt: 'Brighten the room, keep the lighting natural, and make the image listing-ready.',
// imageSize: '4K'
},
{
headers: {
'APIKEY': API_KEY,
'Content-Type': 'application/json'
}
}
);
console.log('Task ID:', response.data.data);
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
}
createPhotoEnhancerTask();
成功响应
{
"code": 0,
"message": "success",
"data": 1234567890123456789
}
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 0 表示成功 |
message | string | 响应消息 |
data | long | 生成的任务 ID |
2. 获取任务结果#
获取当前任务状态和输出。
端点
GET /api/v1/photoEnhancer/result
查询参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
taskId | long | 是 | 由生成端点返回的任务 ID |
请求示例#
cURL
curl -X GET "https://api.ideal.house/api/v1/photoEnhancer/result?taskId=1234567890123456789" \
-H "APIKEY: your_api_key_here"
Java (OkHttp)
import okhttp3.*;
import java.io.IOException;
public class PhotoEnhancerResultExample {
private static final String BASE_URL = "https://api.ideal.house";
private static final String API_KEY = "your_api_key_here";
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
long taskId = 1234567890123456789L;
Request request = new Request.Builder()
.url(BASE_URL + "/api/v1/photoEnhancer/result?taskId=" + taskId)
.addHeader("APIKEY", API_KEY)
.get()
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println("Response: " + response.body().string());
}
}
}
Python (requests)
import requests
import time
BASE_URL = "https://api.ideal.house"
API_KEY = "your_api_key_here"
headers = {
"APIKEY": API_KEY
}
task_id = 1234567890123456789
while True:
response = requests.get(
f"{BASE_URL}/api/v1/photoEnhancer/result",
headers=headers,
params={"taskId": task_id}
)
data = response.json()
result = data.get("data", {})
status = result.get("status")
print(f"Status: {status}, Progress: {result.get('percentage')}%, Queue: {result.get('waitNumber')}")
if status in ("Success", "Failed"):
break
time.sleep(3)
if status == "Success":
print("Result URL:", result["output"]["resultUrl"])
else:
print("Task failed")
Node.js (axios)
const axios = require('axios');
const BASE_URL = 'https://api.ideal.house';
const API_KEY = 'your_api_key_here';
async function pollResult(taskId) {
const headers = { 'APIKEY': API_KEY };
while (true) {
const response = await axios.get(
`${BASE_URL}/api/v1/photoEnhancer/result`,
{
headers,
params: { taskId }
}
);
const result = response.data.data;
const { status, percentage, waitNumber } = result;
console.log(`Status: ${status} | Progress: ${percentage}% | Queue: ${waitNumber}`);
if (['Success', 'Failed'].includes(status)) {
if (status === 'Success') {
console.log('Result URL:', result.output.resultUrl);
console.log('Size:', result.output.width, 'x', result.output.height);
} else {
console.log('Task failed');
}
break;
}
await new Promise(resolve => setTimeout(resolve, 3000));
}
}
pollResult(1234567890123456789n);
响应示例
{
"code": 0,
"message": "success",
"data": {
"id": 1234567890123456789,
"status": "Success",
"waitNumber": 0,
"percentage": 100,
"input": {
"imageUrl": [
"https://example.com/interior_under.jpg",
"https://example.com/interior_mid.jpg",
"https://example.com/interior_over.jpg"
],
"imageUrls": [
"https://example.com/interior_under.jpg",
"https://example.com/interior_mid.jpg",
"https://example.com/interior_over.jpg"
],
"prompt": "Keep the result natural and listing-ready.",
"presetId": "hdr-merge-hdr-merge",
"imageSize": "4K",
"isApiCall": true,
"modelType": "Pro",
"model": "NanoBanana"
},
"output": {
"resultUrl": "https://cdn.ideal.house/output/photo_enhancer_result.jpg",
"width": 3840,
"height": 2880
}
}
}
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | long | 任务唯一标识符 |
status | string | 当前任务状态 |
waitNumber | integer | 队列中排在当前任务前面的任务数量 |
percentage | integer | 任务进度,从 0 到 100 |
input | object | 与任务一起存储的原始请求数据 |
input.imageUrl | string | array<string> | 客户端发送的原始请求值 |
input.imageUrls | array<string> | 服务器标准化的内部图片列表 |
input.prompt | string | 可选的自定义提示文本 |
input.presetId | string | null | 可选的预设请求值 |
input.imageSize | string | 请求的图片尺寸。支持的值:512、1K、2K、4K |
output | object | null | 任务成功时的输出对象 |
output.resultUrl | string | 最终图片 URL |
output.width | integer | 输出宽度(像素) |
output.height | integer | 输出高度(像素) |
任务状态#
| 状态 | 说明 |
|---|---|
Unprocessed | 任务已创建但尚未开始 |
Processing | 任务正在运行中 |
Success | 任务成功完成 |
Failed | 任务失败 |
每 3-5 秒 轮询一次。参见 API 任务限制。
预设参考#
摘要:
- 公共分类:
11 - 来自配置的公共预设:
136 - 额外 API 预设:
1 - 总计记录的请求值:
137 - 请求字段:
presetId
额外 API 预设#
| 预设名称(英文) | 请求值(presetId) | 备注 |
|---|---|---|
HDR Merge | hdr-merge-hdr-merge | 推荐用于多图输入,如包围曝光合并 |
Image Optimization (image-optimization)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Full Correction Suite | image-optimization-full-correction-suite |
Real Estate Photo Editing | image-optimization-real-estate-photo-editing |
MLS Photo Enhancement | image-optimization-mls-photo-enhancement |
Single Exposure Editing | image-optimization-single-exposure-editing |
Social Media Photo Optimization | image-optimization-social-media-photo-optimization |
Glare and Reflection Reduction | image-optimization-glare-and-reflection-reduction |
Exposure Balancing | image-optimization-exposure-balancing |
Image Quality & Correction (image-quality-correction)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
360 VR Enhanced Tour | image-quality-correction-360-vr-enhanced-tour |
AI Photo Sharpening | image-quality-correction-ai-photo-sharpening |
Real Estate Photo Editing | image-quality-correction-real-estate-photo-editing |
Compression Artifact Fix | image-quality-correction-compression-artifact-fix |
Lens Distortion Correction | image-quality-correction-lens-distortion-correction |
Image Upscaling | image-quality-correction-image-upscaling |
Noise Reduction | image-quality-correction-noise-reduction |
Perspective Correction | image-quality-correction-perspective-correction |
Auto Crop & Straighten | image-quality-correction-auto-crop-straighten |
Chromatic Aberration Fix | image-quality-correction-chromatic-aberration-fix |
Vignette Removal | image-quality-correction-vignette-removal |
MLS Photo Resize | image-quality-correction-mls-photo-resize |
Exterior Enhancement (exterior-enhancement)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Drone & Aerial | exterior-enhancement-drone-aerial |
Driveway | exterior-enhancement-driveway |
Curb Appeal | exterior-enhancement-curb-appeal |
Exterior Color | exterior-enhancement-exterior-color |
Exterior Photo | exterior-enhancement-exterior-photo |
Lawn & Yard | exterior-enhancement-lawn-yard |
Pool | exterior-enhancement-pool |
Fence & Gate | exterior-enhancement-fence-gate |
Landscaping | exterior-enhancement-landscaping |
Roof | exterior-enhancement-roof |
Interior Enhancement (interior-enhancement)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Window Pull | interior-enhancement-window-pull |
Occupied to Vacant | interior-enhancement-occupied-to-vacant |
Enhance Hardwood Floors Photo | interior-enhancement-enhance-hardwood-floors-photo |
Interior Photo | interior-enhancement-interior-photo |
Flash Ambient Blending Real Estate | interior-enhancement-flash-ambient-blending-real-estate |
Ceiling Light & Hot Spot Fix | interior-enhancement-ceiling-light-hot-spot-fix |
Lighting, Color & Exposure (lighting-color-exposure)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Balance Highlight Shadow Real Estate | lighting-color-exposure-balance-highlight-shadow-real-estate |
Brighten Dark Interior Photo | lighting-color-exposure-brighten-dark-interior-photo |
Brighten Dark Real Estate Photo | lighting-color-exposure-brighten-dark-real-estate-photo |
Brightness Enhancer | lighting-color-exposure-brightness-enhancer |
Cozy Warm Interior Editing | lighting-color-exposure-cozy-warm-interior-editing |
Enhance Brightness Of Photo | lighting-color-exposure-enhance-brightness-of-photo |
Enhance Natural Light Interior | lighting-color-exposure-enhance-natural-light-interior |
Exposure Balancing | lighting-color-exposure-exposure-balancing |
Mixed Lighting Fix | lighting-color-exposure-mixed-lighting-fix |
Flat Photo Contrast Fix | lighting-color-exposure-flat-photo-contrast-fix |
Fluorescent Light Color Fix | lighting-color-exposure-fluorescent-light-color-fix |
How To Brighten Dark Photos | lighting-color-exposure-how-to-brighten-dark-photos |
Contrast Enhancement | lighting-color-exposure-contrast-enhancement |
Increase Brightness Listing Photo | lighting-color-exposure-increase-brightness-listing-photo |
Interior Exposure Balancing | lighting-color-exposure-interior-exposure-balancing |
Lift Dark Shadows Real Estate | lighting-color-exposure-lift-dark-shadows-real-estate |
Overexposed Window Fix | lighting-color-exposure-overexposed-window-fix |
Color Correction | lighting-color-exposure-color-correction |
Highlight Recovery | lighting-color-exposure-highlight-recovery |
Shadow Recovery | lighting-color-exposure-shadow-recovery |
Reduce Highlights In My Image To Balance Exposure | lighting-color-exposure-reduce-highlights-in-my-image-to-balance-exposure |
Color Cast Removal | lighting-color-exposure-color-cast-removal |
Tungsten Daylight Mix Correction | lighting-color-exposure-tungsten-daylight-mix-correction |
Warm Tone Enhancement | lighting-color-exposure-warm-tone-enhancement |
Cool Tone Enhancement | lighting-color-exposure-cool-tone-enhancement |
White Balance Fix Interior Photo | lighting-color-exposure-white-balance-fix-interior-photo |
Turn On Lights | lighting-color-exposure-turn-on-lights |
Vibrance & Saturation Boost | lighting-color-exposure-vibrance-saturation-boost |
Natural Light Enhancement | lighting-color-exposure-natural-light-enhancement |
Sky Replacement (sky-replacement)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Blue Sky / Clear Sky | sky-replacement-blue-sky-clear-sky |
Sunrise Sky | sky-replacement-sunrise-sky |
Cloudy Sky | sky-replacement-cloudy-sky |
Partly Cloudy | sky-replacement-partly-cloudy |
Dramatic Clouds | sky-replacement-dramatic-clouds |
Sunset Sky | sky-replacement-sunset-sky |
Soft Sunset | sky-replacement-soft-sunset |
Dramatic Sunset | sky-replacement-dramatic-sunset |
Luxury Sunset Tones | sky-replacement-luxury-sunset-tones |
Fix Gray Sky Real Estate | sky-replacement-fix-gray-sky-real-estate |
Golden Hour Sky | sky-replacement-golden-hour-sky |
Night Sky / Starry Sky | sky-replacement-night-sky-starry-sky |
Sky Replacement | sky-replacement-sky-replacement |
Virtual Twilight (virtual-twilight)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Bright Marketing Twilight | virtual-twilight-bright-marketing-twilight |
Day To Dusk Photo Conversion | virtual-twilight-day-to-dusk-photo-conversion |
Deep Blue Twilight | virtual-twilight-deep-blue-twilight |
Light Subtle Twilight | virtual-twilight-light-subtle-twilight |
Luxury Twilight | virtual-twilight-luxury-twilight |
Midnight Blue Twilight | virtual-twilight-midnight-blue-twilight |
Warm Sunset Twilight | virtual-twilight-warm-sunset-twilight |
Weather & Seasonal Editing (weather-seasonal-editing)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Golden Hour | weather-seasonal-editing-golden-hour |
Blue Hour | weather-seasonal-editing-blue-hour |
Haze & Fog Removal | weather-seasonal-editing-haze-fog-removal |
Harsh Sunlight & Shadow Fix | weather-seasonal-editing-harsh-sunlight-shadow-fix |
Overcast To Sunny | weather-seasonal-editing-overcast-to-sunny |
Rain & Wet Weather Fix | weather-seasonal-editing-rain-wet-weather-fix |
Spring Enhancement | weather-seasonal-editing-spring-enhancement |
Summer Enhancement | weather-seasonal-editing-summer-enhancement |
Night to Day | weather-seasonal-editing-night-to-day |
Fall Foliage | weather-seasonal-editing-fall-foliage |
Snow / Winter Conditions | weather-seasonal-editing-snow-winter-conditions |
Full Season Change / Season Swap | weather-seasonal-editing-full-season-change-season-swap |
Snow Removal | weather-seasonal-editing-snow-removal |
Holiday Decorations (holiday-decorations)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Christmas Exterior | holiday-decorations-christmas-exterior |
Christmas Interior | holiday-decorations-christmas-interior |
Easter Exterior | holiday-decorations-easter-exterior |
Easter Interior | holiday-decorations-easter-interior |
Halloween Exterior | holiday-decorations-halloween-exterior |
Halloween Interior | holiday-decorations-halloween-interior |
New Year Exterior | holiday-decorations-new-year-exterior |
New Year Interior | holiday-decorations-new-year-interior |
Thanksgiving Dining Room | holiday-decorations-thanksgiving-dining-room |
Thanksgiving Exterior | holiday-decorations-thanksgiving-exterior |
Thanksgiving Interior | holiday-decorations-thanksgiving-interior |
Fourth of July / Independence Day | holiday-decorations-fourth-of-july-independence-day |
Hanukkah Interior | holiday-decorations-hanukkah-interior |
Spring / Ramadan Decorations | holiday-decorations-spring-ramadan-decorations |
Valentine's Day Bedroom | holiday-decorations-valentine-s-day-bedroom |
Valentine's Day Exterior | holiday-decorations-valentine-s-day-exterior |
Valentine's Day Interior | holiday-decorations-valentine-s-day-interior |
Fire in Fireplace (fire-in-fireplace)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Add Fire To Fireplace | fire-in-fireplace-add-fire-to-fireplace |
Bright Marketing Fire | fire-in-fireplace-bright-marketing-fire |
Modern Clean Fire | fire-in-fireplace-modern-clean-fire |
Subtle Natural Fire | fire-in-fireplace-subtle-natural-fire |
Traditional Cozy Fire | fire-in-fireplace-traditional-cozy-fire |
Vibrant Showcase Fire | fire-in-fireplace-vibrant-showcase-fire |
Object & Element Specific (object-element-specific)#
| 预设名称(英文) | 请求值(presetId) |
|---|---|
Crack & Wall Repair | object-element-specific-crack-wall-repair |
Floor Reflection Real Estate | object-element-specific-floor-reflection-real-estate |
People & Pet Removal | object-element-specific-people-pet-removal |
Trash Can Removal | object-element-specific-trash-can-removal |
Remove Cars | object-element-specific-remove-cars |
Clutter Removal | object-element-specific-clutter-removal |
Date Stamp Removal | object-element-specific-date-stamp-removal |
Sign Removal | object-element-specific-sign-removal |
Glare Removal | object-element-specific-glare-removal |
Mirror Reflection Fix | object-element-specific-mirror-reflection-fix |
Remove Power Lines | object-element-specific-remove-power-lines |
Stain Removal | object-element-specific-stain-removal |
Watermark Removal | object-element-specific-watermark-removal |
Window Reflection Removal | object-element-specific-window-reflection-removal |
TV Screen Fix | object-element-specific-tv-screen-fix |
Wire & Cable Removal | object-element-specific-wire-cable-removal |
错误响应#
所有错误使用以下结构:
{
"code": 5002,
"message": "Invalid API Key",
"data": null
}
| 代码 | 名称 | 说明 |
|---|---|---|
1001 | FAILED | 通用请求失败 |
1003 | INTERNAL_ERROR | 内部服务器错误 |
1011 | PARAM_ERROR | 缺少或无效的请求参数 |
5002 | API_KEY_INVALID | 无效或缺失的 API 密钥 |
9010 | SCAN_TEXT_ERROR | 提示文本审核失败 |
9038 | PROHIBITED_CONTENT | 生成的图片内容被拒绝 |
9051 | COINS_NOT_ENOUGH | 积分不足 |
如需完整的常见错误列表,请参阅 错误码参考。