Her hata yanıtı iki alandan oluşur: error (makine tarafından okunabilir, kararlı, sürümler arasında asla değişmez) ve message (İnsan tarafından okunabilir, zamanla geliştirilebilir). Her zaman açık bırakın. error Kodunuzda. Görüntüle message kullanıcılara.

Hata Biçimi

Tüm hata yanıtları aynı yapıya sahiptir:

error response
{ "error": "error_code_here", "message": "Human-readable explanation" }

Bazı hatalar ek alanlar içerir: ref (yetki devri girişimine ait bir referans kimliği) ve refund (Otomatik geri ödeme ile ilgili detaylar).

Doğrulama Hataları

Hata KoduHTTPNedenÇözünürlük
invalid_tx_hash400tx_hash 64 karakterlik bir onaltılık dize değildir.Karma kodunun biçimini kontrol edin. Tam olarak 64 onaltılık karakterden oluşmalı, ön ek içermemelidir.
invalid_address400delegate_to geçerli bir Tron adresi değil.Çağrı yapmadan önce adresi TronWeb () ile doğrulayın.
missing_signature400Talepte imza bulunmamaktadır.Mesajı imzalayın {tx_hash}:{delegate_to} ile tronWeb.trx.signMessageV2() TRX gönderen cüzdandan.
invalid_signature401İmza doğrulanamadı.Tam olarak imzaladığınızdan emin olun. {tx_hash}:{delegate_to} (küçük harfli onaltılık karma kod, iki nokta üst üste, tam Tron adresi).
signature_mismatch403İmzalayanın adresi ödeme gönderenin adresiyle eşleşmiyor.İmza, TRX ödemesini gönderen cüzdanla aynı cüzdandan gelmelidir. Farklı cüzdandan gelen imzalar reddedilir.

Ödeme Hataları

Hata KoduHTTPNedenÇözünürlük
payment_verification_failed404 / 400Zincir üzerindeki ödeme doğrulanamadı. message Bu alan, belirli nedeni tanımlar.Sık karşılaşılan nedenler: işlem henüz onaylanmadı (3-5 saniye bekleyin ve bir kez daha deneyin), yanlış alıcı adresi, işlem TRX transferi değil, 4 TRX minimum tutarının altında.
hash_already_used409Bu işlem özeti (tx hash) zaten talep edildi.Her ödeme özeti yalnızca bir kez kullanılabilir. Yeni bir yetkilendirme için yeni bir ödeme gönderin.

Servis Hataları

Hata KoduHTTPNedenÇözünürlük
delegation_failed400 / 500Hizmet sağlayıcı enerji tahsisini gerçekleştiremedi.Ödemeniz doğrulandıktan sonra bir hata oluştuysa, otomatik bir geri ödeme işlemi başlatılır. Lütfen kontrol edin. refund Nesne. Aksi takdirde tekrar deneyin veya destek ekibiyle iletişime geçin. ref İD.
rate_limited429Bu IP adresinden çok fazla istek geldi.Yavaşlayın ve tekrar deneyin. Saniyede 20 istek sınırı vardır.
server_error500Beklenmeyen dahili hataBirkaç saniye sonra tekrar deneyin. Sorun devam ederse, destek ekibiyle iletişime geçin. ref Eğer mevcutsa.

Kodda Hata Yönetimi

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