АДРЕСИ ПАРДАХТИ API
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
TRX ба ин адрес фиристед. Hash-и трanzaksiyai шумо барои даъво кардани иҷораи энергия истифода мешавад.

Интегирасиони пурра дар PHP бо истифодаи iexbase/tron-api библиотека. Ҳар қадам як блоки кодҳои алоҳидаеро нумояндеги мекунад, ки шумо метавонед дар лоҳаи худ копӣ кунед. Бо ҳама фреймворкҳои PHP ё PHP сафе кор мекунад.

Талабот аввал: PHP 7.4+, Composer, ext-gmp ва ext-bcmath фаъол, ҳамёни Tron бо молиёт.
Дар бораи имзокунӣ дар PHP: API-и TronEnergy таваътуқ дорад ба имзои ҳамён бо истифодаи tronWeb.trx.signMessageV2(). iexbase/tron-api библиотека ин примитивҳои имзокунии дақиқ намоён намекунад, бинобарин ин роҳнамо як ёрии хурди Node.js барои қадами имзокунӣ истифода мебарад. Ҳама чизи дигар (фиристании TRX, дахл кунидани API, фиристании USDT) дар PHP мемонад. Агар шумо як ҳалли имзокунии PHP-и хоб дошта бошед, ки сифаҳо signMessageV2-и дуруст созад, метавонед дастгирро иваз кунед бидуни табдили қадамҳои дигари.

Ҷараён

Калиди API нест. Қайд кунӣ нест. Коди шумо TRX-ро дар ҷинҷиреи блокчейн ба адреси пардахти TronEnergy мефиристад, паёми имзошуда барои ба бетадиқ аст, сипас иҷораи энергияро талаб мекунад. Энергия дар тақрибан 3 сонияҳо ба расад. Сипас коди шумо USDT-ро бо истифодаи энергияи иҷорашуда мефиристад.

1
TRX фиристед
4 ё зиёдтар TRX ба адреси пардахт дар ҷинҷир фиристед (ҳадди ақалл 4, ҳадди аксимум 1000).
2
Имзо
tx_hash:delegate_to-ро имзо кунед, то исбот кунед, ки шумо фиристандаа.
3
Даъво
POST /delegate бо tx hash ва имза. Энергия дар ≈3 сонияҳо ба расад.
Нарх хатти: 16,250 Energy барои 1 TRX. Закази ҳадди ақал 4 TRX (65,000 Energy — яке интиқоли стандартии USDT), максимум 1,000 TRX (16.25M Energy). Сумаи фурухташта муайян мекунад ки чӣ қадри Energy вақф мегардад — бе сатҳҳо, бе пакетҳо. Барои яке интиқоли стандартӣ, истифода баред $trxAmount = 4. Барои интиқоли ҳамёни нави, истифода баред 8. Барои кори ҷамъӣ, бештар истифода баред. Коди дар поён ўстувори $trxAmount тағирёбанда истифода мебарад, то шумо онро дар як ҷо тағйир карда тавонед.

Қадам ба қадам

1. Насб кунед

composer
composer require iexbase/tron-api

2. Танзим кунед

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
Эҳтимодномаҳоро кодла нанависед. Калиди хусусии худро аз тағирёбандаҳои муҳити заполиён ё мудираи асрор барқарор кунед. Эҳ гоҳ асрорҳоро ба git фиристед.

4. TRX фиристед

фиристодани 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. Паём имзо кунед

API имзаи исботи онро талаб мекунад, ки ҳамон ҳамёни фиристаи TRX вақф талаб мекунад. Мо инро бо ёридҳандаи хурди Node.js анҷом медиҳем. Онро чун sign.js дар канори файли 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); });

TronWeb-ро дар ҳамон папка насб кунед: npm install tronweb. Сипас онро аз PHP даъват кунед:

имзо аз 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. Вақф талаб кунед

талаб намудани мӯктобӣ
// $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. USDT фиристед

фиристодани USDT
// Energy is now delegated. Send USDT. $contract = $tron->contract($usdt); $transfer = $contract->transfer($delegateTo, 10 * pow(10, 6)); echo "USDT sent: " . $transfer . "\n";

Идоракунии хатоҳо

Даъвати талаб-ҷавобро дар ёридҳандаи алоҳидаи қайд мехӯрӣ баста гузоред. Хатои маъмултарин payment_verification_failed вақт аст, ки tx яслӯ индекс нашуда баҳар — чанд сонияҳо интизор рӯед ва бори дигар кӯшиш кунед.

идоракунии хатоҳо
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'); }

Мисоли мукаммал

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