eBay API GetOrders createTimeTo и createTimeFrom

Я немного застрял на этом и, кажется, не могу понять это. Я вызываю запрос GetOrders через API eBay. Проблема связана с входами createTimeTo и createTimeFrom.

В настоящее время я обрабатываю следующие вещи: CreateTimeFrom = order.CreatedTime последнего обработанного заказа с момента последнего вызова GetOrders + 1 секунда. Я установил значение createTimeTo на текущее официальное время ebay.

Теперь это, кажется, работает нормально, однако я был обеспокоен, потому что, когда у меня есть вещи на рабочем сервере, возможно ли, что в одну и ту же секунду может быть несколько заказов? Потому что если бы это было так, то мне бы не хватало заказов.

Теперь я знаю, что на странице custhelp есть инструкции для getOrders. Я пытался следовать им, но мне трудно применить логику к моему приложению.

Рекомендации на странице справки для клиентов следующие:

установите "Create/Mod TimeFrom" на время последнего звонка минус 2 минуты. Вы возвращаетесь на 2 минуты назад, чтобы убедиться, что ни один заказ не пропущен. установите время «Create / Mod TimeTo» на текущее время минус 2 минуты. Вы возвращаетесь, чтобы убедиться, что вы не забираете заказы, которые все еще находятся в процессе выполнения.

Основываясь на приведенной выше логике, я немного запутался со вторым пунктом (createTimeto), я получаю только завершенные продажи, так что мне действительно нужно вернуться на 2 минуты назад? Будут ли какие-либо проблемы с использованием только CreateTimeTo в качестве текущего официального времени eBay? Будет ли этот метод пропускать какие-либо заказы по какой-либо причине?

Также я должен основывать свои значения createTimeTo и CreateTimeFrom на времени сервера Ebay, как если бы я основывал его на локальном времени, местное время может не соответствовать времени сервера eBay, на котором основаны все заказы...

Как другие справляются с этим?

Я заметил, что некоторые люди используют свойство NumberOfDays в качестве альтернативы работе с датами. Кто-нибудь знает о преимуществах этого метода?


person MohsinG    schedule 15.06.2013    source источник


Ответы (1)


Лучше всего использовать время Ebay. Если вы можете, вы должны. Вы можете использовать результаты GetEbayTime для синхронизации ваших часов.

Две минуты в конце предназначены для того, чтобы помочь с отложенным/распределенным характером обработки заказов Ebay. (Предположение). Похоже, вы можете получить Заказ, который не выполнен полностью. Следование перекрытиям в руководящих принципах поможет предотвратить эту проблему.

Еще один способ предотвратить дублирование — выполнить проверку возвращенного Ebay TransactionId-OrderId. Используйте какую-нибудь базу данных.

Или для вашей конкретной проблемы сохраните список идентификаторов, возвращенных в последнем вызове GetOrder, и загрузите этот список в следующий раз. И проверить против этого. (Ваш вопрос касается только самых последних заказов).

См. рекомендации GetOrders.

Re: NumberofDays, это просто удобство. Он был добавлен одновременно с фильтрами даты. (#691 2010-10-14). Используйте его, если хотите.

Наконец: обратитесь к на сайте Ebay GetOrder. Документация для таких вещей.

person SH-    schedule 18.06.2013
comment
Будет ли Down-voter достаточно любезен, чтобы дать предложения по улучшению? - person SH-; 06.03.2017