GET /apiv2/order_check
เรียกดูข้อมูลโดยละเอียดเกี่ยวกับคำสั่งซื้อ Energy แบบ 1 ชั่วโมงที่ระบุ ซึ่งรวมถึงรายละเอียดค่าใช้จ่าย ข้อมูลการเปิดใช้งาน และข้อมูลส่วนต่างราคา (markup) ของผู้ใช้ย่อย (subuser)
URL ของ Endpoint
GET https://netts.io/apiv2/order_checkHeaders ของคำขอ
| Header | จำเป็น | คำอธิบาย |
|---|---|---|
| X-API-KEY | ใช่ | API key ของคุณจากแดชบอร์ด Netts |
Query พารามิเตอร์
| พารามิเตอร์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| order_id | string | ใช่ | รหัสคำสั่งซื้อในรูปแบบ 1H{hash} (เช่น 1Ha1b2c3d4e5) |
ตัวอย่างคำขอ
cURL
curl -X GET "https://netts.io/apiv2/order_check?order_id=1Ha1b2c3d4e5" \
-H "X-API-KEY: your_api_key"Python
import requests
url = "https://netts.io/apiv2/order_check"
headers = {
"X-API-KEY": "your_api_key"
}
params = {
"order_id": "1Ha1b2c3d4e5"
}
response = requests.get(url, headers=headers, params=params)
data = response.json()
if data.get("success"):
order = data.get("order", {})
print(f"Order ID: {order.get('id')}")
print(f"Total Cost: {order.get('cost')} TRX")
print(f"Energy: {order.get('energy')}")
print(f"Rate: {order.get('rate_sun')} sun/energy")
print(f"Target Address: {order.get('target_address')}")
# Check if activation was performed
activation = data.get("activation")
if activation:
print(f"Activation Cost: {activation.get('cost')} TRX")
print(f"Activation Hash: {activation.get('tx_hash')}")
else:
print(f"Error: {data.get('msg')}")JavaScript (Node.js)
const axios = require('axios');
const url = 'https://netts.io/apiv2/order_check';
const headers = {
'X-API-KEY': 'your_api_key'
};
const params = {
order_id: '1Ha1b2c3d4e5'
};
axios.get(url, { headers, params })
.then(response => {
const data = response.data;
if (data.success) {
console.log('Order:', data.order);
console.log('Activation:', data.activation);
} else {
console.log('Error:', data.msg);
}
})
.catch(error => console.error('Request failed:', error));การตอบกลับ
การตอบกลับเมื่อสำเร็จ (200 OK)
{
"success": true,
"code": 10000,
"order": {
"id": "1Ha1b2c3d4e5",
"cost": 2.535,
"target_address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"energy": 65000,
"duration": "1 hour",
"tx_hashes": ["a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345678"],
"timestamp": "2025-12-03T15:21:34.182127",
"rate_sun": 39.0,
"comments": null
},
"activation": null,
"subuser_payout": null
}การตอบกลับเมื่อสำเร็จพร้อมการเปิดใช้งาน (200 OK)
เมื่อที่อยู่ปลายทางต้องได้รับการเปิดใช้งาน:
{
"success": true,
"code": 10000,
"order": {
"id": "1Ha1b2c3d4e5",
"cost": 3.635,
"target_address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"energy": 65000,
"duration": "1 hour",
"tx_hashes": ["a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345678"],
"timestamp": "2025-12-03T15:21:34.182127",
"rate_sun": 39.0,
"comments": "Includes activation: 1.1 TRX"
},
"activation": {
"cost": 1.1,
"tx_hash": "b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456789a"
},
"subuser_payout": null
}การตอบกลับเมื่อสำเร็จพร้อมข้อมูลการจ่ายเงินของผู้ใช้ย่อย (200 OK)
สำหรับผู้ใช้หลักที่ดูคำสั่งซื้อของผู้ใช้ย่อย:
{
"success": true,
"code": 10000,
"order": {
"id": "1Ha1b2c3d4e5",
"cost": 3.93,
"target_address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"energy": 65000,
"duration": "1 hour",
"tx_hashes": ["c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456789abc"],
"timestamp": "2025-12-03T16:55:16.525118",
"rate_sun": 60.5,
"comments": "Includes activation: 1.1 TRX"
},
"activation": {
"cost": 1.1,
"tx_hash": "b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456789a"
},
"subuser_payout": {
"parent_id": 12,
"gross_cost": 3.93,
"energy_markup": 0.195,
"activation_markup": 0.1,
"total_markup": 0.295,
"net_cost": 3.635,
"subuser_rate_sun": 43.5,
"parent_rate_sun": 39.0
}
}ฟิลด์ของการตอบกลับ
การตอบกลับหลัก
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
| success | boolean | true หากคำขอสำเร็จ |
| code | integer | 10000 สำหรับคำขอที่สำเร็จ |
| order | object | รายละเอียดคำสั่งซื้อ |
| activation | object | null | รายละเอียดการเปิดใช้งาน (หากที่อยู่ได้รับการเปิดใช้งาน) |
| subuser_payout | object | null | รายละเอียดส่วนต่างราคาของผู้ใช้ย่อย (เฉพาะผู้ใช้หลักเท่านั้น) |
ออบเจ็กต์ Order
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
| id | string | รหัสคำสั่งซื้อในรูปแบบ 1H{hash} |
| cost | number | ค่าใช้จ่ายทั้งหมดที่ผู้ใช้ชำระ (TRX) |
| target_address | string | ที่อยู่ที่ได้รับ Energy |
| energy | integer | จำนวน Energy ที่ได้รับมอบสิทธิ์ (delegated) |
| duration | string | ระยะเวลาการมอบสิทธิ์ (เป็น "1 hour" เสมอ) |
| tx_hashes | array | รายการแฮชของธุรกรรมการมอบสิทธิ์ |
| timestamp | string | เวลาที่สร้างคำสั่งซื้อ (รูปแบบ ISO 8601) |
| rate_sun | number | อัตรา Energy ในหน่วย sun ต่อหน่วย Energy |
| comments | string | null | ข้อมูลเพิ่มเติม (เช่น การแจ้งเตือนการเปิดใช้งาน) |
ออบเจ็กต์ Activation
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
| cost | number | ค่าใช้จ่ายในการเปิดใช้งาน (TRX) |
| tx_hash | string | แฮชธุรกรรมการเปิดใช้งาน |
ออบเจ็กต์ Subuser Payout
เฉพาะผู้ใช้หลักเท่านั้น
ฟิลด์ subuser_payout จะรวมอยู่ในการตอบกลับเฉพาะเมื่อผู้ใช้หลักดูคำสั่งซื้อของผู้ใช้ย่อยของตนเท่านั้น ผู้ใช้ย่อย (mock user) จะไม่เห็นฟิลด์นี้
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
| parent_id | integer | รหัสผู้ใช้หลัก |
| gross_cost | number | ค่าใช้จ่ายทั้งหมดที่ผู้ใช้ย่อยชำระ (TRX) |
| energy_markup | number | จำนวนส่วนต่างราคาของ Energy (TRX) |
| activation_markup | number | จำนวนส่วนต่างราคาของการเปิดใช้งาน (TRX) |
| total_markup | number | ส่วนต่างราคารวม (Energy + การเปิดใช้งาน) |
| net_cost | number | ค่าใช้จ่ายหักส่วนต่างราคา (ต้นทุนจริงของผู้ใช้หลัก) |
| subuser_rate_sun | number | อัตราที่ผู้ใช้ย่อยชำระ (sun/energy) |
| parent_rate_sun | number | อัตราจริงที่ไม่รวมส่วนต่างราคา (sun/energy) |
การตอบกลับข้อผิดพลาด
ไม่มี Order ID (400)
{
"success": false,
"code": -2,
"msg": "order_id parameter required"
}ข้อผิดพลาดในการยืนยันตัวตน (401)
{
"success": false,
"code": -1,
"msg": "API key not provided"
}{
"success": false,
"code": -1,
"msg": "Invalid API key or IP not in whitelist"
}การเข้าถึงถูกปฏิเสธ (403)
เมื่อพยายามดูคำสั่งซื้อที่เป็นของผู้ใช้อื่น:
{
"success": false,
"code": -4,
"msg": "Order does not belong to this user"
}ไม่พบคำสั่งซื้อ (404)
{
"success": false,
"code": -3,
"msg": "Order not found"
}ข้อผิดพลาดภายในเซิร์ฟเวอร์ (500)
{
"success": false,
"msg": "Internal server error"
}ข้อมูลอ้างอิงรหัสข้อผิดพลาด
| รหัส | คำอธิบาย | สถานะ HTTP |
|---|---|---|
10000 | สำเร็จ | 200 |
-1 | การยืนยันตัวตนล้มเหลว | 401 |
-2 | ขาดพารามิเตอร์ order_id | 400 |
-3 | ไม่พบคำสั่งซื้อ | 404 |
-4 | การเข้าถึงถูกปฏิเสธ (ไม่ใช่คำสั่งซื้อของคุณ) | 403 |
การจำกัดอัตราการส่งคำขอ
การจำกัดอัตราคำขอต่อไปนี้มีผลบังคับใช้กับ endpoint นี้ (ต่อที่อยู่ IP):
| ช่วงเวลา | ขีดจำกัด | คำอธิบาย |
|---|---|---|
| 1 วินาที | 50 คำขอ | สูงสุด 50 คำขอต่อวินาที |
Headers การจำกัดอัตราการส่งคำขอ
RateLimit-Limit: 50
RateLimit-Remaining: 49
RateLimit-Reset: 1
X-RateLimit-Limit-Second: 50
X-RateLimit-Remaining-Second: 49อัตราคำขอเกินขีดจำกัด (429)
{
"message": "API rate limit exceeded"
}การควบคุมการเข้าถึง
ความเป็นเจ้าของคำสั่งซื้อ
ผู้ใช้สามารถดูได้เฉพาะคำสั่งซื้อของตนเองเท่านั้น API จะตรวจสอบความเป็นเจ้าของตาม:
- ผู้ใช้ Google: ตรวจสอบ
google_user_idจากคำสั่งซื้อให้ตรงกับ Google ID ของผู้ใช้ - ผู้ใช้ Telegram: ตรวจสอบ
tg_user_idจากคำสั่งซื้อให้ตรงกับ Telegram ID ของผู้ใช้
การเข้าถึงระหว่างผู้ใช้หลักและผู้ใช้ย่อย
ผู้ใช้หลักสามารถดูคำสั่งซื้อที่สร้างโดยผู้ใช้ย่อยของตนได้ ในกรณีนี้:
- ฟิลด์
subuser_payoutจะรวมอยู่ในการตอบกลับ - ผู้ใช้หลักสามารถดูรายละเอียดส่วนต่างราคาและต้นทุนจริงของตนเองได้
การเข้าถึงของผู้ใช้ย่อย (Mock)
ผู้ใช้ย่อยที่ดูคำสั่งซื้อของตนเองจะเห็น:
- ต้นทุนจริงของตน (รวมส่วนต่างราคา) ใน
order.cost - อัตราของตน (รวมส่วนต่างราคา) ใน
order.rate_sun - ฟิลด์
subuser_payoutจะไม่รวมอยู่ในการตอบกลับ
กรณีการใช้งาน
1. ตรวจสอบการดำเนินการเสร็จสิ้นของคำสั่งซื้อ
หลังจากส่งคำสั่งซื้อด้วย /apiv2/order1h ให้ใช้ endpoint นี้เพื่อตรวจสอบ:
- คำสั่งซื้อได้รับการประมวลผลสำเร็จแล้ว
- มอบสิทธิ์ Energy ไปยังที่อยู่ที่ถูกต้องแล้ว
- คิดค่าใช้จ่ายในจำนวนเงินที่ถูกต้อง
2. รับแฮชธุรกรรม
ดึงแฮชของธุรกรรมการมอบสิทธิ์เพื่อตรวจสอบบนบล็อกเชน:
response = requests.get(
"https://netts.io/apiv2/order_check",
headers={"X-API-KEY": "your_api_key"},
params={"order_id": "1Ha1b2c3d4e5"}
)
data = response.json()
if data["success"]:
tx_hashes = data["order"]["tx_hashes"]
if tx_hashes:
print(f"Verify on Tronscan: https://tronscan.org/#/transaction/{tx_hashes[0]}")3. ติดตามต้นทุนของผู้ใช้ย่อย (ผู้ใช้หลัก)
ผู้ใช้หลักสามารถตรวจสอบคำสั่งซื้อของผู้ใช้ย่อยและรายได้จากส่วนต่างราคา:
response = requests.get(
"https://netts.io/apiv2/order_check",
headers={"X-API-KEY": "parent_api_key"},
params={"order_id": "1Ha1b2c3d4e5"}
)
data = response.json()
if data["success"] and data.get("subuser_payout"):
payout = data["subuser_payout"]
print(f"Subuser paid: {payout['gross_cost']} TRX")
print(f"Your markup: {payout['total_markup']} TRX")
print(f"Your actual cost: {payout['net_cost']} TRX")หมายเหตุ
- สามารถสอบถามคำสั่งซื้อได้ทันทีหลังจากสร้างเสร็จ
- แฮชธุรกรรมอาจว่างเปล่าหากผู้ให้บริการไม่ได้ส่งคืนค่าดังกล่าว
- ฟิลด์
rate_sunจะแสดงอัตราจริงต่อหน่วย Energy ในหน่วย sun - ค่าใช้จ่ายในการเปิดใช้งานจะรวมอยู่ใน
costรวม เมื่อมีผลบังคับใช้ - ฟิลด์
commentsจะให้บริบทเพิ่มเติม (เช่น การแจ้งเตือนการเปิดใช้งาน) - endpoint นี้ส่งคืนเฉพาะคำสั่งซื้อแบบ 1 ชั่วโมงที่สร้างผ่าน
/apiv2/order1hเท่านั้น