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

Avatar
  • обновлен
  • Отвечен
  • Собираю объект, отправляю без 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

    Как быть?

Avatar
Maxime Malychev

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

import uuid

transaction_id = str(uuid.uuid4())

Avatar
support
  • Отвечен
Avatar
skvav
Цитата от Maxime Malychev

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

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

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

Удачи.

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

Avatar
Maxime Malychev

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

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

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

Удачи.