Dịch vụ EnergyFather giúp mua (thuê) năng lượng và băng thông cần thiết để gửi các giao dịch bằng USDT và các mã thông báo tiền điện tử TRC20 khác; băng thông cũng cần thiết để gửi bất kỳ loại giao dịch nào trên blockchain TRON, chẳng hạn như gửi TRX, nhận phần thưởng và bỏ phiếu cho Super Representatives.
Thủ tục mua năng lượng
Để mua năng lượng, bạn cần đăng ký dịch vụ EnergyFather, lấy mã thông báo ủy quyền từ trang "Người mua > mã thông báo API" và nạp tiền vào số dư tài khoản Người mua.
Sau khi tạo lệnh (phương pháp ‘buy/energy’), năng lượng có thể được phân phối với độ trễ vài giây hoặc thậm chí vài phút, vì vậy khi phát triển hệ thống tự động, nên kiểm tra định kỳ việc thực hiện lệnh bằng phương thức yêu cầu ‘order/get/{guid}’.
Ví dụ: nếu bạn dự định gửi USDT và muốn thực hiện giao dịch rẻ hơn bằng cách mua năng lượng, bạn thực hiện như sau:
- yêu cầu phương pháp ‘buy/energy’ để ước tính lượng năng lượng cần thiết và mua nó,
- định kỳ yêu cầu phương pháp ‘order/get/{guid}’ cho đến khi năng lượng được ủy quyền (thường mất vài giây),
- gửi USDT (năng lượng mua sẽ được sử dụng để thanh toán phí giao dịch).
Ghi chú chung
Trong tài liệu này, một biểu thức được bọc trong dấu ngoặc nhọn như ‘{guid}’ hoặc ‘{id}’ có nghĩa là giá trị của biến tương ứng:
- ‘{guid}’ là mã định danh duy nhất toàn cầu của đối tượng trong EnergyFather (thường là 8 chữ số),
- ‘{id}’ là số tuần tự của đối tượng cho người dùng này (đánh số bắt đầu bằng ‘1’ cho mỗi người dùng).
Điểm cuối API
https://panel.energyfather.com/api/v1/private
Gửi yêu cầu bằng phương thức POST.
Ủy quyền yêu cầu
Để xác nhận (ủy quyền) các yêu cầu cho API riêng, tiêu đề HTTP phải được chuyển:
Token: {token}
Quản lý mã thông báo ủy quyền được đặt trong bảng điều khiển, trên trang "Người mua > mã thông báo API".
Ví dụ: bạn có thể nhận thông tin về 123456 đặt hàng theo cách sau:
CURL -X POST 'https://panel.energyfather.com/api/v1/private/order/get/123456' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
Trạng thái đơn hàng
- "0" - Đang chờ xử lý. Đơn đặt hàng vừa được tạo.
- "1" - Đang chờ thanh toán. Liên kết thanh toán đã được tạo, EnergyFather đang chờ gọi lại từ hệ thống thanh toán. Trạng thái này không được sử dụng nếu đơn đặt hàng được thanh toán hoàn toàn bằng tiền có sẵn tại tài khoản nội bộ.
- "2" - Thủ tục ủy quyền năng lượng đang diễn ra.
- "3" - Ủy quyền. Năng lượng được đưa ra.
- "4" - Khai hoang (Không ủy quyền). Năng lượng bị rút do kết thúc khoảng thời gian được thanh toán.
- "5" - Trả tiền. Đơn hàng được thanh toán và thêm vào hàng đợi để giao năng lượng.
- "6" - Lỗi.
Trình tự trạng thái thông thường: 0, 5, 2, 3, 4.
- /api/v1/private/buy/energy - mua năng lượng (thanh toán từ tài khoản nội bộ)
- /api/v1/private/order/list - nhận danh sách các đơn đặt hàng của bạn
- /api/v1/private/order/get/{guid} - nhận thông tin về đơn đặt hàng của bạn
- /api/v1/private/account/list - nhận danh sách các tài khoản nội bộ của bạn
- /api/v1/private/account/get/{id} – nhận thông tin về tài khoản nội bộ của bạn
Phương pháp "buy/energy" - mua năng lượng (thanh toán từ tài khoản nội bộ)
Yêu cầu mua năng lượng của khách hàng đã đăng ký bằng ghi nợ từ tài khoản nội bộ. Năng lượng ngay lập tức được gửi đến địa chỉ được chỉ định.
Nếu tài khoản nội bộ không có đủ tiền, lệnh sẽ được tạo và ngay lập tức có trạng thái "6" (Lỗi). Trong trường hợp này, bạn cần truy cập bảng điều khiển, gửi một số tiền và sau đó gửi yêu cầu API mới để mua năng lượng.
Có hai cách để xác định lượng năng lượng cần mua:
a) Bạn có thể đặt lượng năng lượng chính xác trong tham số "amount", sau đó bạn cũng nên đặt amount_source="amount".
b) Nếu bạn không biết cần bao nhiêu năng lượng cho một giao dịch để gửi USDT hoặc mã thông báo khác, bạn có thể đặt amount_source="estimate" và điền vào các tham số thích hợp (estimate_to, estimate_token, estimate_adjust_percent).
buy/energy: Yêu cầu ví dụ với lượng năng lượng chính xác
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/buy/energy' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS' -d '{ "format": "json", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "amount_source": "amount", "amount": "31895", "period_type": "days", "period_amount": "3" }'
buy/energy: Yêu cầu ví dụ với tính toán lượng năng lượng cần thiết
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/buy/energy' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS' -d '{ "format": "json", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "amount_source": "estimate", "estimate_to": "TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH,TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo", "estimate_token": "USDT", "estimate_adjust_percent": 0.04, "period_type": "days", "period_amount": "3" }'
buy/energy: Yêu cầu params
- to (chuỗi, bắt buộc) - địa chỉ TRON mà năng lượng sẽ được ủy quyền
- period_amount (số nguyên, bắt buộc) – khoảng thời gian để mua năng lượng
- period_type (chuỗi, bắt buộc) – loại khoảng thời gian. Giá trị có thể: days, hours.
- format (chuỗi, tùy chọn) – định dạng phản hồi. Giá trị có thể: json (default), xml.
- amount_source (chuỗi, bắt buộc) – thuật toán để xác định lượng năng lượng được ủy quyền. Nếu giá trị là "amount", thì giá trị của tham số "amount" được sử dụng. Nếu giá trị là "estimate", lượng năng lượng cần thiết được tính dựa trên các tham số estimate_to, estimate_token, estimate_adjust_percent. Giá trị có thể: amount, estimate.
- amount (số nguyên, bắt buộc nếu amount_source="amount") – lượng năng lượng cần mua. Nó được bỏ qua nếu amount_source="estimate".
- estimate_to (chuỗi, bắt buộc nếu amount_source="estimate") – danh sách các địa chỉ TRON được phân tách bằng dấu phẩy mà các giao dịch mã thông báo được lên kế hoạch gửi đến
- estimate_token (chuỗi, bắt buộc nếu amount_source="estimate") – mã thông báo TRC20. Các giá trị có thể có (phân biệt chữ hoa chữ thường): USDT, USDC, USDD, USDJ, JST, TUSD, stUSDT, WTRX.
- estimate_adjust_percent (thập phân, bắt buộc nếu amount_source="estimate") - lượng năng lượng dư thừa được biểu thị bằng tỷ lệ phần trăm. Sự dư thừa này là cần thiết để tránh đốt TRX, điều này có thể xảy ra nếu địa chỉ có chính xác lượng năng lượng cần thiết. Giá trị đề xuất là 0.04%.
Quan trọng: Hiện tại, chỉ có 6 kỳ hợp lệ: 1 hour và 1, 3, 7, 15, 30 days.
buy/energy: Phản hồi
Trong trường hợp thành công, phản hồi sẽ chứa thứ tự GUID, qua đó sau này bạn có thể lấy thông tin chi tiết thực tế của nó.
{ "status": "ok", "data": { "guid": 81373165, "estimate_task_id": null, "status": 0, "order_cost": "6.051", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "energy_amount": 61000, "period_type": "hours", "energy_delegation_fee": "0.561000000000000000", "address_activation_fee": "0.000000000000000000", "hours": 1, "days": 0, "estimate_task": null }, "balance": "7.29412" }
Nếu yêu cầu chứa amount_source="estimate" thì phản hồi có phần bổ sung "estimate_task". Chẳng hạn:
{ "status": "ok", "data": { "guid": 77082757, "estimate_task_id": 42708906, "status": 0, "order_cost": "0.561", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "energy_amount": null, "period_type": "hours", "energy_delegation_fee": "0.561000000000000000", "address_activation_fee": "0.000000000000000000", "hours": 1, "days": 0, "estimate_task": { "id": 42708906, "token": "USDT", "currency": "USD", "from": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "to": [ "TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH", "TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo" ] } }, "balance": "18.29412" }
buy/energy: Tham số phản hồi
- guid – bộ GUID
- balance – tiền hiện có sẵn trong tài khoản nội bộ, TRX
- days – thời gian cung cấp năng lượng tính bằng ngày, nếu "period_type=days"
- hours - thời gian cung cấp năng lượng tính bằng giờ, nếu "period_type=hours"
- estimate_task – tính toán (ước tính) năng lượng cần thiết để gửi các giao dịch TRC20 từ một địa chỉ TRON đến danh sách các địa chỉ TRON khác
Phương pháp "order/get/{guid}" - nhận thông tin chi tiết về đơn đặt hàng
Lấy thông tin về đơn đặt hàng cụ thể.
order/get/{guid} – Yêu cầu ví dụ
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/order/get/12345' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
order/get/{guid} – Ví dụ về phản hồi
{ "status": "ok", "data": { "guid": 81373165, "estimate_task_id": 32301594, "status": 3, "payment_status": 0, "order_cost_paid": "4.146350000000000000", "order_cost": "4.146350000000000000", "to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "energy_amount": 31895, "period_type": "hours", "energy_delegation_fee": "0.000000000000000000", "address_activation_fee": "0.000000000000000000", "hours": 1, "days": 0, "resource_txs": [ { "order_guid": 81373165, "delegate_txid": "961b6fbd7cc2090d1a65abc06bfabde1046e02d35394f6eca8d05812a6e3ab7" } ], "estimate_task": { "id": 42708906, "token": "USDT", "currency": "USD", "from": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE", "to": [ "TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH", "TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo" ] } } }
order/get/{guid} – Tham số phản hồi
- guid – bộ GUID
- balance – tiền hiện có sẵn trong tài khoản nội bộ, TRX
- days – thời gian cung cấp năng lượng tính bằng ngày, nếu "period_type=days"
- hours - thời gian cung cấp năng lượng tính bằng giờ, nếu "period_type=hours"
- to - Địa chỉ TRX nơi cung cấp năng lượng
- energy_amount – số lượng năng lượng
- order_cost – chi phí đặt hàng, TRX
- order_cost_paid – số tiền đã thanh toán, TRX (trong trường hợp không đủ tiền trong tài khoản nội bộ, số tiền này sẽ ít hơn "order_cost")
- address_activation_fee – số tiền phí kích hoạt địa chỉ đích, TRX
- energy_delegation_fee – phí cho kích thước đơn đặt hàng quá nhỏ, TRX
- resource_txs – mảng chứa danh sách các giao dịch trong blockchain TRON nơi các tài nguyên được ủy quyền và thu hồi (không được ủy quyền)
- status – trạng thái đơn hàng, các giá trị có thể được mô tả ở đầu sách hướng dẫn này
- payment_status – trạng thái thanh toán đơn hàng trong hệ thống thanh toán (các giá trị có thể phụ thuộc vào hệ thống thanh toán)
Phương pháp "order/list" – nhận danh sách các đơn đặt hàng
Nhận danh sách các đơn đặt hàng.
order/list – Yêu cầu ví dụ
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/order/list' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
order/list – Yêu cầu params
- sort (chuỗi, tùy chọn) - sắp xếp các mục, theo mặc định "created_at|desc"
- per_page (số nguyên, tùy chọn) - giới hạn số lượng mục nhập cho mỗi phản hồi
- page (số nguyên, tùy chọn) – số tuần tự của trang phản hồi
- filter (mảng arrays(objects), tùy chọn) - bộ lọc các mục nhập
order/list – Ví dụ về phản hồi
{ "current_page": 1, "data": [ { "guid": 96134274, "status": 4 }, { "guid": 81373165, "status": 3 } ], "first_page_url": "/api/v1/private/order/list?page=1", "from": 1, "last_page": 1, "last_page_url": "/api/v1/private/order/list?page=1", "links": [ { "url": null, "label": "pagination.previous", "active": false }, { "url": "/api/v1/private/order/list?page=1", "label": "1", "active": true }, { "url": null, "label": "pagination.next", "active": false } ], "next_page_url": null, "path": "/api/v1/private/order/list", "per_page": 15, "prev_page_url": null, "to": 2, "total": 2, "draw": null, "status": "ok" }
order/list – Tham số phản hồi
- guid – GUID của đơn đặt hàng
- status – trạng thái phản hồi API
Phương pháp "account/list" – liệt kê các tài khoản nội bộ
Nhận danh sách các tài khoản nội bộ, bao gồm số tiền hiện có sẵn. Vì có một tài khoản nội bộ riêng cho từng phần của trang web (buyer, affiliate, seller, dealer), nên có nhiều tài khoản trong tài khoản.
account/list – Yêu cầu ví dụ
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/account/list' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
account/list – Ví dụ về phản hồi
{ "current_page": 1, "data": [ { "guid": 29778748, "user_id": 81841325, "id": 1, "section": "affiliate", "currency": "TRX", "balance": "2.511531" }, { "guid": 64463815, "user_id": 81841325, "id": 2, "section": "buyer", "currency": "TRX", "balance": "41.704" } ], "first_page_url": "/api/v1/private/account/list?page=1", "from": 1, "last_page": 1, "last_page_url": "/api/v1/private/account/list?page=1", "links": [ { "url": null, "label": "pagination.previous", "active": false }, { "url": "/api/v1/private/account/list?page=1", "label": "1", "active": true }, { "url": null, "label": "pagination.next", "active": false } ], "next_page_url": null, "path": "/api/v1/private/account/list", "per_page": 15, "prev_page_url": null, "to": 2, "total": 2, "draw": null, "status": "ok" }
account/list – Tham số phản hồi
- guid – GUID của tài khoản nội bộ
- id – ID tuần tự của tài khoản nội bộ
- section - phần EnergyFather này thuộc về
- balance – quỹ có sẵn
- currency – tiền tệ
- user_id – GUID của người dùng
Phương pháp "account/get/{id}" – nhận tài khoản nội bộ chính xác
Lấy số dư của tài khoản nội bộ cho một phần cụ thể của EnergyFather. Vì mỗi phần có tài khoản (buyer, affiliate, seller, dealer) riêng, nên có một số tài khoản cho mỗi người dùng. Trước tiên, bạn có thể sử dụng phương pháp "account/list" để lấy danh sách của họ, tìm hiểu ‘id’ của tài khoản quan tâm, sau đó sử dụng ‘id’ này để lấy số dư của một tài khoản cụ thể.
account/get/{id} – Yêu cầu ví dụ
curl -X 'POST' 'https://panel.energyfather.com/api/v1/private/account/get/1' -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'
account/get/{id} – Ví dụ về phản hồi
{ "status": "ok", "data": { "guid": 64463815, "user_id": 81841325, "id": 2, "section": "buyer", "currency": "TRX", "balance": "41.704" } }
account/get/{id} – Tham số phản hồi
- guid – GUID của tài khoản nội bộ
- id - ID tuần tự của tài khoản nội bộ
- section - phần EnergyFather này thuộc về
- balance - tiền có sẵn
- currency - tiền tệ
- user_id - GUID của người dùng