Skip to content
Translated page. The English version is the source of truth.

GET /apiv2/order_check

เรียกดูข้อมูลโดยละเอียดเกี่ยวกับคำสั่งซื้อ Energy แบบ 1 ชั่วโมงที่ระบุ ซึ่งรวมถึงรายละเอียดค่าใช้จ่าย ข้อมูลการเปิดใช้งาน และข้อมูลส่วนต่างราคา (markup) ของผู้ใช้ย่อย (subuser)

URL ของ Endpoint

GET https://netts.io/apiv2/order_check

Headers ของคำขอ

Headerจำเป็นคำอธิบาย
X-API-KEYใช่API key ของคุณจากแดชบอร์ด Netts

Query พารามิเตอร์

พารามิเตอร์ชนิดจำเป็นคำอธิบาย
order_idstringใช่รหัสคำสั่งซื้อในรูปแบบ 1H{hash} (เช่น 1Ha1b2c3d4e5)

ตัวอย่างคำขอ

cURL

bash
curl -X GET "https://netts.io/apiv2/order_check?order_id=1Ha1b2c3d4e5" \
  -H "X-API-KEY: your_api_key"

Python

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)

javascript
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)

json
{
    "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)

เมื่อที่อยู่ปลายทางต้องได้รับการเปิดใช้งาน:

json
{
    "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)

สำหรับผู้ใช้หลักที่ดูคำสั่งซื้อของผู้ใช้ย่อย:

json
{
    "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
    }
}

ฟิลด์ของการตอบกลับ

การตอบกลับหลัก

ฟิลด์ชนิดคำอธิบาย
successbooleantrue หากคำขอสำเร็จ
codeinteger10000 สำหรับคำขอที่สำเร็จ
orderobjectรายละเอียดคำสั่งซื้อ
activationobject | nullรายละเอียดการเปิดใช้งาน (หากที่อยู่ได้รับการเปิดใช้งาน)
subuser_payoutobject | nullรายละเอียดส่วนต่างราคาของผู้ใช้ย่อย (เฉพาะผู้ใช้หลักเท่านั้น)

ออบเจ็กต์ Order

ฟิลด์ชนิดคำอธิบาย
idstringรหัสคำสั่งซื้อในรูปแบบ 1H{hash}
costnumberค่าใช้จ่ายทั้งหมดที่ผู้ใช้ชำระ (TRX)
target_addressstringที่อยู่ที่ได้รับ Energy
energyintegerจำนวน Energy ที่ได้รับมอบสิทธิ์ (delegated)
durationstringระยะเวลาการมอบสิทธิ์ (เป็น "1 hour" เสมอ)
tx_hashesarrayรายการแฮชของธุรกรรมการมอบสิทธิ์
timestampstringเวลาที่สร้างคำสั่งซื้อ (รูปแบบ ISO 8601)
rate_sunnumberอัตรา Energy ในหน่วย sun ต่อหน่วย Energy
commentsstring | nullข้อมูลเพิ่มเติม (เช่น การแจ้งเตือนการเปิดใช้งาน)

ออบเจ็กต์ Activation

ฟิลด์ชนิดคำอธิบาย
costnumberค่าใช้จ่ายในการเปิดใช้งาน (TRX)
tx_hashstringแฮชธุรกรรมการเปิดใช้งาน

ออบเจ็กต์ Subuser Payout

เฉพาะผู้ใช้หลักเท่านั้น

ฟิลด์ subuser_payout จะรวมอยู่ในการตอบกลับเฉพาะเมื่อผู้ใช้หลักดูคำสั่งซื้อของผู้ใช้ย่อยของตนเท่านั้น ผู้ใช้ย่อย (mock user) จะไม่เห็นฟิลด์นี้

ฟิลด์ชนิดคำอธิบาย
parent_idintegerรหัสผู้ใช้หลัก
gross_costnumberค่าใช้จ่ายทั้งหมดที่ผู้ใช้ย่อยชำระ (TRX)
energy_markupnumberจำนวนส่วนต่างราคาของ Energy (TRX)
activation_markupnumberจำนวนส่วนต่างราคาของการเปิดใช้งาน (TRX)
total_markupnumberส่วนต่างราคารวม (Energy + การเปิดใช้งาน)
net_costnumberค่าใช้จ่ายหักส่วนต่างราคา (ต้นทุนจริงของผู้ใช้หลัก)
subuser_rate_sunnumberอัตราที่ผู้ใช้ย่อยชำระ (sun/energy)
parent_rate_sunnumberอัตราจริงที่ไม่รวมส่วนต่างราคา (sun/energy)

การตอบกลับข้อผิดพลาด

ไม่มี Order ID (400)

json
{
    "success": false,
    "code": -2,
    "msg": "order_id parameter required"
}

ข้อผิดพลาดในการยืนยันตัวตน (401)

json
{
    "success": false,
    "code": -1,
    "msg": "API key not provided"
}
json
{
    "success": false,
    "code": -1,
    "msg": "Invalid API key or IP not in whitelist"
}

การเข้าถึงถูกปฏิเสธ (403)

เมื่อพยายามดูคำสั่งซื้อที่เป็นของผู้ใช้อื่น:

json
{
    "success": false,
    "code": -4,
    "msg": "Order does not belong to this user"
}

ไม่พบคำสั่งซื้อ (404)

json
{
    "success": false,
    "code": -3,
    "msg": "Order not found"
}

ข้อผิดพลาดภายในเซิร์ฟเวอร์ (500)

json
{
    "success": false,
    "msg": "Internal server error"
}

ข้อมูลอ้างอิงรหัสข้อผิดพลาด

รหัสคำอธิบายสถานะ HTTP
10000สำเร็จ200
-1การยืนยันตัวตนล้มเหลว401
-2ขาดพารามิเตอร์ order_id400
-3ไม่พบคำสั่งซื้อ404
-4การเข้าถึงถูกปฏิเสธ (ไม่ใช่คำสั่งซื้อของคุณ)403

การจำกัดอัตราการส่งคำขอ

การจำกัดอัตราคำขอต่อไปนี้มีผลบังคับใช้กับ endpoint นี้ (ต่อที่อยู่ IP):

ช่วงเวลาขีดจำกัดคำอธิบาย
1 วินาที50 คำขอสูงสุด 50 คำขอต่อวินาที

Headers การจำกัดอัตราการส่งคำขอ

http
RateLimit-Limit: 50
RateLimit-Remaining: 49
RateLimit-Reset: 1
X-RateLimit-Limit-Second: 50
X-RateLimit-Remaining-Second: 49

อัตราคำขอเกินขีดจำกัด (429)

json
{
    "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. รับแฮชธุรกรรม

ดึงแฮชของธุรกรรมการมอบสิทธิ์เพื่อตรวจสอบบนบล็อกเชน:

python
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. ติดตามต้นทุนของผู้ใช้ย่อย (ผู้ใช้หลัก)

ผู้ใช้หลักสามารถตรวจสอบคำสั่งซื้อของผู้ใช้ย่อยและรายได้จากส่วนต่างราคา:

python
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 เท่านั้น