TÀI LIỆU DÀNH CHO NHÀ PHÁT TRIỂN
ERROR CODES
Danh sách đầy đủ các mã lỗi API TronEnergy kèm theo mô tả và các bước khắc phục.
Mỗi phản hồi lỗi đều có hai trường: error (có thể đọc được bằng máy, ổn định, không thay đổi giữa các phiên bản) và message (Dễ đọc, có thể được cải thiện theo thời gian). Luôn bật. error trong mã của bạn. Hiển thị message cho người dùng.
Định dạng lỗi
Tất cả các phản hồi lỗi đều tuân theo cùng một cấu trúc:
error response
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
Một số lỗi bao gồm các trường bổ sung: ref (mã định danh tham chiếu cho nỗ lực ủy quyền) và refund (Thông tin chi tiết về việc hoàn tiền tự động).
Lỗi xác thực
| Mã lỗi | HTTP | Gây ra | Nghị quyết |
|---|---|---|---|
invalid_tx_hash | 400 | tx_hash không phải là chuỗi thập lục phân 64 ký tự | Kiểm tra định dạng mã băm. Phải có chính xác 64 ký tự thập lục phân, không có tiền tố. |
invalid_address | 400 | delegate_to không phải là một địa chỉ Tron hợp lệ. | Hãy xác thực địa chỉ bằng TronWeb () trước khi gọi hàm. |
missing_signature | 400 | Không có chữ ký nào được cung cấp trong yêu cầu. | Ký tên vào tin nhắn {tx_hash}:{delegate_to} với tronWeb.trx.signMessageV2() từ ví đã gửi TRX . |
invalid_signature | 401 | Không thể xác minh chữ ký. | Hãy chắc chắn rằng bạn đã ký đúng chính xác. {tx_hash}:{delegate_to} (Mã băm thập lục phân viết thường, dấu hai chấm, địa chỉ Tron chính xác). |
signature_mismatch | 403 | Địa chỉ người ký không trùng khớp với địa chỉ người gửi thanh toán. | Chữ ký phải đến từ cùng một ví đã gửi khoản thanh toán TRX . Ví khác = bị từ chối. |
Lỗi thanh toán
| Mã lỗi | HTTP | Gây ra | Nghị quyết |
|---|---|---|---|
payment_verification_failed | 404 / 400 | Giao dịch thanh toán trên chuỗi không thể được xác minh. message Trường này mô tả nguyên nhân cụ thể. | Nguyên nhân thường gặp: giao dịch chưa được xác nhận (chờ 3-5 giây và thử lại một lần nữa), địa chỉ người nhận không chính xác, giao dịch không phải là chuyển khoản TRX , số lượng TRX tối thiểu dưới 4. |
hash_already_used | 409 | Mã băm giao dịch này đã được người khác sử dụng. | Mỗi mã băm thanh toán chỉ có thể được sử dụng một lần. Hãy gửi một khoản thanh toán mới cho một ủy quyền mới. |
Lỗi dịch vụ
| Mã lỗi | HTTP | Gây ra | Nghị quyết |
|---|---|---|---|
delegation_failed | 400 / 500 | Nhà cung cấp không thể thực hiện ủy quyền năng lượng. | Nếu lỗi xảy ra sau khi thanh toán của bạn đã được xác nhận, một khoản hoàn tiền tự động sẽ được xếp vào hàng chờ. Hãy kiểm tra... refund đối tượng. Nếu không, hãy thử lại hoặc liên hệ với bộ phận hỗ trợ. ref NHẬN DẠNG. |
rate_limited | 429 | Quá nhiều yêu cầu từ địa chỉ IP này. | Hãy giảm tốc độ và thử lại. Giới hạn là 20 yêu cầu mỗi giây. |
server_error | 500 | Lỗi nội bộ không mong muốn | Hãy thử lại sau vài giây. Nếu vẫn không được, hãy liên hệ với bộ phận hỗ trợ. ref Nếu có sẵn. |
Xử lý lỗi trong mã nguồn
recommended error handling
const result = await fetch('https://api.tronnrg.com/delegate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ tx_hash: hash, delegate_to: addr, signature: sig }),
}).then(r => r.json());
if (result.error) {
switch (result.error) {
case 'payment_verification_failed':
// Most common: tx not yet indexed. Wait 3s and retry once.
await new Promise(r => setTimeout(r, 3000));
return retry(hash, addr);
case 'hash_already_used':
// Already claimed. Don't retry.
throw new Error('Duplicate delegation attempt');
case 'signature_mismatch':
// Signer != payment sender. Sign with the same key.
throw new Error('Signer does not match payment sender');
case 'delegation_failed':
// Refund queued automatically if payment was verified.
if (result.refund) console.log('Refund queued:', result.refund);
break;
default:
console.error(result.error, result.message);
}
return;
}
// Success
console.log('Delegated:', result.energy, 'energy');
console.log('Delegation tx:', result.delegations[0].tx); // verify on TronScan
console.log('Ref:', result.ref);