Skip to content

Abonelik Geçmişi

Kullanıcının tüm abonelik geçmişini sayfalama ve durum filtreleme desteği ile döndürür.

POST /v1/subscriptions/history

İstek

Tüm parametreler isteğe bağlıdır. Parametreler belirtilmezse, 10 öğe ile ilk sayfa döndürülür.

İstek Parametreleri

AlanTipGerekliAçıklama
pageintegerHayırSayfa numarası (varsayılan: 1, minimum: 1)
per_pageintegerHayırSayfa başına öğe sayısı (varsayılan: 10, maksimum: 50)
statusstringHayırAbonelik durumuna göre filtrele
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "page": 1,
  "per_page": 10,
  "status": "active"
}'

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

# API isteği yürütme
curl -X POST "https://api.tronzap.com/v1/subscriptions/history" \
  -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({
  page: 1,
  per_page: 10,
  status: 'active'
});

// İmza hesaplama
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// API isteği yürütme
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/subscriptions/history',
  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([
  'page' => 1,
  'per_page' => 10,
  'status' => 'active'
]);

// İmza hesaplama
$signature = hash('sha256', $requestBody . $apiSecret);

// API isteği yürütme
$ch = curl_init('https://api.tronzap.com/v1/subscriptions/history');
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({
  'page': 1,
  'per_page': 10,
  'status': 'active'
})

# İmza hesaplama
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# API isteği yürütme
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

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

print(response.json())

Parametresiz İstek Örneği

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{}'

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

# API isteği yürütme
curl -X POST "https://api.tronzap.com/v1/subscriptions/history" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"

Yanıt

Yanıt, kullanıcı abonelik listesini sayfalama bilgileri ile içerir.

Yanıt Alanları

AlanTipAçıklama
codeintegerYanıt kodu (0 = başarı)
resultobjectYanıt verileri
result.pageintegerMevcut sayfa
result.per_pageintegerSayfa başına öğe sayısı
result.totalintegerToplam abonelik sayısı
result.itemsarrayAbonelik listesi
result.items[].idstringAbonelik ID'si
result.items[].statusstringAbonelik durumu
result.items[].subscription_idstringAbonelik türü ID'si
result.items[].addressstringTRON adresi
result.items[].transactions_limitintegerİşlem limiti
result.items[].transactions_usedintegerKullanılan işlemler
result.items[].energy_usedintegerKullanılan enerji
result.items[].total_pricefloatToplam maliyet
result.items[].started_atstringBaşlangıç tarihi (ISO 8601 formatı)
result.items[].renewed_atstringYenileme tarihi (ISO 8601 formatı)
result.items[].stopped_atstringDurdurma tarihi (ISO 8601 formatı)
result.items[].expire_atstringSon kullanma tarihi (ISO 8601 formatı)
result.items[].created_atstringOluşturma tarihi (ISO 8601 formatı)

Yanıt Örneği

json
{
  "code": 0,
  "result": {
    "page": 1,
    "per_page": 10,
    "total": 1,
    "items": [
      {
        "id": "01k33rz57drtqgqcedyn9tvk04",
        "status": "active",
        "subscription_id": "unlimited_energy",
        "address": "TPY1Kb8cKAZQfm95gXQQs2Mh8Uygtos21D",
        "transactions_limit": 0,
        "transactions_used": 2,
        "energy_used": 131000,
        "total_price": "8.00",
        "started_at": "2025-08-20T12:58:52+00:00",
        "renewed_at": null,
        "stopped_at": null,
        "expire_at": "2025-08-21T12:58:52+00:00",
        "created_at": "2025-08-20T12:58:52+00:00"
      },
      {
        "id": "01k36gw6cbfx4r8jhvd1qyp697",
        "status": "stopped",
        "subscription_id": "energy_pay_per_use",
        "address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
        "transactions_limit": 100,
        "transactions_used": 45,
        "energy_used": 2991000,
        "total_price": 184.0,
        "started_at": "2024-02-15T10:30:00Z",
        "renewed_at": null,
        "stopped_at": "2024-03-20T14:25:00Z",
        "expire_at": null,
        "created_at": "2024-02-15T10:25:00Z"
      }
    ]
  }
}

Olası Abonelik Durumları

DurumAçıklama
newYeni abonelik
pendingBeklemede abonelik
errorAbonelik hatası
activeAktif abonelik
stoppedDurdurulmuş abonelik
expiredSüresi dolmuş abonelik

Olası Hatalar

Hata KoduAçıklama
1Kimlik doğrulama hatası (geçersiz token veya imza)
2Geçersiz servis veya parametreler
500Sunucu iç hatası

Tron Energy API Documentation