Расчёт цены
POST /v1/orders/calculate
Возвращает точную стоимость в TRX для гипотетического заказа без его создания. Используйте этот эндпоинт, чтобы показать пользователям стоимость до подтверждения депозита.
Это чистый ценовой эндпоинт — он не взаимодействует с сетью TRON.
Тело запроса
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
duration | integer | да | Длительность аренды ресурсов в часах. Должно быть 1. |
activation | boolean | нет | Если true, включает плату за активацию аккаунта в total. По умолчанию false. |
resources.energy | integer | нет* | Количество энергии для доставки. |
resources.bandwidth | integer | нет* | Количество пропускной способности для доставки. |
* Хотя бы одно из полей resources.energy или resources.bandwidth должно быть больше нуля.
Примеры
bash
curl -X POST https://api.tronzap.com/v1/orders/calculate \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"duration": 1,
"activation": false,
"resources": {
"energy": 65000,
"bandwidth": 345
}
}'javascript
const response = await fetch('https://api.tronzap.com/v1/orders/calculate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: JSON.stringify({
duration: 1,
activation: false,
resources: { energy: 65000, bandwidth: 345 },
}),
})
const data = await response.json()
console.log(data.result.total, data.result.currency)php
$response = file_get_contents('https://api.tronzap.com/v1/orders/calculate', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\nAccept: application/json",
'content' => json_encode([
'duration' => 1,
'activation' => false,
'resources' => ['energy' => 65000, 'bandwidth' => 345],
]),
],
]));
$data = json_decode($response, true);
echo $data['result']['total'] . ' ' . $data['result']['currency'];python
import requests
resp = requests.post('https://api.tronzap.com/v1/orders/calculate', json={
'duration': 1,
'activation': False,
'resources': {'energy': 65000, 'bandwidth': 345},
})
result = resp.json()['result']
print(result['total'], result['currency'])Ответ
json
{
"code": 0,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"result": {
"energy": { "amount": 65000, "price": 2.34 },
"bandwidth": { "amount": 345, "price": 0.35 },
"activation": { "required": false, "price": 0 },
"total": 2.69,
"currency": "TRX",
"duration": 1
}
}При activation: true (активация нового аккаунта):
json
{
"code": 0,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"result": {
"energy": { "amount": 65000, "price": 2.34 },
"bandwidth": { "amount": 345, "price": 0.35 },
"activation": { "required": true, "price": 1.40 },
"total": 4.09,
"currency": "TRX",
"duration": 1
}
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
energy.amount | integer | Отражение запрошенного количества энергии. |
energy.price | number | Стоимость энергии в TRX. |
bandwidth.amount | integer | Отражение запрошенного количества пропускной способности. |
bandwidth.price | number | Стоимость пропускной способности в TRX. |
activation.required | boolean | Отражение переданного флага activation. |
activation.price | number | Стоимость активации в TRX. 0, если активация не запрошена. |
total | number | Сумма стоимостей энергии + пропускной способности + активации. |
currency | string | Всегда TRX. |
duration | integer | Отражение запрошенной длительности. |
total совпадает с суммой заказа
Значение total из этого эндпоинта равно amount, который потребует POST /v1/orders при тех же входных данных и совпадающем результате activation.
