/invoice/v2/create

Метод создает заказ так же, как /invoice/create, но по второму протоколу покупок.

Отличие в том, кто сообщает игре о завершении покупки. Заказ, созданный этим методом, возвращает account_token — клиент прикрепляет его к покупке в сторе (appAccountToken на iOS, obfuscatedAccountId на Android). Стор возвращает токен в своем серверном уведомлении, поэтому сервер связывает платеж с заказом сам и объявляет завершенную покупку событием reward в /event/list. Клиенту не нужно переживать покупку, чтобы показать награду.

Заказы, созданные через /invoice/create, событиями не объявляются — старый клиент показывает покупку сам и не умеет подтверждать событие.

Адрес метода

/invoice/v2/create

Требует сессию пользователя

Параметры

Параметр Обязательный Тип Описание
product_id ДА int Идентификатор товара или набора, которые заранее добавлены через Панель управления
tag НЕТ any Идентификатор товаров внутри продукта, которые надо купить
count НЕТ int Количество товара, если он поддерживает возможность его изменения
platform НЕТ string Платформа оплаты, telegram (по умолчанию), android или ios
offer_id НЕТ string Оффер, к которому относится покупка. Пусто для обычной покупки в банке

Результат

{
    "response": {
        "invoice_id":    1,
        "account_token": "0f8fad5b-d9cb-469f-a165-70867728950e"
    }
}
Поле Тип Описание
invoice_id int Идентификатор созданного заказа
account_token string Токен заказа для передачи в стор. Отсутствует для платформы telegram
link string Ссылка на заказ в Telegram. Только для платформы telegram

Ответ несёт update.member со сводкой по ежедневным заданиям и достижениям (unclaimedQuestsCount, unclaimedAchievementsCount, dailyChestProgress): создание заказа двигает счётчик bank_transactions, и по наличию этих полей клиент понимает, что кеш заданий пора перечитать.