• Статья
  • Чтение занимает 18 мин
Тип надстройки Описание
durable Надстройка, которая сохраняется в течение времени существования, указанного в центре партнеров. По умолчанию срок действия надстроек длительного пользования никогда не истекает, а приобрести их можно только один раз. Если указать для надстройки определенный срок действия, пользователь сможет повторно приобрести ее по окончании срока действия.
Потребляемые надстройки, управляемые разработчиком Надстройка, которую можно купить, использовать, а затем снова купить, если она был употреблена. Вы отвечаете за отслеживание потребляемых элементов на балансе пользователя, которые предоставляет надстройка.Когда пользователь потребляет любые элементы, связанные с надстройкой, вы отвечаете за учет баланса пользователя, а также за сообщение Store о том, что купленная надстройка израсходована, после того как пользователь израсходует все элементы. Пользователь не может снова приобрести надстройку, пока ваше приложение не сообщит об израсходовании предыдущей покупки. Например, если ваша надстройка представляет 100 игровых монет и пользователь израсходовал 10 монет, ваше приложение или служба должны поддерживать для пользователя новый баланс остатка в 90 монет. Когда пользователь израсходует все 100 монет, ваше приложение должно сообщить, что надстройка израсходована, после чего пользователь снова сможет приобрести 100 монет из надстройки.
Потребляемые надстройки, управляемые Store Надстройка, которую можно приобрести, использовать и приобрести снова в любое время. Для этого типа надстроек учет элементов на балансе пользователя производится Store.Когда пользователь использует какие-либо элементы, связанные с этой надстройкой, вы должны сообщить Store, что эти элементы израсходованы, после чего Store обновляет баланс пользователя. Пользователь может приобрести надстройку сколько угодно раз (для этого не требуется сначала использовать элементы). Приложение может в любой момент запросить текущий баланс пользователя. Например, если надстройка представляет начальную сумму в 100 игровых монет и пользователь израсходовал 50 монет, приложение сообщает Store, что израсходованы 50 единиц надстройки, и Store обновляет баланс. Если пользователь затем снова приобретает надстройку, чтобы получить еще 100 монет, общее число монет составит 150. Примечание . для использования расходных материалов, управляемых хранилищем, приложение должно быть предназначено для Windows 10 годовщины (10,0; сборка 14393) или более поздней версии в Visual Studio и она должна использовать пространство имен Windows. Services.Store вместо пространства имен Windows. ApplicationModel.Store .
Подписка Надстройка длительного пользования, где плата с пользователей взымается периодически, что позволяет им продолжать пользоваться надстройкой. Клиент может отменить подписку в любое время, чтобы избежать дальнейших расходов. Примечание . чтобы использовать надстройки подписки, приложение должно быть предназначено для Windows 10 годовщины (10,0; сборка 14393) или более поздней версии в Visual Studio и она должна использовать пространство имен Windows. Services.Store вместо пространства имен Windows. ApplicationModel.Store .

Примечание

Другие типы надстроек, например надстройки длительного пользования с пакетами (также известны как «загружаемое содержимое» или DLC), доступны ограниченному кругу разработчиков и не освещаются в этой документации.


Покупки из приложения и пробные версии, использующие пространство имен Windows.Services.Store

В этом разделе содержится обзор важных задач и понятий пространства имен Windows.Services.Store. Это пространство имен доступно только приложениям, предназначенным для Windows 10 Anniversary Edition (10.0; сборка 14393) и более поздних выпусков в Visual Studio (это соответствует Windows 10 версии 1607). Рекомендуется по возможности использовать пространство имен Windows.Services.Store, а не Windows.ApplicationModel.Store. Информацию о пространстве имен Windows.ApplicationModel.Store см. в этой статье.

Содержание раздела

  • Видео
  • Начало работы с классом StoreContext
  • Реализация покупок из приложения
  • Реализации функциональности пробной версии
  • Проверка вашей покупки из приложения или реализации пробной версии
  • Чеки для покупок из приложения
  • Использование класса StoreContext с мостом для классических приложений
  • Продукты, SKU и доступность
  • Коды продукта в Магазине

Видео

Посмотрите видеоролик, чтобы ознакомиться с общими сведениями о том, как реализовать покупки из приложения с помощью пространства имен Windows.Services.Store.

Начало работы с классом StoreContext

Главной точкой входа в пространство имен Windows.Services.Store является класс StoreContext. Этот класс предоставляет методы, которые можно использовать, чтобы получить сведения о текущем приложении и его доступных надстройках, получить лицензионные сведения о текущем приложении или его надстройках, приобрести приложение или надстройку для текущего пользователя и решить другие задачи. Чтобы получить объект StoreContext, выполните одно из следующих действий.

  • В однопользовательском приложении (то есть приложении, которое работает только в контексте пользователя, который запустил это приложение) воспользуйтесь статическим методом GetDefault, чтобы получить объект StoreContext, который можно использовать для доступа к актуальным для пользователя данным, связанным с Microsoft Store. Большинство приложений UWP — это однопользовательские приложения.

    Windows.Services.Store.StoreContext context = StoreContext.GetDefault();
    
  • В многопользовательском приложении используйте статический метод GetForUser, чтобы получить объект StoreContext, который можно использовать для доступа к данным, связанным с Microsoft Store. Речь идет о данных для конкретного пользователя, который при работе с приложением выполнил вход с учетной записью Майкрософт. В следующем примере мы получим объект StoreContext для первого доступного пользователя.

    var users = await Windows.System.User.FindAllAsync();
    Windows.Services.Store.StoreContext context = StoreContext.GetForUser(users[0]);
    

Получив объект StoreContext, можно начать вызывать методы этого объекта для получения сведений о продукте из Магазина для текущего приложения и его надстроек, получать сведения о лицензии для текущего приложения и его надстроек, приобретать приложение или надстройку для текущего пользователя и выполнять другие задачи. Дополнительные сведения об общих задачах, которые можно выполнять с помощью этого объекта, см. в следующих статьях:

  • Получение информации о продукте для приложений и надстроек
  • Получение информации о лицензии для приложений и надстроек
  • Поддержка покупок приложений и надстроек из приложения
  • Поддержка покупок потребляемых надстроек
  • Включение надстроек с подпиской для приложения
  • Внедрение пробной версии приложения

Пример приложения, в котором показано, как использовать класс StoreContext и другие типы в пространстве имен Windows.Services.Store, см. в разделе Образец из Магазина.

Реализация покупок из приложения

Чтобы предложить покупки из приложения пользователям вашего приложения, используя пространство имен Windows.Services.Store, выполните следующие действия:

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

  2. Напишите код в приложении для извлечения сведений о продукте для вашего приложения или надстройки, предлагаемой приложением, а затем определите, активна ли лицензия (то есть имеется ли у пользователя лицензия на использование приложения или надстройки). Если лицензия неактивна, отобразите пользовательский интерфейс, предлагающий приложение или надстройку для продажи пользователю в качестве покупки из приложения.

  3. Если пользователь решает приобрести ваше приложение или надстройку, используйте для покупки продукта соответствующий метод.

    • Если пользователь покупает приложение или надстройку для долгосрочного использования, следуйте указаниям в разделе Включение покупок из приложений для приложений и надстроек.
    • Если пользователь покупает потребляемую надстройку, следуйте инструкциям в разделе Включение покупок потребляемых надстроек.
    • Если пользователь покупает надстройку с подпиской, следуйте указаниям в разделе Включение надстроек с подпиской для приложения.
  4. Проверьте реализацию, следуя руководству по тестированию в этой статье.

Реализации функциональности пробной версии

Чтобы исключить или ограничить функции в пробной версии приложения с помощью пространства имен Windows.Services.Store, выполните следующие действия:

  1. Настройте приложение в качестве бесплатной пробной версии в центре партнеров.

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

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

  4. Проверьте реализацию, следуя руководству по тестированию в этой статье.

Проверка вашей покупки из приложения или реализации пробной версии

Если ваше приложение использует API-интерфейсы в пространстве имен Windows.Services.Store для реализации покупок из приложения и пробного периода, вам необходимо опубликовать приложение в Microsoft Store и скачать его на свое устройство разработки, чтобы использовать его лицензию для тестирования. Выполните следующие действия, чтобы протестировать код.

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

  2. Затем убедитесь, что вы выполнили следующие действия:

    • Напишите код в приложении, которое использует класс StoreContext и другие связанные типы в пространстве имен Windows.Services.Store, чтобы реализовать функцию покупок из приложения или пробной версии.
    • Если приложение предлагает надстройку, которую клиенты могут приобрести, Создайте надстройку для своего приложения в центре партнеров.
    • Если вы хотите исключить или ограничить некоторые функции в пробной версии приложения, Настройте приложение как бесплатную пробную версию в центре партнеров.
  3. Открыв проект в Visual Studio, щелкните Меню проекта, укажите на Магазин и выберите Связать приложение с Магазином. Выполните инструкции в мастере, чтобы связать проект приложения с приложением в учетной записи центра партнеров, которую вы хотите использовать для тестирования.

    Примечание

    Если не связать свой проект с приложением в Магазине, методы StoreContext присвоят свойству ExtendedError возвращаемых значений этих методов значение кода ошибки 0x803F6107. Это значение указывает, что Магазин ничего не знает об этом приложении.

  4. Если вы еще не сделали этого, установите приложение из Магазина (см. предыдущий шаг), запустите приложение один раз и затем закройте его. Это гарантирует, что на устройстве разработки установлена действующая лицензия приложения.

  5. Запустите свой проект или начните его отладку в Visual Studio. Код должен извлечь данные приложения и надстройки из приложения Магазина, которое вы связали с локальным проектом. В ответ на предложение переустановить приложение выполните инструкции, а затем запустите свой проект или начните его отладку.

    Примечание

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

Если ваше приложение использует пространство имен Windows.ApplicationModel.Store, вы можете использовать в своем приложении класс CurrentAppSimulator для моделирования лицензионных сведений во время тестирования перед отправкой приложения в Магазин. Дополнительные сведения см. в статье Приступая к работе с классами куррентапп и куррентаппсимулатор.

Примечание

Пространство имен Windows.Services.Store не предоставляет класс, который можно использовать для имитации лицензионных сведений во время тестирования. Если вы используете пространство имен Windows.Services.Store для реализации покупок из приложения и пробных версий, вам необходимо опубликовать приложение в Магазине и скачать его на свое устройство разработки, чтобы использовать его лицензию для тестирования, как описано выше.

Чеки для покупок из приложения

Пространство имен Windows.Services.Store не предоставляет API, который можно использовать для получения чека об успешном совершении покупки, в коде приложения. Это отличается от приложений, использующих пространство имен Windows.ApplicationModel.Store, которое может использовать клиентский API для извлечения чека о выполнении транзакции.

Если функция покупок из приложения реализована с использованием пространства имен Windows.Services.Store и требуется поверить, приобрел ли этот клиент приложение или надстройку, можно воспользоваться запросом метода продуктов в API REST коллекции Microsoft Store. Возвращаемые этим методом данные подтверждают, имеет ли указанный клиент право на использование этого продукта, и предоставляют информацию для транзакции, в которой пользователь приобрел этот продукт. API коллекции Microsoft Store использует для извлечения этой информации аутентификацию Azure AD.

Использование класса StoreContext с мостом для классических приложений

Классические приложения, использующие мост для настольных компьютеров, могут реализовать покупки из приложения и пробную версию с помощью класса StoreContext. однако при наличии классического приложения Win32 или классического приложения с дескриптором окна (HWND), связанным с платформой отрисовки (например, WPF или приложением пакета SDK для Windows приложений), приложение должно настроить объект стореконтекст , чтобы указать, какое окно приложения является окном-владельцем для модальных диалоговых окон, отображаемых объектом.

Многие участники класса StoreContext (и участники других связанных типов, доступ к которым осуществляется через объект StoreContext) отображают пользователю модальное диалоговое окно для выполнения связанных с Магазином операций, например покупки продукта. Если в классическом приложении не настроен объект StoreContext, чтобы задать владельца окна для модальных диалоговых окон, этот объект будет возвращать неточные данные или ошибки.

Чтобы настроить объект StoreContext в классическом приложении, использующем мост для настольных компьютеров, выполните следующие действия.

Для .NET 5 или более поздней версии

Если приложение написано на C# с помощью .NET 5 или более поздней версии, выполните следующие действия.

  1. убедитесь, что для TargetFramework свойства в файле проекта TargetFramework, которые предоставляют доступ к пространству имен WinRT. Interop . Пример:

    <PropertyGroup>
      <!-- You can also target other versions of the Windows SDK and .NET, e.g. "net5.0-windows10.0.19041.0" -->
      <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
    </PropertyGroup>
    
  2. Получите объект стореконтекст с помощью метода по умолчанию (или жетфорусер , если приложение является многопользовательским приложением), как описано выше в этой статье. Используйте метод WinRT. Interop. инитиализевисвиндов. Initialize , как описано здесь , чтобы инициализировать диалоговое окно с указанным маркером окна.

    StoreContext context = StoreContext.GetDefault();
    // Obtain window handle by passing in pointer to the window object
    var hwnd = WinRT.Interop.WindowNative.GetWindowHandle(windowObject);
    // Initialize the dialog using wrapper funcion for IInitializeWithWindow
    WinRT.Interop.InitializeWithWindow.Initialize(context, hwnd); 
    

Для более ранних версий .NET или C++

Если приложение написано в более ранней версии .NET или C++, выполните следующие действия.

  1. Выполните одно из следующих действий, чтобы предоставить приложению доступ к интерфейсу IInitializeWithWindow.

    • если приложение написано на управляемом языке, например c# или Visual Basic (до .net 5), объявите интерфейс иинитиализевисвиндов в коде приложения с помощью атрибута ComImport , как показано в следующем примере C#. В этом примере предполагается, что файл кода имеет оператор using для пространства имен System.Runtime.InteropServices.

      [ComImport]
      [Guid("3E68D4BD-7135-4D10-8018-9FB6D9F33FA1")]
      [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
      public interface IInitializeWithWindow
      {
          void Initialize(IntPtr hwnd);
      }
      
    • Если приложения написано на языке C++, добавьте ссылку на файл заголовка shobjidl.h в коде. Этот файл заголовка содержит объявление интерфейса IInitializeWithWindow.

  2. Получите объект StoreContext, используя метод GetDefault (или метод GetForUser, если ваше приложение является многопользовательским), как описано выше в этой статье, и приведите этот объект к объекту IInitializeWithWindow. Затем вызовите метод IInitializeWithWindow.Initialize и передайте дескриптор окна, которое вы хотите сделать владельцем любых модальных диалоговых окон, которые отображаются методами StoreContext. В следующем примере C# показано, как передать в метод маркер главного окна приложения.

    StoreContext context = StoreContext.GetDefault();
    IInitializeWithWindow initWindow = (IInitializeWithWindow)(object)context;
    initWindow.Initialize(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
    

Продукты, SKU и доступность

Каждый продукт в Магазине имеет по меньшей мере одну SKU, а каждая SKU — по меньшей мере одну доступность. Эти понятия являются абстрактными от большинства разработчиков в центре партнеров, и большинство разработчиков никогда не определяют номера SKU или доступности для своих приложений и надстроек. Поскольку объектная модель для продуктов из Магазина в пространстве имен Windows.Services.Store все же содержит SKU и доступности, общие сведения об этих понятиях будут вам полезны в некоторых ситуациях.

Объект Описание
Продукт Термин продукт обозначает любой тип продукта, который доступен в Магазине, включая приложение или надстройку. Каждый продукт в Магазине имеет соответствующий объект StoreProduct. Этот класс предоставляет свойства, которые можно использовать для получения доступа к данным, таким как код продукта в Магазине, изображения и видео для описания в Магазине и сведения о ценах. Кроме того, класс предоставляет методы, которые можно использовать для приобретения продукта.
SKU Номер SKU — это конкретная версия продукта с собственным описанием, ценой и другими уникальными сведениями о продукте. У каждого приложения или надстройки имеется SKU по умолчанию. Единственный случай, когда разработчик может иметь несколько SKU для приложения, это если публикуется и полная, и пробная версии приложения (в каталоге Магазина каждая из этих версий будет иметь свою SKU одного и того же приложения). Некоторые издатели могут определять собственные SKU. Например, крупный издатель игр может выпустить игру с одной SKU для стран, где показывать кровь красным запрещено и, следовательно, нужно показать ее зеленым цветом, а другую SKU — чтобы показывать кровь красной в любых странах. Кроме того, издатель, продающий цифровое видеосодержимое, может опубликовать две SKU для видео: одну — для версии высокой четкости, а другую — для версии стандартной четкости. Каждый SKU в Магазине имеет соответствующий объект StoreSku. Каждый StoreProduct имеет свойство Skus, которое можно использовать для доступа к SKU этого продукта.
Доступность Доступность — это конкретная версия SKU со своими уникальными сведениями о ценах. Каждая SKU имеет доступность по умолчанию. Некоторые издатели имеют возможность определять собственные доступности, предлагая разные ценовые варианты для данной SKU. Каждая доступность в Магазине имеет соответствующий объект StoreAvailability. Каждый объект StoreSku имеет свойство Availabilities, которое можно использовать для доступа к доступностям этого SKU. Для большинства разработчиков каждая SKU имеет одну доступность по умолчанию.

Коды продукта в Магазине

Все приложения, надстройки и другие продукты в Магазине имеют соответствующий код в Магазине (его также иногда называют кодом продукта в Магазине). Многие API-интерфейсы требуют указания кода продукта в Магазине для выполнения операции с приложением или надстройкой.

Код любого продукта в Магазине — это буквенно-цифровая строка, состоящая из 12 символов, например 9NBLGGH4R315. Существует несколько различных способов получить код продукта в Магазине для продукта в Магазине.

  • Для приложения идентификатор магазина можно получить на странице удостоверение приложения в центре партнеров.
  • Для надстройки идентификатор хранилища можно получить на странице обзора надстройки в центре партнеров.
  • Для любого продукта вы также можете получить код продукта в Магазине программными средствами с помощью свойства StoreId объекта StoreProduct, представляющего продукт.

Для продуктов с SKU и доступностями каждый объект SKU и доступности также имеют собственные коды продукта в Магазине с различными форматами.

Объект Формат кода продукта в Магазине
SKU Код продукта в Магазине для SKU имеет формат <product Store ID>/xxxx, где xxxx — это буквенно-цифровая строка из 4 символов, идентифицирующая SKU для продукта. Например, 9NBLGGH4R315/000N. Этот идентификатор возвращается свойством StoreId объекта стореску и иногда называется идентификатором хранилища SKU.
Доступность Код продукта в Магазине для доступности имеет формат <product Store ID>/xxxx/yyyyyyyyyyyy, где xxxx — это буквенно-цифровая строка из 4 символов, которая определяет SKU для продукта, а yyyyyyyyyyyy — это буквенно-цифровая строка из 12 символов, которая определяет доступность для SKU. Например, 9NBLGGH4R315/000N/4KW6QZD2VN6X. Этот идентификатор возвращается свойством StoreId объекта стореаваилабилити и иногда называется идентификатором хранилища доступности.


Как использовать коды продуктов для надстроек в коде

Если вы хотите сделать надстройку доступной для клиентов в контексте вашего приложения, необходимо ввести уникальный идентификатор продукта для надстройки при создании отправки надстройки в центре партнеров. Этот код продукта можно использовать для отсылки к надстройке в коде, хотя конкретные ситуации, в которых можно использовать код продукта, зависят от того, какое пространство имен используется для покупок из приложения.

Примечание

Идентификатор продукта, введенный в центре партнеров для надстройки, отличается от идентификатора магазинанадстройки. ИДЕНТИФИКАТОР магазина создается центром партнеров.

Приложения, использующие пространство имен Windows.Services.Store

Если ваше приложение использует пространство имен Windows.Services.Store, можно использовать код продукта для легкой идентификации объекта StoreProduct, представляющего вашу надстройку, или объекта StoreLicense, представляющего лицензию вашей надстройки. Код продукта предоставляется свойствами StoreProduct.InAppOfferToken и StoreLicense.InAppOfferToken.

Примечание

Несмотря на то что код продукта является полезным средством для идентификации надстройки в коде, большинство операций в пространстве имен Windows.Services.Store используют код продукта в Магазине для надстройки, а не код продукта. Например, для программного извлечения одной или нескольких известных надстроек для приложения, передайте коды продуктов в магазине (а не коды продуктов) для этих надстроек методу GetStoreProductsAsync. Аналогичным образом, чтобы объявить об израсходовании потребляемой надстройки, передайте код продукта в Магазине для этой надстройки (а не код продукта) методу ReportConsumableFulfillmentAsync.

Приложения, использующие пространство имен Windows.ApplicationModel.Store

если приложение использует пространство имен Windows. ApplicationModel.Store , необходимо использовать идентификатор продукта, назначаемый надстройке в центре партнеров для большинства операций. Пример:

  • Используйте код продукта для идентификации описания ProductListing, представляющего вашу надстройку, или ProductLicense, представляющей лицензию вашей надстройки. Код продукта предоставляется свойствами ProductListing.ProductId и ProductLicense.ProductId.

  • Укажите код продукта при покупке вашей надстройки для пользователя с помощью метода RequestProductPurchaseAsync. Дополнительные сведения см. в разделе Поддержка покупок внутренних продуктов приложения.

  • Укажите код продукта при сообщении об израсходовании потребляемой надстройки с помощью метода ReportConsumableFulfillmentAsync. Дополнительные сведения см. в разделе Поддержка покупок потребляемых внутренних продуктов приложения.

  • Получение информации о продукте для приложений и надстроек
  • Получение информации о лицензии для приложений и надстроек
  • Поддержка покупок приложений и надстроек из приложения
  • Поддержка покупок потребляемых надстроек
  • Включение надстроек с подпиской для приложения
  • Внедрение пробной версии приложения
  • Коды ошибок для операций Store
  • Покупки из приложения и пробные версии, использующие пространство имен Windows.ApplicationModel.Store

Пакет Windows SDK предоставляет API, которые можно использовать для реализации следующих функций, позволяющих получать прибыль от своего приложения универсальной платформы Windows (UWP):

  • Покупки из приложений Независимо от того, является ли ваше приложение бесплатным или нет, вы можете продавать содержимое или новые функции приложения (например, разблокировка следующего уровня игры) непосредственно в пределах приложения.

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

Эта статья содержит обзорные сведения о том, как в приложениях UWP работают покупки из приложения и пробные версии.


Выбор пространства имен

Существует два разных пространствах имен, которые можно использовать для добавления функций покупок из приложения и пробной версии в приложениях UWP в зависимости от того, для какой версии Windows 10 предназначены ваши приложения. Несмотря на то что API в этих пространствах имен служат тем же целям, они различаются принципами разработки и имеют несовместимый код.

  • Windows. Services.Store начиная с Windows 10 версии 1607, приложения могут использовать API в этом пространстве имен для реализации покупок и испытаний в приложении. Рекомендуется использовать элементы из этого пространства имен, если ваше проект вашего приложения предназначен для Windows 10 Anniversary Edition (10.0; сборка 14393) или более позднего выпуска в Visual Studio. Это пространство имен поддерживает новейшие типы надстроек, такие как управляемые хранением надстройки, и предназначено для совместимости с будущими типами продуктов и функций, поддерживаемых центром партнеров и магазином. Дополнительные сведения об этом пространстве имен см. в разделе Покупки из приложения и пробные версии, использующие пространство имен Windows.Services.Store этой статьи.

  • Windows. ApplicationModel.Store. все версии Windows 10 также поддерживают более старый API для покупок и испытаний в приложении в этом пространстве имен. Сведения об использовании элементов пространства имен Windows.ApplicationModel.Store см. в разделе Внутренние покупки приложения и пробные версии, использующие пространство имен Windows.ApplicationModel.Store.

Важно!

Пространство имен Windows.ApplicationModel.Store больше не дополняется новыми функциями, и мы рекомендуем вместо него использовать пространство имен Windows.Services.Store, если это возможно для вашего приложения. пространство имен Windows. ApplicationModel.Store не поддерживается в Windows приложениях для настольных систем, использующих мост для классических приложений или в приложениях или играх, использующих песочницу разработки в центре партнеров (например, это вариант для любой игры, которая интегрируется с Xbox Live).


Основные понятия

Каждый элемент, предлагаемый в Магазине, как правило, называется продукт. Большинство разработчиков работают только со следующими типами продуктов: приложения и надстройки.

Надстройка представляет собой продукт или функцию, которую вы предоставляете своим клиентам (пользователям) в контексте приложения: например, валюту для использования в приложении или игре, новые карты или оружие для игры, возможность использовать приложение без рекламы, а также цифровое содержимое (музыку или видео) для приложений, в которых реализована возможность предоставления такого типа содержимого. С каждым приложением и каждой надстройкой связана лицензия, указывающая, имеет ли пользователь право на использование приложения или надстройки. Если пользователь имеет право на использование приложения или надстройки в качестве пробной версии, лицензия также предоставляет дополнительную информацию об этой пробной версии.

Чтобы предложить надстройку для клиентов в приложении, необходимо определить надстройку для своего приложения в центре партнеров , чтобы хранилище знало о нем. Затем ваше приложение может использовать API в пространстве имен Windows.Services.Store или Windows.ApplicationModel.Store, чтобы предложить пользователю надстройку в качестве покупки из приложения.

Приложения UWP могут иметь следующие типы надстроек.