تحتوي كل استجابة خطأ على حقلين: error (قابلة للقراءة آلياً، مستقرة، لا تتغير بين الإصدارات) و message (قابل للقراءة البشرية، وقد يتم تحسينه بمرور الوقت). قم بتشغيله دائمًا error في الكود الخاص بك. اعرض message للمستخدمين.

تنسيق الخطأ

تتبع جميع استجابات الأخطاء نفس البنية:

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

تتضمن بعض الأخطاء حقولاً إضافية: ref (معرف مرجعي لمحاولة التفويض) و refund (تفاصيل حول استرداد الأموال تلقائيًا).

أخطاء التحقق

رمز الخطأHTTPسببدقة
invalid_tx_hash400tx_hash ليس سلسلة سداسية عشرية مكونة من 64 حرفًاتحقق من تنسيق التجزئة. يجب أن يكون 64 حرفًا سداسيًا عشريًا بالضبط، بدون أي بادئة.
invalid_address400delegate_to ليس عنوان Tron صالحًاتحقق من صحة العنوان باستخدام TronWeb () قبل الاستدعاء.
missing_signature400لم يتم تقديم أي توقيع في الطلبوقّع الرسالة {tx_hash}:{delegate_to} مع tronWeb.trx.signMessageV2() من المحفظة التي أرسلت عملة TRX .
invalid_signature401تعذر التحقق من التوقيعتأكد من أنك وقعت بالضبط {tx_hash}:{delegate_to} (رمز سداسي عشري صغير، نقطتان رأسيتان، عنوان Tron الدقيق).
signature_mismatch403عنوان المُوقِّع لا يتطابق مع عنوان مُرسِل الدفعةيجب أن يكون التوقيع من نفس المحفظة التي أرسلت دفعة TRX . محفظة مختلفة = رفض.

أخطاء في الدفع

رمز الخطأHTTPسببدقة
payment_verification_failed404 / 400لم يتم التحقق من عملية الدفع عبر سلسلة الكتل. message يصف الحقل السبب المحدد.الأسباب الشائعة: لم يتم تأكيد المعاملة بعد (انتظر من 3 إلى 5 ثوانٍ ثم أعد المحاولة مرة أخرى)، عنوان المستلم خاطئ، المعاملة ليست تحويل TRX ، أقل من الحد الأدنى البالغ 4 TRX .
hash_already_used409تم بالفعل المطالبة برمز التجزئة هذا للمعاملةلا يمكن استخدام كل رمز دفع إلا مرة واحدة. أرسل دفعة جديدة لتفويض جديد.

أخطاء الخدمة

رمز الخطأHTTPسببدقة
delegation_failed400 / 500لم يتمكن مزود الخدمة من تسليم تفويض الطاقةإذا حدث العطل بعد التحقق من دفعتك، فسيتم إرسال رد تلقائي. تحقق من refund وإلا، فأعد المحاولة، أو اتصل بالدعم الفني. ref بطاقة تعريف.
rate_limited429عدد كبير جداً من الطلبات من هذا العنوان IPخفف السرعة وحاول مرة أخرى. الحد الأقصى هو 20 طلبًا في الثانية.
server_error500خطأ داخلي غير متوقعأعد المحاولة بعد بضع ثوانٍ. إذا استمرت المشكلة، فاتصل بالدعم الفني. ref إن كان ذلك متاحاً.

معالجة الأخطاء في التعليمات البرمجية

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