+1
Отвечен

Как добавить транзакцию через /v8/diff

romany4 6 месяцев назад в API Дзен-мани • обновлен Maxime Malychev 4 месяца назад 4
  • Собираю объект, отправляю без id - получаю ошибку

    Client error: `POST https://api.zenmoney.ru/v8/diff/` resulted in a `400 Bad Request` response:↵{↵ "error": {↵ "code": "validationError",↵ "message": "No value for property \"id\" in object Transaction provide (truncated...)

    Если отправляю пустое значение, то получаю ошибку
    Invalid property \"id\" in object Transaction. Wrong value

    Как быть?

Добрый день, по опыту нужно отправлять уникальный ID для каждой вносимой операции.
Это мой первый скрипт на Pyton, так что наверняка есть варианты элегантнее. Чтобы добиться уникальности я к базовой части добавляю текущее время:

transaction_id = "4331d531-8aca-11f3-8afb-2f" + str(currentClientTimestamp)

currentClientTimestamp возвращает что-то в стиле 1550967835

Удачи.

Лучше генерировать UUID. https://en.wikipedia.org/wiki/Universally_unique_identifier Для этого есть много готовых библиотек.

У меня в итоге были проблемы с отображением операций в Android приложении и вот сейчас понял что это точно было связано как раз с кривым способом генерирования UUID который я предложил. Действительно лучше использовать готовую библиотеку :) Вот пример для Python 3.x:

import uuid

transaction_id = str(uuid.uuid4())

Сервис поддержки клиентов работает на платформе UserEcho