Страница 1 из 1

Вопросы по Payments API

Добавлено: 11 фев 2014, 09:53
User123
Здравствуйте,

Я разрабатываю приложение на 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 "onOrderSuccess", после завершения процесса покупки.
При отмене покупки с использованием кнопок - "Закрыть" или "Вернуться в приложение" я не получаю 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 не нулевой. Связано ли это с тестовым режимом покупок?