Выполняет проверку квитанции: на Android - с помощью переданного ключа проверки проверяет электронную подпись квитанции, на iOS - отправляет запрос на сервис проверки квитанций. Запрос отправляется по адресу https://buy.itunes.apple.com/verifyReceipt (на этапе тестирования - https://sandbox.itunes.apple.com/verifyReceipt).
Синтаксис
ПроверитьКвитанциюВстроеннойПокупки(<Квитанция>, <КлючПроверки>, <ПоляКвитанции>)Полное описание, параметры и ограничения
МенеджерПроверкиВстроенныхПокупок.ПроверитьКвитанциюВстроеннойПокупки (InAppPurchasesValidationManager.ValidateInAppPurchaseReceipt)
МенеджерПроверкиВстроенныхПокупок (InAppPurchasesValidationManager)
ПроверитьКвитанциюВстроеннойПокупки (ValidateInAppPurchaseReceipt)
Доступен, начиная с версии 8.3.8.
Синтаксис:
ПроверитьКвитанциюВстроеннойПокупки(<Квитанция>, <КлючПроверки>, <ПоляКвитанции>)
Параметры:
<Квитанция> (обязательный)
Тип: КвитанцияВстроеннойПокупки.
Проверяемая квитанция.
<КлючПроверки> (необязательный)
Тип: Строка.
Ключ для проверки квитанции.
Публичный ключ приложения Google Play для проверки квитанции на Android. Либо "secret key" для проверки квитанций на iOS.
<ПоляКвитанции> (необязательный)
Тип: Соответствие.
Поля квитанции.
Возвращаемое значение:
Тип: Булево.
Возвращаемое значение показывает подлинность квитанции в отношении платформы.
Дополнительно метод возвращает распакованные значения полей квитанции, что облегчает ее дальнейшую проверку.
Описание:
Выполняет проверку квитанции:
на Android - с помощью переданного ключа проверки проверяет электронную подпись квитанции,
на iOS - отправляет запрос на сервис проверки квитанций. Запрос отправляется по адресу https://buy.itunes.apple.com/verifyReceipt (на этапе тестирования - https://sandbox.itunes.apple.com/verifyReceipt).
Доступность:
Тонкий клиент, сервер, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.8.
Методическая информация
Практические примеры
Проверить Android-квитанцию на сервере приложения
Мобильный клиент получает квитанцию, сервер проверяет ее своим менеджером и возвращает результат проверки.
Где и как запускать
Мобильный клиент получает квитанцию; обычный сервер 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-ключ ему не подходит.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.