Rent Energy on MeFree.NET
TRON Energy BotMeFree.NET
Русский
Русский
  • Описание
  • Начать
    • Как приобрести энергию TRON на Mefree.net?
      • Покупка энергии TRON через прямой перевод
      • Покупка энергии через API
      • Инструкция по вызову API Mefree.NET на языке Java
      • Руководство по вызову Mefree.NET API на Python
      • Руководство по вызову Mefree.NET API на Node.js
      • Руководство по вызову Mefree.NET API на PHP
      • Руководство по вызову Mefree.NET API на Go
    • Часто задаваемые вопросы и решения (FAQ)
  • API
    • Информация об аккаунте
    • Купить энергию
    • Детали заказа
    • доступная энергия
    • Энергия, необходимая для перевода USDT
Powered by GitBook
On this page
  1. Начать
  2. Как приобрести энергию TRON на Mefree.net?

Инструкция по вызову API Mefree.NET на языке Java

Данное руководство подробно описывает, как с помощью Java взаимодействовать с API платформы Mefree.NET, включая генерацию подписи, создание запросов и обработку ответов от API.


1. Общая информация о правилах подписи

API Mefree.NET использует механизм аутентификации на основе подписи. Подпись создается следующим образом:

1.1 Формирование строки для подписи

Строка для подписи формируется по следующему шаблону:

sign = timestamp + method + requestPath
  • timestamp: Временная метка в формате UTC (ISO 8601), например, 2024-11-26T12:34:56.789Z.

  • method: HTTP-метод, например, GET или POST.

  • requestPath: Путь запроса API (включая параметры), например:

    • /api/config

    • /api/order?quantity=65000&target_address=TRON_ADDRESS&period=1

1.2 Процесс генерации подписи

  1. Объедините timestamp, method и requestPath в одну строку.

  2. Используйте алгоритм HMAC-SHA256, чтобы зашифровать строку с использованием вашего секретного ключа API (Secret Key).

  3. Закодируйте результат с помощью Base64, чтобы получить подпись.

1.3 Обязательные заголовки HTTP

Каждый запрос к API должен содержать следующие заголовки:

  • Content-Type: application/json

  • MF-ACCESS-KEY: Ваш API-ключ.

  • MF-ACCESS-SIGN: Сгенерированная подпись.

  • MF-ACCESS-TIMESTAMP: Текущая временная метка в формате UTC.


2. Реализация генерации подписи в Java

2.1 Метод для генерации подписи

Пример реализации метода для генерации подписи:

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

public class MefreeSignatureUtil {
    /**
     * Генерация подписи для Mefree API.
     *
     * @param timestamp     Временная метка (UTC в формате ISO 8601)
     * @param method        HTTP-метод (GET/POST)
     * @param requestPath   Путь запроса (с параметрами)
     * @param secretKey     Секретный ключ API
     * @return Подпись в формате Base64
     */
    public static String generateSignature(String timestamp, String method, String requestPath, String secretKey) {
        try {
            // Формируем строку для подписи
            String stringToSign = timestamp + method + requestPath;

            // Инициализируем HMAC-SHA256
            Mac mac = Mac.getInstance("HmacSHA256");
            SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256");
            mac.init(secretKeySpec);

            // Вычисляем хэш и кодируем его в Base64
            byte[] hmacBytes = mac.doFinal(stringToSign.getBytes());
            return Base64.getEncoder().encodeToString(hmacBytes);
        } catch (Exception e) {
            throw new RuntimeException("Ошибка при генерации подписи", e);
        }
    }
}

3. Создание запросов к API

3.1 Конфигурация

Создайте конфигурацию с основными параметрами:

public class MefreeConfig {
    public static final String BASE_URL = "https://api.mefree.net"; // Базовый URL Mefree API
    public static final String API_KEY = "your_api_key";       // Ваш API-ключ
    public static final String SECRET_KEY = "your_secret_key"; // Ваш секретный ключ
}

3.2 Универсальный метод для отправки запросов

Используйте следующий метод для отправки HTTP-запросов:

import java.net.HttpURLConnection;
import java.net.URL;
import java.io.OutputStream;
import java.io.InputStream;
import java.util.Scanner;

public class MefreeApiRequest {
    /**
     * Отправка запроса к API Mefree.
     *
     * @param method      HTTP-метод (GET/POST)
     * @param requestPath Путь запроса (с параметрами)
     * @return Ответ API в виде строки
     * @throws Exception В случае ошибки
     */
    public static String sendRequest(String method, String requestPath) throws Exception {
        // Генерация временной метки (UTC)
        String timestamp = java.time.Instant.now().toString();

        // Генерация подписи
        String signature = MefreeSignatureUtil.generateSignature(timestamp, method, requestPath, MefreeConfig.SECRET_KEY);

        // Формируем полный URL
        URL url = new URL(MefreeConfig.BASE_URL + requestPath);

        // Настраиваем соединение
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod(method);
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setRequestProperty("MF-ACCESS-KEY", MefreeConfig.API_KEY);
        connection.setRequestProperty("MF-ACCESS-SIGN", signature);
        connection.setRequestProperty("MF-ACCESS-TIMESTAMP", timestamp);

        // Отправляем запрос и читаем ответ
        InputStream responseStream = connection.getInputStream();
        Scanner scanner = new Scanner(responseStream).useDelimiter("\\A");
        return scanner.hasNext() ? scanner.next() : "";
    }
}

4. Примеры вызовов API

4.1 Получение информации об аккаунте

Endpoint: /api/config HTTP-метод: GET

Пример кода:

public class MefreeExample {
    public static void main(String[] args) {
        try {
            // Вызов API для получения информации об аккаунте
            String response = MefreeApiRequest.sendRequest("GET", "/api/config");
            System.out.println("Информация об аккаунте:");
            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4.2 Создание заказа

Endpoint: /api/order?quantity=65000&target_address=TRON_ADDRESS&period=1 HTTP-метод: POST

Пример кода:

public class MefreeExample {
    public static void main(String[] args) {
        try {
            // Вызов API для создания заказа
            String response = MefreeApiRequest.sendRequest("POST", "/api/order?quantity=65000&target_address=TRON_ADDRESS&period=1");
            System.out.println("Заказ успешно создан:");
            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4.3 Проверка статуса заказа

Endpoint: /api/order/{pay_hash} HTTP-метод: GET

Пример кода:

public class MefreeExample {
    public static void main(String[] args) {
        try {
            // Проверка статуса заказа
            String payHash = "abcd1234"; // Замените на реальный pay_hash
            String response = MefreeApiRequest.sendRequest("GET", "/api/order/" + payHash);
            System.out.println("Статус заказа:");
            System.out.println(response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

5. Распространенные ошибки

5.1 Неверная подпись (401 Unauthorized)

  • Проверьте, что MF-ACCESS-KEY соответствует вашему API-ключу.

  • Убедитесь, что строка для подписи сформирована в правильном порядке: timestamp + method + requestPath.

  • Используйте корректный SECRET_KEY.

  • Убедитесь, что временная метка указана в формате UTC.

5.2 Ошибки параметров (400 Bad Request)

  • Проверьте правильность пути запроса и параметров.

  • Убедитесь, что заголовок Content-Type установлен в значение application/json.

5.3 Ограничение частоты запросов (429 Too Many Requests)

  • API Mefree имеет ограничение на частоту запросов. Избегайте отправки слишком большого количества запросов за короткое время.

  • Рекомендуется не превышать 2 запроса в секунду.


6. Заключение

В этом руководстве описано, как взаимодействовать с API Mefree.NET с использованием Java. Реализация включает генерацию подписи, выполнение запросов и обработку ответов. Для критически важных операций (например, создание заказа) рекомендуется реализовать механизм повторной попытки. В случае возникновения вопросов обратитесь в службу поддержки Mefree.

PreviousПокупка энергии через APINextРуководство по вызову Mefree.NET API на Python

Last updated 5 months ago