МенеджерВстроенныхПокупок.ОбновитьИнформациюОПриобретении

Методы · UpdatePurchaseInformation

Получает список приобретенных покупок из сервиса-магазина. Вызов данного метода обновляет данные о приобретенных покупках, которые сохраняются операционной системой. Метод позволяет решить следующие задачи: восстановить информацию о приобретенных постоянных покупках и действующих подписках после того, как мобильное приложение было полностью удалено, а затем заново установлено; актуализировать информацию о приобретенных постоянных покупках и подписках, если пользователь пользуется приложением на нескольких своих устройствах; обновить и записать в локальное хранилище информацию о запрошенных покупках (описание, цена и др. поля), эти данные потом можно получить, с помощью метода ПолучитьСписок. Для работы метода обязательно активное подключение к сети Интернет. В случае его отсутствия будет сгенерировано исключение. Следует помнить, что обращение к сервису-магазину может занимать значительный период времени. Данный метод поддерживается не на всех устройствах. Для проверки совместимости устройства перед вызовом данного метода следует использовать метод ПоддерживаютсяПокупки.

Синтаксис

ОбновитьИнформациюОПриобретении(<ИдентификаторыПокупок>, <ТипПокупки>, <АвтоПодтверждение>)
Полное описание, параметры и ограничения

МенеджерВстроенныхПокупок.ОбновитьИнформациюОПриобретении (InAppPurchasesManager.UpdatePurchaseInformation)

МенеджерВстроенныхПокупок (InAppPurchasesManager)

ОбновитьИнформациюОПриобретении (UpdatePurchaseInformation)

Доступен, начиная с версии 8.3.8.

Синтаксис:
ОбновитьИнформациюОПриобретении(<ИдентификаторыПокупок>, <ТипПокупки>, <АвтоПодтверждение>)
Параметры:

<ИдентификаторыПокупок> (обязательный)
Тип: Массив.
Массив идентификаторов покупок, информация о которых обновляется.

<ТипПокупки> (необязательный)
Тип: ТипВстроеннойПокупки, Неопределено.
Тип покупок, идентификаторы которых указаны в параметре <ИдентификаторыПокупок>.
Данный параметр предназначен для оптимизации запросов в сервис покупок на Android.
На других устройствах параметр игнорируется

Если параметр указан, то обновлены будут только покупки указанного типа. Идентификаторы покупок с другим типом будут игнорироваться. Если параметр не использовать, то будет выполнено два запроса в сервис покупок, независимо от списка покупок. Указывайте параметр, когда в вашем списке покупок только подписки или наоборот только контент для продажи.
Значение по умолчанию: Неопределено.

<АвтоПодтверждение> (необязательный)
Тип: Булево.
Если параметр установлен в значение Истина, то будет выполнена локальная проверка квитанции и если проверка успешна, то покупка будет подтверждена автоматически.
Параметр используется на устройствах под управлением ОС Android. На iOS и Windows Phone игнорируется.
Проверка квитанции требует наличия ключа проверки встроенных покупок в ресурсах приложения, который указывается в сборщике мобильных приложений в настройках приложения под Android. Если ключ не найден, то генерируется исключение "Ключ проверки квитанции не найден в ресурсах приложения".
Значение по умолчанию зависит от режима совместимости:
Версия

До версии 8.3.18 - Истина.

Версия 8.3.18 и последующие – Ложь.

Значение по умолчанию: Ложь.
Описание:

Получает список приобретенных покупок из сервиса-магазина. Вызов данного метода обновляет данные о приобретенных покупках, которые сохраняются операционной системой. Метод позволяет решить следующие задачи:
восстановить информацию о приобретенных постоянных покупках и действующих подписках после того, как мобильное приложение было полностью удалено, а затем заново установлено;

актуализировать информацию о приобретенных постоянных покупках и подписках, если пользователь пользуется приложением на нескольких своих устройствах;

обновить и записать в локальное хранилище информацию о запрошенных покупках (описание, цена и др. поля), эти данные потом можно получить, с помощью метода ПолучитьСписок.
Для работы метода обязательно активное подключение к сети Интернет. В случае его отсутствия будет сгенерировано исключение.
Следует помнить, что обращение к сервису-магазину может занимать значительный период времени.
Данный метод поддерживается не на всех устройствах. Для проверки совместимости устройства перед вызовом данного метода следует использовать метод ПоддерживаютсяПокупки.

Доступность:

Мобильный клиент, мобильное приложение (клиент).

См. также:
МенеджерВстроенныхПокупок, метод ПоддерживаютсяПокупки

Использование в версии:

Доступен, начиная с версии 8.3.8.

Описание изменено в версии 8.3.18.

Методическая информация

Практические примеры

Обновить сведения и проверить доступ к купленному контенту

Сначала обновляем информацию магазина, затем читаем признак приобретения. Старый метод показан отдельно для понимания устаревшего кода.

Где и как запускать

Мобильное приложение Android/iOS или мобильный клиент, клиентский модуль управляемой формы. Требуется настройка магазина или рекламы; не серверный модуль.

Подготовка

  1. Вставьте весь блок в модуль собственной управляемой формы. Создайте команду и кнопку; в клиентском обработчике команды вызовите первую процедуру без параметров. Обработчики с Экспорт вызывает платформа, вручную их не вызывайте.

  2. Используйте собственное мобильное приложение, настроенное для встроенных покупок, и тестовую учетную запись магазина. com.example.learning.lesson1 — образец строкового product ID: замените его идентификатором собственного тестового товара в магазине. Не проверяйте покупку с реальным списанием.

  3. Используйте тестовый постоянный товар, не подписку. Автоматическое подтверждение здесь явно выключено.

&НаКлиенте
Процедура ПроверитьДоступКУроку()
    Товар = "com.example.learning.lesson1";
    Идентификаторы = Новый Массив;
    Идентификаторы.Добавить(Товар);
    ВстроенныеПокупки.ОбновитьИнформациюОПриобретении(Идентификаторы, ТипВстроеннойПокупки.КонтентДляПродажи, Ложь);
    ДоступЕсть = ВстроенныеПокупки.ПроверитьПриобретение(Товар);
    Сообщить("Доступ к уроку: " + Строка(ДоступЕсть));
    СтарыйПризнак = ВстроенныеПокупки.Приобретена(Товар);
    Сообщить("Результат устаревшего метода: " + Строка(СтарыйПризнак));
КонецПроцедуры

Разбор по шагам

  1. Соберите массив идентификаторов.

  2. Обновите данные для КонтентДляПродажи.

  3. Проверьте приобретение и сравните со старым методом.

Как проверить результат

  1. При отказе от покупки не подменяйте Ложь значением Истина.

  2. В новом коде для проверки используйте ПроверитьПриобретение.

Ожидаемый результат

Показан текущий признак доступа и результат старого API для сравнения.

На что обратить внимание

  1. Приобретена не рекомендуется с 8.3.18. Для расходуемой покупки iOS возвращает Ложь; это не универсальная проверка всех типов покупок. Обновление может обращаться к магазину.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.