Ang bawat tugon sa error ay may dalawang field: error (mababasa ng makina, matatag, hindi nagbabago sa pagitan ng mga bersyon) at message (mababasa ng tao, maaaring mapabuti sa paglipas ng panahon). Palaging i-on error sa iyong code. Ipakita message sa mga gumagamit.

Error Format

Ang lahat ng mga tugon sa error ay sumusunod sa parehong istraktura:

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

Kasama sa ilang error ang mga karagdagang field: ref (isang reference ID para sa pagtatangkang magtalaga) at refund (mga detalye tungkol sa awtomatikong refund).

Mga Error sa Pagpapatunay

Kodigo ng ErrorHTTPDahilanResolusyon
invalid_tx_hash400Ang tx_hash ay hindi isang 64-karakter na hex stringSuriin ang format ng hash. Dapat ay eksaktong 64 na hex character, walang prefix.
invalid_address400Ang delegate_to ay hindi isang wastong Tron addressPatunayan ang address gamit ang TronWeb .isAddress() bago tumawag.
missing_signature400Walang lagdang ibinigay sa kahilinganLagdaan ang mensahe {tx_hash}:{delegate_to} kasama tronWeb.trx.signMessageV2() mula sa pitaka na nagpadala ng TRX .
invalid_signature401Hindi ma-verify ang lagdaSiguraduhing eksaktong pumirma ka {tx_hash}:{delegate_to} (maliit na hex hash, tutuldok, eksaktong Tron address).
signature_mismatch403Hindi tugma ang address ng pumirma sa nagpadala ng bayadAng lagda ay dapat manggaling sa parehong wallet na nagpadala ng bayad sa TRX . Ibang wallet = tinanggihan.

Mga Error sa Pagbabayad

Kodigo ng ErrorHTTPDahilanResolusyon
payment_verification_failed404 / 400Hindi ma-verify ang on-chain na bayad. Ang message Inilalarawan ng patlang ang tiyak na sanhi.Mga karaniwang sanhi: hindi pa nakumpirma ang tx (maghintay ng 3-5 segundo at subukan muli nang isang beses), maling address ng tatanggap, ang transaksyon ay hindi isang TRX transfer, mas mababa sa 4 TRX minimum.
hash_already_used409Na-claim na ang tx hash na itoAng bawat payment hash ay maaari lamang gamitin nang isang beses. Magpadala ng bagong bayad para sa isang bagong delegasyon.

Mga Error sa Serbisyo

Kodigo ng ErrorHTTPDahilanResolusyon
delegation_failed400 / 500Hindi maihatid ng provider ang paglalaan ng enerhiyaKung nangyari ang pagkabigo pagkatapos ma-verify ang iyong bayad, awtomatikong nakapila ang isang refund. Suriin ang refund bagay. Kung hindi, subukan muli, o makipag-ugnayan sa suporta sa ref ID.
rate_limited429Masyadong maraming kahilingan mula sa IP na itoDahan-dahanin at subukan muli. Ang limitasyon ay 20 kahilingan bawat segundo.
server_error500Hindi inaasahang panloob na errorSubukang muli pagkatapos ng ilang segundo. Kung magpapatuloy, makipag-ugnayan sa suporta sa ref kung mayroon.

Paghawak ng mga Error sa Code

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