Skip to content

Utwórz transakcję

Tworzy nową transakcję do zakupu energii lub aktywacji adresu.

POST /v1/transaction/new

Żądanie

Parametry żądania

PoleTypWymaganeOpis
external_idstringNieOpcjonalny zewnętrzny identyfikator transakcji
servicestringTakTyp usługi, musi być "energy" lub "activate_address"
paramsobjectTakObiekt parametrów usługi
params.addressstringTakAdres portfela TRON (34 znaki)
params.energy_amountintegerTak*Ilość energii do zakupu. Wymagane gdy service="energy"
params.durationintegerTak*Czas trwania w godzinach (1 godzina lub 24 godziny). Wymagane gdy service="energy"
params.activate_addressbooleanNieCzy aktywować adres. Opcjonalne dla usługi energii

* Wymagane tylko gdy service="energy"

bash
#!/bin/bash
API_TOKEN="twoj_token_api"
API_SECRET="twoj_sekret_api"
REQUEST_BODY='{
  "external_id": "moj-zewnetrzny-id-123",
  "service": "energy",
  "params": {
    "address": "ADRES_TRX",
    "energy_amount": 65000,
    "duration": 1
  }
}'

# Oblicz podpis
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Wykonaj żądanie API
curl -X POST "https://api.tronzap.com/v1/transaction/new" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'twoj_token_api';
const apiSecret = 'twoj_sekret_api';
const requestBody = JSON.stringify({
  external_id: 'moj-zewnetrzny-id-123',
  service: 'energy',
  params: {
    address: 'ADRES_TRX',
    energy_amount: 65000,
    duration: 1
  }
});

// Oblicz podpis
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Wykonaj żądanie API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/transaction/new',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
php
<?php
$apiToken = 'twoj_token_api';
$apiSecret = 'twoj_sekret_api';
$requestBody = json_encode([
  'external_id' => 'moj-zewnetrzny-id-123',
  'service' => 'energy',
  'params' => [
    'address' => 'ADRES_TRX',
    'energy_amount' => 65000,
    'duration' => 1
  ]
]);

// Oblicz podpis
$signature = hash('sha256', $requestBody . $apiSecret);

// Wykonaj żądanie API
$ch = curl_init('https://api.tronzap.com/v1/transaction/new');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer ' . $apiToken,
  'X-Signature: ' . $signature,
  'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
python
import hashlib
import json
import requests

api_token = 'twoj_token_api'
api_secret = 'twoj_sekret_api'
request_body = json.dumps({
  'external_id': 'moj-zewnetrzny-id-123',
  'service': 'energy',
  'params': {
    'address': 'ADRES_TRX',
    'energy_amount': 65000,
    'duration': 1
  }
})

# Oblicz podpis
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Wykonaj żądanie API
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.tronzap.com/v1/transaction/new',
  headers=headers,
  data=request_body
)

print(response.json())

Przykład żądania aktywacji adresu

bash
#!/bin/bash
API_TOKEN="twoj_token_api"
API_SECRET="twoj_sekret_api"
REQUEST_BODY='{
  "external_id": "moj-zewnetrzny-id-123",
  "service": "activate_address",
  "params": {
    "address": "ADRES_TRX"
  }
}'

# Oblicz podpis
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Wykonaj żądanie API
curl -X POST "https://api.tronzap.com/v1/transaction/new" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'twoj_token_api';
const apiSecret = 'twoj_sekret_api';
const requestBody = JSON.stringify({
  external_id: 'moj-zewnetrzny-id-123',
  service: 'activate_address',
  params: {
    address: 'ADRES_TRX'
  }
});

// Oblicz podpis
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Wykonaj żądanie API
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/transaction/new',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));

Odpowiedź

Odpowiedź zawiera szczegóły utworzonej transakcji.

Pola odpowiedzi

PoleTypOpis
codeintegerKod odpowiedzi (0 = sukces)
resultobjectDane odpowiedzi
result.idstringWewnętrzne ID transakcji
result.external_idstringZewnętrzne ID transakcji (jeśli podane)
result.paramsobjectOryginalne parametry żądania
result.statusstringStatus transakcji (zobacz listę statusów)
result.amountfloatKwota transakcji
result.created_atstringZnacznik czasu utworzenia (format ISO 8601)
result.hashstringHash transakcji (jeśli ukończona)

Przykład odpowiedzi

json
{
    "code": 0,
    "result": {
        "id": "id_transakcji",
        "external_id": "moj-zewnetrzny-id-123",
        "params": {
            "address": "ADRES_TRX",
            "energy_amount": 65000,
            "duration": 1
        },
        "status": "success",
        "amount": 8.25,
        "created_at": "2024-03-22T12:00:00Z",
        "hash": "hash_transakcji"
    }
}

Możliwe błędy

Kod błęduOpis
1Błąd uwierzytelniania (nieprawidłowy token lub podpis)
2Nieprawidłowa usługa lub parametry
5Portfel nie znaleziony
6Niewystarczające środki
10Nieprawidłowy adres TRON
11Nieprawidłowa ilość energii
12Nieprawidłowy czas trwania
24Adres nie aktywowany
25Adres już aktywowany
500Wewnętrzny błąd serwera

Tron Energy API Documentation