Skip to content

Часто задаваемые вопросы ​

Есть ли примеры интеграции? ​

Для каждого метода API приведены примеры кода. Если пример отсутствует, сообщите нам.

Что делать, если при интеграции возникли проблемы? ​

Сначала ознакомьтесь с документацией по интеграции. Если вопрос остаётся нерешённым, обратитесь в поддержку.

Как проверить делегирование Energy после создания заказа? ​

При наличии ресурсов Energy делегируется на адрес получателя примерно через 1–3 секунды после создания заказа. status = 4 означает, что заказ создан, 6 — Energy делегирована, 14 — средства возвращены из-за нехватки Energy. Для остальных состояний периодически вызывайте API Получение сведений о заказе. Благодарим @miya0v0 за пример обработки на Go.

Golang ​

go
// Создаём буферизированный канал для получения результата
resultCh := make(chan *utils.OrderQueryResponse, 1)
var wg sync.WaitGroup
wg.Add(1)
// Создаём контекст и функцию отмены
ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
defer cancel()
// Запускаем горутину
go func() {
  defer wg.Done() // Уменьшаем число ожидаемых горутин
  for {
    select {
    case <-ctx.Done():
      // При тайм-ауте выходим из цикла
      log.Println("Timeout, stopping to fetch order details.")
      return
    default:
      result, err := utils.GetOrderDetail(sendRentEnergy.OrderNo)
      if err != nil {
        log.Println("Error getting order detail:", err)
        return
      }
      // Если result.FrozenTxID не пуст, отправляем результат в канал и выходим из цикла
      if result.Status == 6 && result.FrozenTxID != "" {
        resultCh <- result
        return
      } else {
        log.Println(result.Status, result.FrozenTxID)
      }
      time.Sleep(1 * time.Second)
    }
  }
}()
// Ожидаем завершения всех горутин
wg.Wait()
// Получаем результат горутины
select {
case result := <-resultCh:
  cancel() // Отменяем тайм-аут основной горутины
case <-ctx.Done():
  log.Println("Timeout: Failed to receive result from the goroutine.")
  // При необходимости обрабатываем тайм-аут
}