Мобильный клиент получает квитанцию, сервер проверяет ее своим менеджером и возвращает результат проверки.
Где и как запускать
Мобильный клиент получает квитанцию; обычный сервер 1С выполняет проверку.
Подготовка
Вставьте блок в модуль собственной управляемой формы. Из клиентского обработчика кнопки вызовите первую процедуру без параметров. Если указано иное место вставки, используйте его. Экспортные обработчики оповещения вызывает платформа, не вызывайте их вручную.
Мобильное приложение Android/iOS или мобильный клиент с настроенным магазином и тестовой покупкой. com.example.learning.lesson1 — образец product ID: замените его собственным товаром. Не используйте реальные списания.
Нужен именно мобильный клиент, подключенный к серверу 1С, не автономный мобильный сервер. На собственном сервере подготовьте файл с настоящим публичным ключом своего Google Play приложения; замените путь.
&НаКлиенте
Процедура ПроверитьПокупкуНаСервере()
Квитанции = ВстроенныеПокупки.ПолучитьКвитанцииВстроенныхПокупок("com.example.learning.lesson1");
Для Каждого Квитанция Из Квитанции Цикл
Сообщить("Проверка: " + Строка(ПроверитьКвитанциюНаСервере(Квитанция)));
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьКвитанциюНаСервере(Квитанция)
Чтение = Новый ЧтениеТекста("C:\1c-demo\google-play-public-key.txt");
Ключ = Чтение.Прочитать();
Чтение.Закрыть();
Поля = Новый Соответствие;
Проверяющий = ПроверкаВстроенныхПокупок;
Подлинна = Проверяющий.ПроверитьКвитанциюВстроеннойПокупки(Квитанция, Ключ, Поля);
Сообщить("Распаковано полей: " + Строка(Поля.Количество()));
Возврат Подлинна;
КонецФункцииРазбор по шагам
Получите квитанцию собственного Android-товара.
Передайте ее серверной функции.
Используйте возвращенный признак и дополнительно проверяйте поля покупки.
Как проверить результат
Полученные поля берутся из третьего выходного параметра метода.
Ложь не дает права выдавать купленный контент.
Ожидаемый результат
Получен результат проверки подлинности квитанции и число распакованных полей.
На что обратить внимание
Подлинность подписи не заменяет проверку товара, приложения, статуса и защиту от повторной выдачи. Для iOS другой ключ и сетевой сервис проверки; Android-ключ ему не подходит.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.