Я разрабатываю приложение на flash, использующее InApp-ы.
У меня 2 вопроса:
1) При старте моего приложения я регистрирую event-listener'ы
Код: Выделить всё
addEventListener( "onOrderSuccess", VkOnOrderSuccess );addEventListener( "onOrderFail", VkOnOrderFail );addEventListener( "onOrderCancel", VkOnOrderCancel );
Код: Выделить всё
private function VkOnOrderCancel():voidprivate function VkOnOrderSuccess( orderId:int ):voidprivate function VkOnOrderFail( errorCode:int ):void
При отмене покупки с использованием кнопок - "Закрыть" или "Вернуться в приложение" я не получаю callback "onOrderCancel". В чем может быть проблема?
Можно ли проверить "onOrderFail", если я уберу себя из "Тестеров платежей", в настройках приложения?( в данный момент callback onOrderFail я не получаю ). Как я могу проверить данный callback?
2) Правильно ли я понимаю алгоритм работы с InApp?
2.1) При получении "order_status_change" ( на стороне сервера ), я проверяю, есть ли данный order_id в моей базе данных ( содержащей информацию о внутриигровых покупках ).
2.2) Если order_id есть - значит это повторный запрос, и мы выдаем тот же ответ, что и на первый.
2.3) Если order_id в базе нет - значит это новый запрос и мы сохраняем его в базе данных.
2.4) При получении на стороне приложения callback'a "onOrderSuccess", я должен проверить наличие переданного в "onOrderSuccess" order_id в базе данных, и, если в базе данных есть информация о данной покупке - совершить внутриигровое действие.
Почему-то в callback'e "onOrderSuccess", мне каждый раз приходит 0 как order_id, хотя по записям в базе данных/логам платежных уведомлений видно, что текущий order_id не нулевой. Связано ли это с тестовым режимом покупок?