API ادائیگی کا پتہ
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
اس پتے کو TRX بھیجیں۔ آپ کا tx hash توانائی کی ترسیل کا دعویٰ کرنے کے لیے استعمال ہوتا ہے۔

iexbase/tron-api لائبریری استعمال کرتے ہوئے مکمل PHP انضمام۔ ہر مرحلہ ایک الگ تھلگ کوڈ بلاک ہے جو آپ اپنے پروجیکٹ میں کاپی کر سکتے ہیں۔ کسی بھی PHP فریم ورک یا سادہ PHP کے ساتھ کام کرتا ہے۔iexbase/tron-api لائبریری۔ ہر مرحلہ ایک الگ تھلگ کوڈ بلاک ہے جو آپ اپنے پروجیکٹ میں کاپی کر سکتے ہیں۔ کسی بھی PHP فریم ورک یا سادہ PHP کے ساتھ کام کرتا ہے۔

ضروری شرائط: PHP 7.4+، Composer، ext-gmp اور ext-bcmath فعال، ایک فنڈ شدہ Tron والٹ۔
PHP میں دستخط کے بارے میں: TronEnergy API کو والٹ کی دستخط کی ضرورت ہے tronWeb.trx.signMessageV2() استعمال کرتے ہوئے۔ iexbase/tron-api لائبریری یہ بالکل صحیح دستخط کی بنیاد کو ظاہر نہیں کرتی، اس لیے یہ گائیڈ دستخط کی مرحلے کے لیے ایک چھوٹا Node.js معاون استعمال کرتی ہے۔ سب کچھ (TRX بھیجنا، API کو کال کرنا، USDT بھیجنا) PHP میں رہتا ہے۔ اگر آپ کے پاس ایک خالص PHP دستخط کا حل ہے جو ایک درست signMessageV2 دستخط تیار کرتا ہے، تو آپ معاون کو کسی دوسری مرحلے کو بدلے بغیر تبدیل کر سکتے ہیں۔

بہاؤ

کوئی API کلید نہیں۔ کوئی سائن اپ نہیں۔ آپ کا کوڈ TronEnergy ادائیگی کے پتے کو چین پر TRX بھیجتا ہے، ملکیت کو ثابت کرنے کے لیے ایک پیغام پر دستخط کرتا ہے، پھر ترسیل کا دعویٰ کرتا ہے۔ توانائی تقریباً 3 سیکنڈ میں آتی ہے۔ پھر آپ کا کوڈ منتقل کی گئی توانائی استعمال کرتے ہوئے USDT بھیجتا ہے۔

1
TRX بھیجیں
ادائیگی کے پتے کو چین پر 4 یا اس سے زیادہ TRX بھیجیں (کم از کم 4، زیادہ سے زیادہ 1000)۔
2
دستخط کریں
tx_hash:delegate_to پر دستخط کریں تاکہ یہ ثابت ہو کہ آپ بھیجنے والے ہیں۔
3
دعویٰ کریں
POST /delegate کو tx hash اور دستخط کے ساتھ بھیجیں۔ توانائی تقریباً 3s میں آتی ہے۔
قیمت لکیری ہے: 16,250 Energy فی 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
کبھی بھی credentials کو سخت کوڈ نہ کریں۔ اپنی نجی کلید کو ماحول کی متغیروں یا رازوں کے منیجر سے لوڈ کریں۔ کبھی بھی رازوں کو git میں commit نہ کریں۔

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";

خرابی کی ہینڈلنگ

claim کال کو ایک چھوٹے retry ہیلپر میں لپیٹیں۔ سب سے عام خرابی ہے 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