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ỗiHTTPGây raNghị quyết
invalid_tx_hash400tx_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_address400delegate_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_signature400Khô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_signature401Khô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_mismatch403Đị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ỗiHTTPGây raNghị quyết
payment_verification_failed404 / 400Giao 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_used409Mã 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ỗiHTTPGây raNghị quyết
delegation_failed400 / 500Nhà 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_limited429Quá 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_error500Lỗi nội bộ không mong muốnHã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);
Telegram WhatsApp