İşlem Oluştur
Enerji veya bandwidth satın alma, kaynak paketi ya da adres etkinleştirme için yeni işlem oluşturur.
Bir kaynak paketi, tek bir API isteğinde hem enerji hem de bandwidth satın almanızı sağlar.
POST /v1/transaction/new
İstek
İstek Parametreleri
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
| external_id | string | Hayır | İsteğe bağlı dış işlem tanımlayıcısı |
| service | string | Evet | Hizmet türü: "energy", "bandwidth", "resource_bundle" veya "activate_address" |
| params | object | Evet | Hizmet parametreleri nesnesi |
| params.address | string | Evet | TRON cüzdan adresi (34 karakter) |
| params.amount* | integer | Koşullu | Satın alınacak energy veya bandwidth miktarı. service="energy" veya "bandwidth" olduğunda ve params.amounts sağlanmadığında gereklidir. |
| params.energy_amount* | integer | Hayır | Kullanımdan kalktı. params.amount veya params.amounts.energy kullanın. |
| params.amounts* | object | Koşullu | Kaynak miktarları nesnesi. service="resource_bundle" olduğunda gereklidir. "energy" ve "bandwidth" hizmetleri için de kullanılabilir. |
| params.amounts.energy | integer | Koşullu | Satın alınacak enerji miktarı. "resource_bundle" için amounts içinde gereklidir. |
| params.amounts.bandwidth | integer | Koşullu | Satın alınacak bandwidth miktarı. "resource_bundle" için amounts içinde gereklidir. |
| params.duration | integer | Evet | Saat cinsinden süre. Energy, bandwidth ve resource_bundle için şu anda yalnızca 1 saat desteklenmektedir. |
| params.activate_address | boolean | Hayır | Adresi etkinleştirip etkinleştirmeyeceği. Energy, bandwidth ve resource_bundle hizmetleri için isteğe bağlı. |
* En evrensel yaklaşım olarak amounts nesnesini kullanmanızı öneririz. API, kaynak miktarını şu sırayla çözümler: params.amounts → params.amount → params.energy_amount.
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
"external_id": "my-external-id-123",
"service": "energy",
"params": {
"address": "TRX_ADDRESS",
"amounts": {
"energy": 65000
},
"duration": 1
}
}'
# İmzayı hesapla
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)
# API isteği yap
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 = 'your_api_token';
const apiSecret = 'your_api_secret';
const requestBody = JSON.stringify({
external_id: 'my-external-id-123',
service: 'energy',
params: {
address: 'TRX_ADDRESS',
amounts: {
energy: 65000
},
duration: 1
}
});
// İmzayı hesapla
const signature = crypto
.createHash('sha256')
.update(requestBody + apiSecret)
.digest('hex');
// API isteği yap
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 = 'your_api_token';
$apiSecret = 'your_api_secret';
$requestBody = json_encode([
'external_id' => 'my-external-id-123',
'service' => 'energy',
'params' => [
'address' => 'TRX_ADDRESS',
'amounts' => [
'energy' => 65000
],
'duration' => 1
]
]);
// İmzayı hesapla
$signature = hash('sha256', $requestBody . $apiSecret);
// API isteği yap
$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 = 'your_api_token'
api_secret = 'your_api_secret'
request_body = json.dumps({
'external_id': 'my-external-id-123',
'service': 'energy',
'params': {
'address': 'TRX_ADDRESS',
'amounts': {
'energy': 65000
},
'duration': 1
}
})
# İmzayı hesapla
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()
# API isteği yap
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())Kaynak Paketi için Örnek İstek
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
"external_id": "my-external-id-123",
"service": "resource_bundle",
"params": {
"address": "TRX_ADDRESS",
"amounts": {
"energy": 65000,
"bandwidth": 345
},
"duration": 1,
"activate_address": true
}
}'
# Calculate signature
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)
# Make API request
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 = 'your_api_token';
const apiSecret = 'your_api_secret';
const requestBody = JSON.stringify({
external_id: 'my-external-id-123',
service: 'resource_bundle',
params: {
address: 'TRX_ADDRESS',
amounts: {
energy: 65000,
bandwidth: 5000
},
duration: 1,
activate_address: true
}
});
// Calculate signature
const signature = crypto
.createHash('sha256')
.update(requestBody + apiSecret)
.digest('hex');
// Make API request
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 = 'your_api_token';
$apiSecret = 'your_api_secret';
$requestBody = json_encode([
'external_id' => 'my-external-id-123',
'service' => 'resource_bundle',
'params' => [
'address' => 'TRX_ADDRESS',
'amounts' => [
'energy' => 65000,
'bandwidth' => 5000
],
'duration' => 1,
'activate_address' => true
]
]);
// Calculate signature
$signature = hash('sha256', $requestBody . $apiSecret);
// Make API request
$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 = 'your_api_token'
api_secret = 'your_api_secret'
request_body = json.dumps({
'external_id': 'my-external-id-123',
'service': 'resource_bundle',
'params': {
'address': 'TRX_ADDRESS',
'amounts': {
'energy': 65000,
'bandwidth': 5000
},
'duration': 1,
'activate_address': True
}
})
# Calculate signature
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()
# Make API request
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())Adres Etkinleştirme için Örnek İstek
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
"external_id": "my-external-id-123",
"service": "activate_address",
"params": {
"address": "TRX_ADDRESS"
}
}'
# İmzayı hesapla
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)
# API isteği yap
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 = 'your_api_token';
const apiSecret = 'your_api_secret';
const requestBody = JSON.stringify({
external_id: 'my-external-id-123',
service: 'activate_address',
params: {
address: 'TRX_ADDRESS'
}
});
// İmzayı hesapla
const signature = crypto
.createHash('sha256')
.update(requestBody + apiSecret)
.digest('hex');
// API isteği yap
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));Yanıt
Yanıt, oluşturulan işlem hakkında ayrıntıları sağlar.
Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
| code | integer | Yanıt kodu (0 = başarılı) |
| request_id | string | Benzersiz istek tanımlayıcısı |
| result | object | Yanıt verisi |
| result.id | string | Dahili işlem kimliği |
| result.external_id | string|null | Dış işlem kimliği (sağlanmışsa) |
| result.service | string | Hizmet türü: "energy", "bandwidth", "resource_bundle" veya "activate_address" |
| result.params | object | Orijinal istek parametreleri |
| result.params.activate_address | boolean | Adres etkinleştirmesinin istenip istenmediği |
| result.status | string | İşlem durumu (durum listesine bakın) |
| result.amount | float | İşlem tutarı |
| result.created_at | string | Oluşturma zaman damgası (ISO 8601 formatı) |
| result.hash | string | İşlem hash'i (tamamlanmışsa) |
Örnek Yanıt
json
{
"code": 0,
"request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
"result": {
"id": "transaction_id",
"external_id": "my-external-id-123",
"service": "energy",
"params": {
"address": "TRX_ADDRESS",
"amounts": {
"energy": 65000
},
"duration": 1,
"activate_address": false
},
"status": "success",
"amount": 8.25,
"created_at": "2024-03-22T12:00:00Z",
"hash": "transaction_hash"
}
}Olası Hatalar
| Hata Kodu | Key | Açıklama |
|---|---|---|
| 1 | auth | Kimlik doğrulama hatası (yanlış token veya imza) |
| 2 | invalid_service_or_params | Geçersiz hizmet veya parametreler |
| 5 | wallet_not_found | Cüzdan bulunamadı |
| 6 | insufficient_funds | Yetersiz bakiye |
| 10 | invalid_tron_address | Geçersiz TRON adresi |
| 11 | invalid_energy_amount | Geçersiz enerji miktarı |
| 12 | invalid_duration | Geçersiz süre |
| 50 | invalid_bandwidth_amount | Geçersiz bandwidth miktarı |
| 24 | address_not_activated | Adres etkinleştirilmemiş |
| 25 | address_already_activated | Adres zaten etkinleştirilmiş |
| 35 | service_unavailable | Hizmet kullanılamıyor |
| 500 | internal_server_error | Dahili sunucu hatası |
