NYARAKA ZA MSANIDI
Nambari za Hitilafu za TronEnergy API na Kutatua Matatizo
Orodha kamili ya nambari za hitilafu za TronEnergy API na maelezo, sababu, na hatua za kutatua. Inashughulikia uthibitisho wa malipo, sahihi, na hitilafu za kukodisha nishati.
Kila jibu la hitilafu lina sehemu mbili: error (inayoweza kusomwa na mashine, imara, haisogei kati ya matoleo) na message (inayoweza kusomwa na watu, inaweza boreswa baada ya muda). Kamata kila wakati error katika kod yako. Onyesha message kwa watumiaji.
Muundo wa Hitilafu
Majibu yote ya hitilafu yanafuata muundo sawa:
jibu la kosa
{
"error": "error_code_here",
"message": "Human-readable explanation"
}
Baadhi ya hitilafu zina sehemu za ziada: ref (kitambulisho cha kumbukumbu kwa jaribu la kukodisha nishati) na refund (maelezo kuhusu rudisha fedha ya kiotomati).
Hitilafu za Uhalali
| Msimbo wa Hitilafu | HTTP | Sababu | Suluhisho |
|---|---|---|---|
invalid_tx_hash | 400 | tx_hash si kamba ya hex ya herufi 64 | Angalia umbizo la hashi. Lazima iwe hex herufi 64 haswa, bila kiambishi. |
invalid_address | 400 | delegate_to si anwani halali ya Tron | Thibitisha anwani kwa TronWeb.isAddress() kabla ya kupigia simu. |
missing_signature | 400 | Hakuna saini iliyotolewa katika ombi | Saini ujumbe {tx_hash}:{delegate_to} kwa tronWeb.trx.signMessageV2() kutoka kwa pochi ambayo ilituma TRX. |
invalid_signature | 401 | Saini haiwezi kuthibitishwa | Hakikisha umesaini haswa {tx_hash}:{delegate_to} (hex hashi ndogo, koloni, anwani kamili ya Tron). |
signature_mismatch | 403 | Anwani ya msaini haifanani na mtumaji wa malipo | Saini lazima itoke kwenye pochi sawa ambayo ilituma malipo ya TRX. Pochi tofauti = kukataliwa. |
Hitilafu za Malipo
| Msimbo wa Hitilafu | HTTP | Sababu | Suluhisho |
|---|---|---|---|
payment_verification_failed | 404 / 400 | Malipo yenye mlolongo haywezi kuthibitishwa. Sehemu ya message inaelezea sababu mahususi. | Sababu za kawaida: tx haijathibitishwa bado (subiri sekunde 3-5 na jaribu tena), anwani mpokeaji batili, muamala si mjumbe wa TRX, chini ya kiwango cha TRX 4. |
hash_already_used | 409 | Hashi hii ya tx imetumika tayari | Kila hashi ya malipo inaweza kutumiwa mara moja tu. Tuma malipo mapya kwa kukodisha nishati mpya. |
Hitilafu za Huduma
| Msimbo wa Hitilafu | HTTP | Sababu | Suluhisho |
|---|---|---|---|
delegation_failed | 400 / 500 | Mtoa huduma hawezi kutoa kukodisha nishati | Ikiwa kushindwa kulifanyika baada ya malipo yako kuthibitishwa, rudisha fedha ya kiotomati imewekwa foleni. Angalia refund kitu. Bila hapo, jaribu tena au wasiliana na timu ya msaada na ref ID. |
rate_limited | 429 | Ombi nyingi sana kutoka IP hii | Punguza kasi na jaribu tena. Kikomo ni ombi 20 kwa sekunde. |
server_error | 500 | Hitilafu ya ndani isiyotarajiwa | Jaribu tena baada ya sekunde chache. Ikiwa inabaki, wasiliana na msaada na ref ikiwa inaweza. |
Kushughulikia Hitilafu katika Msimbo
usambulisho wa kosa uliopendekezwa
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);