ANWANI YA MALIPO YA API
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Tuma TRX kwa anwani hii. Hash ya tx yako inatumika kudai kukodisha nishati.

Ujumuishaji kamili wa PHP ukitumia iexbase/tron-api maktaba. Kila hatua ni kizuizi cha msimbo kinachojiweza unachoweza kunakili kwenye mradi wako. Inafanya kazi na muundo wowote wa PHP au PHP safi.

Mahitaji: PHP 7.4+, Composer, ext-gmp na ext-bcmath iliyowezeshwa, pochi ya Tron iliyo na pesa.
Kuhusu kusaini katika PHP: API ya TronEnergy inahitaji saini ya pochi ukitumia tronWeb.trx.signMessageV2(). iexbase/tron-api maktaba haifichi kitendaji hiki halisi cha kusaini, kwa hivyo mwongozo huu unatumia msaada mdogo wa Node.js kwa hatua ya kusaini. Kila kitu kingine (kutuma TRX, kupiga API, kutuma USDT) kinabaki katika PHP. Ikiwa una suluhu safi-PHP la kusaini linalozalisha saini halali ya signMessageV2, unaweza kubadili msaada bila kubadili hatua nyingine.

Mtiririko

Hakuna funguo la API. Hakuna usajili. Msimbo wako hutuma TRX on-chain kwa anwani ya malipo ya TronEnergy, anasaini ujumbe uthibitishaaji wa umiliki, kisha kudai kukodisha nishati. Nishati inakuja takriban sekunde 3. Kisha msimbo wako hutuma USDT ukitumia nishati iliyokodishwa.

1
Tuma TRX
Tuma TRX 4 au zaidi kwa anwani ya malipo on-chain (chini 4, juu 1000).
2
Saini
Saini tx_hash:delegate_to kuthibitisha unajituma.
3
Dai
POST /delegate na hash ya tx na saini. Nishati inakuja takriban sekunde 3.
Bei bei ni sawa: Nishati 16,250 kwa TRX. Agizo la chini ni 4 TRX (Nishati 65,000 — kutuma USDT sanifu moja), kwa juu ni 1,000 TRX (Nishati 16.25M). Kiasi unachotuma kinatambuwa kamili ni nishati gani itakodishwa — hakuna kiwango, hakuna pakiti. Kwa kutuma sanifu moja, tumia $trxAmount = 4. Kwa kutuma pochi mpya, tumia 8. Kwa kazi ya kundi, tumia zaidi. Nambari hapa chini inatumia $trxAmount kigeu ili uweze kubadili sehemu moja tu.

Hatua kwa Hatua

1. Sakinisha

composer
composer require iexbase/tron-api

2. Andaa

setup.php
require_once 'vendor/autoload.php'; use IEXBase\TronAPI\Tron; $tron = new Tron(); $tron->setPrivateKey('YOUR_PRIVATE_KEY'); $tron->setAddress('YOUR_WALLET_ADDRESS'); $api = 'https://api.tronnrg.com'; $addr = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; // API payment address $usdt = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'; // USDT contract
Usikodishe alama za siri katika msimbo. Pakia kitufe chako cha siri kutoka kwa anuwai ya mazazi au meneja wa siri. Usisambaze siri kwenye git.

4. Tuma TRX

kutuma TRX
// Send TRX to the API payment address — pricing is linear. // 16,250 energy per TRX. Min 4 TRX, max 1,000 TRX. // $trxAmount = 4 → 65,000 energy (standard USDT transfer) // $trxAmount = 8 → 130,000 energy (new wallet transfer) // $trxAmount = 40 → 650,000 energy (10 standard transfers) // $trxAmount = 1000 → 16,250,000 energy (max) $trxAmount = 4; $payment = $tron->sendTrx($addr, $trxAmount); if (!isset($payment['result']) || !$payment['result']) { throw new Exception('TRX transfer failed'); } $txHash = $payment['txid']; echo "Payment sent: ${txHash}\n";

5. Saini Ujumbe

API inahitaji saini inayothibitisha kwamba pochi ile ile iliyotuma TRX inaomba utoaji wa nishati. Tunafanya hii kwa kisaada kidogo cha Node.js. Iokeze kama sign.js kando ya faili lako la PHP:

sign.js
// Usage: node sign.js <tx_hash> <delegate_to> // Outputs the signature to stdout. Reads private key from TRON_PRIVATE_KEY env var. const { TronWeb } = require('tronweb'); const [, , txHash, delegateTo] = process.argv; const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io', privateKey: process.env.TRON_PRIVATE_KEY, }); tronWeb.trx.signMessageV2(`${txHash}:${delegateTo}`) .then(sig => process.stdout.write(sig)) .catch(e => { console.error(e.message); process.exit(1); });

Sakinisha TronWeb katika kapu moja: npm install tronweb. Kisha iite kutoka PHP:

saini kutoka PHP
// Both the sender (in $tron) and the signer must be the SAME wallet. // Make sure TRON_PRIVATE_KEY in your environment matches the wallet that sent the TRX. $delegateTo = 'TWalletThatNeedsEnergy'; $signature = trim(shell_exec( sprintf('node sign.js %s %s', escapeshellarg($txHash), escapeshellarg($delegateTo) ) )); if (!$signature) { throw new Exception('Signing failed. Check that node and tronweb are installed and TRON_PRIVATE_KEY is set.'); } echo "Signed: " . substr($signature, 0, 20) . "...\n";

6. Dai Nishati

kukuza ridhaa
// $txHash, $delegateTo, and $signature are all defined in the previous steps. $ch = curl_init("${api}/delegate"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => $txHash, 'delegate_to' => $delegateTo, 'signature' => $signature, ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); echo "Energy: " . $result['energy'] . "\n"; echo "Ref: " . $result['ref'] . "\n";

7. Tuma USDT

kutuma USDT
// Energy is now delegated. Send USDT. $contract = $tron->contract($usdt); $transfer = $contract->transfer($delegateTo, 10 * pow(10, 6)); echo "USDT sent: " . $transfer . "\n";

Kukamatia Hitilafu

Funika waganyaji wa dai katika kisaada kidogo cha kujaribu tena. Hitilafu ya kawaida ni payment_verification_failed wakati tx bado haijasandwa mlangoni — subiri sekunde chache na jaribu tena.

usambulisho wa kosa
function claimDelegation($api, $txHash, $delegateTo, $signature, $retries = 3) { for ($i = 0; $i < $retries; $i++) { $ch = curl_init("${api}/delegate"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => $txHash, 'delegate_to' => $delegateTo, 'signature' => $signature, ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (!isset($result['error'])) { return $result; // Success } switch ($result['error']) { case 'payment_verification_failed': // Most common: tx not yet indexed. Wait and retry. sleep(3); continue 2; case 'hash_already_used': throw new Exception('This tx hash has already been claimed'); case 'signature_mismatch': throw new Exception('Signer does not match payment sender. Sign with the same wallet that sent TRX.'); case 'delegation_failed': // Refund queued automatically if payment was verified throw new Exception('Delegation failed: ' . $result['message']); default: throw new Exception($result['message'] ?? 'Unknown error'); } } throw new Exception('Transaction not found after retries'); }

Mfano Kamili

delegate-energy.php
<?php require_once 'vendor/autoload.php'; use IEXBase\TronAPI\Tron; $tron = new Tron(); $tron->setPrivateKey(getenv('TRON_PRIVATE_KEY')); $tron->setAddress(getenv('TRON_WALLET_ADDRESS')); $api = 'https://api.tronnrg.com'; $addr = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; try { $delegateTo = 'TRecipientWallet'; $trxAmount = 4; // min 4, max 1000 — energy = trxAmount × 16,250 // 1. Send TRX (linear pricing: 16,250 energy per TRX) $payment = $tron->sendTrx($addr, $trxAmount); $txHash = $payment['txid']; echo "Payment: ${txHash}\n"; // 2. Sign via Node helper (see Step 5 above) $signature = trim(shell_exec( sprintf('node sign.js %s %s', escapeshellarg($txHash), escapeshellarg($delegateTo) ) )); if (!$signature) throw new Exception('Signing failed'); // 3. Claim delegation (with retry) $result = claimDelegation($api, $txHash, $delegateTo, $signature); echo "Energy: " . $result['energy'] . "\n"; echo "Ref: " . $result['ref'] . "\n"; // 4. Send USDT (energy is now available) $contract = $tron->contract('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'); $transfer = $contract->transfer($delegateTo, 10 * pow(10, 6)); echo "USDT sent: ${transfer}\n"; } catch (Exception $e) { echo "Error: " . $e->getMessage() . "\n"; }
Telegram WhatsApp