Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пакет SDK для Windows предоставляет API- интерфейсы, которые можно использовать для реализации следующих функций для получения дополнительных средств от приложения универсальной платформы Windows (UWP):
покупки в приложении Независимо от того, является ли ваше приложение бесплатным или нет, вы можете продавать содержимое или новые функции приложения (например, разблокировать следующий уровень игры) прямо в приложении.
Функции пробной версии Если вы настроите приложение как бесплатную пробную версию в Центре партнеров, вы можете побудить клиентов приобрести полную версию приложения, исключив или ограничив некоторые функции в течение пробного периода. Вы также можете включить такие функции, как баннеры или подложки, которые отображаются только во время пробной версии, прежде чем клиент покупает приложение.
В этой статье представлен обзор того, как работают встроенные покупки и пробные версии в приложениях на платформе UWP.
Выбор используемого пространства имен
Существует два разных пространства имен, которые можно использовать для добавления покупок в приложении и функциональности пробной версии в приложениях UWP, в зависимости от того, на какую версию Windows 10 или Windows 11 они нацелены. Хотя API в этих пространствах имен служат одинаковым целям, они разработаны совершенно по-разному, и код не совместим между двумя API.
Windows.Services.Store Начиная с Windows 10 версии 1607 приложения могут использовать API в этом пространстве имен для реализации покупок и пробных версий в приложении. Мы рекомендуем использовать элементы в этом пространстве имен, если проект приложения предназначен для юбилейного выпуска Windows 10 (10.0; сборка 14393) или более поздней версии Windows в Visual Studio. Это пространство имен поддерживает последние типы надстроек, такие как управляемые магазином потребляемые надстройки, и предназначено для обеспечения совместимости с будущими типами продуктов и функций, поддерживаемых центром партнеров и магазином. Дополнительные сведения об этом пространстве имен см. в разделе о встроенных покупках и пробных версиях с помощью пространства имен Windows.Services.Store в этой статье.
Windows.ApplicationModel.Store Все версии Windows 10 и Windows 11 также поддерживают более старый API для покупок внутри приложения и пробных версий в этом пространстве имен. Сведения о пространстве имен Windows.ApplicationModel.Store см. в разделе Встроенные покупки и пробные версии с использованием пространства имен Windows.ApplicationModel.Store.
Это важно
Пространство имен Windows.ApplicationModel.Store больше не обновляется с новыми функциями, и мы рекомендуем вместо этого использовать пространство имен Windows.Services.Store , если это возможно для вашего приложения. Пространство имен Windows.ApplicationModel.Store не поддерживается в настольных приложениях Windows, использующих Desktop Bridge, или в приложениях и играх, использующих тестовую среду разработки в Центре партнеров (например, это касается любых игр, которые интегрируются с Xbox Live).
Основные понятия
Каждый товар, предлагаемый в Магазине, обычно называется продукт. Большинство разработчиков взаимодействуют со следующими типами продуктов: приложения и дополнения.
Надстройка — это продукт или функция, которую вы предоставляете клиентам в контексте приложения: например, валюту, используемую в приложении или игре, новые карты или оружие для игры, возможность использовать приложение без рекламы или цифрового содержимого, например музыки или видео для приложений, имеющих возможность предлагать этот тип контента. Каждое приложение и надстройка имеют связанную лицензию, которая указывает, имеет ли пользователь право использовать приложение или надстройку. Если пользователь имеет право использовать приложение или надстройку в качестве пробной версии, лицензия также предоставляет дополнительные сведения о пробной версии.
Чтобы предложить надстройку для клиентов в вашем приложении, необходимо определить надстройку для приложения в Центре партнеров, чтобы магазин знал об этом. Затем ваше приложение может использовать API в пространстве имен Windows.Services.Store или Windows.ApplicationModel.Store, чтобы предложить дополнение для продажи пользователю в виде встроенной покупки.
Приложения UWP могут предлагать следующие типы надстроек.
Тип надстройки | Описание |
---|---|
Прочный | Расширение, которое сохраняется на срок службы, который вы указываете в Центре партнеров. По умолчанию срок действия устойчивых надстроек никогда не истекает, в этом случае их можно приобрести только один раз. Если указать определённую длительность надстройки, пользователь может повторно купить надстройку после истечения срока её действия. |
Разработчиком управляемый расходуемый ресурс | Надстройка, которую можно приобрести, использовать, а затем снова приобрести после ее использования. Вы несете ответственность за отслеживание баланса предметов пользователя, представленных надстройкой.Когда пользователь потребляет все элементы, связанные с надстройкой, вы несете ответственность за поддержание баланса пользователя и отчеты о покупке надстройки, как выполнено в Магазине после того, как пользователь использовал все элементы. Пользователь не может снова приобрести надстройку, пока ваше приложение не сообщит о выполненной предыдущей покупке надстройки. Например, если ваш аддон представляет 100 монет в игре, и пользователь тратит 10 монет, ваше приложение или служба должны поддерживать новый оставшийся баланс в 90 монет для пользователя. После того как пользователь израсходовал все 100 монет, ваше приложение должно сообщить, что дополнение выполнено, а затем пользователь может снова приобрести дополнение на 100 монет. |
Расходный материал, управляемый магазином | Надстройка, которую можно приобрести, использовать и приобрести снова в любое время. Магазин отслеживает остаток предметов, которые представляет дополнение.Когда пользователь использует любые элементы, связанные с надстройкой, вы несете ответственность за то, чтобы сообщать в Магазин об их выполнении, и Магазин обновляет баланс пользователя. Пользователь может приобретать дополнение столько раз, сколько захочет (сначала ему необязательно использовать предметы). Приложение может запрашивать текущий баланс для пользователя в любое время. Например, если ваша надстройка представляет начальное количество 100 монет в игре, а пользователь потребляет 50 монет, ваше приложение сообщает Магазину, что 50 единиц надстройки были выполнены, и Магазин обновляет оставшийся баланс. Если пользователь затем снова покупает ваше дополнение, чтобы получить еще 100 монет, у них теперь будет 150 монет в общей сложности. Примечание Для использования потребляемых ресурсов, управляемых магазином, ваше приложение должно поддерживать Юбилейный выпуск Windows 10 (10.0; Сборка 14393) или более позднюю версию в Visual Studio, и оно должно использовать пространство имен Windows.Services.Store вместо пространства имен Windows.ApplicationModel.Store. |
Подписка | Долговременное дополнение, за которое клиент продолжает производить оплату с регулярными интервалами, чтобы продолжать использовать его. Клиент может отменить подписку в любое время, чтобы избежать дальнейших расходов. Заметка Чтобы использовать надстройки подписки, приложение должно быть предназначено для Windows 10 Anniversary Edition (10.0; Сборка 14393) или более поздней версии в Visual Studio, и она должна использовать пространство имен Windows.Services.Store вместо пространства имен Windows.ApplicationModel.Store . |
Замечание
Другие типы надстроек, такие как устойчивые надстройки с пакетами (также известные как скачиваемое содержимое или DLC), доступны только для ограниченного набора разработчиков и не рассматриваются в этой документации.
Покупки в приложении и пробные версии с использованием пространства имен Windows.Services.Store
В этом разделе представлен обзор важных задач и концепций для пространства имен Windows.Services.Store . Это пространство имен доступно только для приложений, использующих Юбилейное обновление Windows 10 (10.0; Сборка 14393) или более поздней версии в Visual Studio, что соответствует Windows 10 версии 1607. Рекомендуется использовать пространство имен Windows.Services.Store вместо пространства имен Windows.ApplicationModel.Store , если это возможно. Сведения о пространстве имен Windows.ApplicationModel.Store можно найти в этой статье.
В этом разделе
- Видео
- Начало работы с классом StoreContext
- Реализация покупок в приложении
- Реализация функциональных возможностей пробной версии
- Протестируйте покупку в приложении или пробную версию
- чеки за покупки внутри приложения
- Использование класса StoreContext с Desktop Bridge
- Продукты, номера SKU и доступность
- идентификаторы магазинов
Начало работы с классом StoreContext
Основная точка входа в пространство имен Windows.Services.Store — класс StoreContext . Этот класс предоставляет методы, которые можно использовать для получения сведений о текущем приложении и его доступных надстройках, получения сведений о лицензии для текущего приложения или его надстроек, приобретения приложения или надстройки для текущего пользователя и выполнения других задач. Чтобы получить объект StoreContext, выполните одно из следующих действий:
В однопользовательском приложении (то есть приложение, которое выполняется только в контексте пользователя, запускающего приложение), используйте статический метод GetDefault для получения объекта StoreContext , который можно использовать для доступа к данным, связанным с Microsoft Store для пользователя. Большинство приложений универсальной платформы Windows (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]);
Замечание
Классические настольные приложения Windows, использующие Desktop Bridge, должны выполнить дополнительные шаги для настройки объекта StoreContext, прежде чем они смогут его использовать. Дополнительные сведения см. в этом разделе.
После объекта StoreContext можно начать вызывать методы этого объекта, чтобы получить сведения о продукте Store для текущего приложения и его надстроек, получить сведения о лицензии для текущего приложения и его надстройки, приобрести приложение или надстройку для текущего пользователя и выполнить другие задачи. Дополнительные сведения о распространенных задачах, которые можно выполнить с помощью этого объекта, см. в следующих статьях:
- Получить сведения о продукте для приложений и дополнений
- Получение информации о лицензии для приложений и дополнений
- Включить в приложении покупки для приложений и дополнений
- Включить покупки дополнений, которые можно израсходовать
- Включите дополнения подписки для вашего приложения
- Реализация пробной версии приложения
Пример приложения, демонстрирующего использование StoreContext и других типов в пространстве имен Windows.Services.Store, см. в примере Магазина.
Реализация покупок в приложении
Чтобы предложить клиентам покупку в приложении в вашем приложении, используя пространство имен Windows.Services.Store:
Если ваше приложение предлагает надстройки, которые клиенты могут приобрести, создайте представления надстроек для вашего приложения в Центре партнеров .
Напишите код в приложении , чтобы получить сведения о продукте для приложения или надстройки, предлагаемой приложением , а затем определить, активна ли лицензия (т. е. имеет ли пользователь лицензию на использование приложения или надстройки). Если лицензия не активна, отобразите пользовательский интерфейс, который предлагает приложение или надстройку для продажи пользователю в качестве покупки в приложении.
Если пользователь решит приобрести приложение или надстройку, используйте соответствующий метод для покупки продукта:
- Если пользователь приобретает ваше приложение или долговечное дополнение, выполните инструкции, указанные в разделе Включение покупок приложений и дополнений.
- Если пользователь приобретает расходуемый элемент, следуйте инструкциям в Включить покупки расходуемых элементов.
- Если пользователь приобретает дополнение к подписке, следуйте инструкциям в включите дополнения к подписке для вашего приложения.
Протестируйте реализацию, следуя инструкциям по тестированию в этой статье.
Реализация функциональных возможностей пробной версии
Чтобы исключить или ограничить функции в пробной версии приложения с помощью пространства имен Windows.Services.Store :
Настройте своё приложение как бесплатную пробную версию в Центре партнеров.
Напишите код в приложении, чтобы получить сведения о продукте для приложения или надстройки, предлагаемой вашим приложением, а затем определить, является ли лицензия, связанная с приложением, пробной лицензией.
Исключите или ограничьте некоторые функции в приложении, если это пробная версия, а затем включите функции, когда пользователь приобретает полную лицензию. Дополнительные сведения и пример кода см. в статье "Реализация пробной версии приложения".
Протестируйте реализацию, следуя инструкциям по тестированию в этой статье.
Тестирование реализации покупки или пробной версии в приложении
Если приложение использует API в пространстве имен Windows.Services.Store для реализации функций покупки или пробной версии приложения, необходимо опубликовать приложение в Магазине и скачать приложение на устройство разработки, чтобы использовать ее лицензию для тестирования. Выполните этот процесс, чтобы проверить код:
Если ваше приложение еще не опубликовано и не доступно в Магазине, убедитесь, что оно соответствует минимальным требованиям комплекта сертификации приложений для Windows , отправьте ваше приложение в Центр партнеров и убедитесь, что оно проходит процесс сертификации. Вы можете настроить приложение, чтобы оно было недоступно для обнаружения в Магазине во время его тестирования. Обратите внимание на правильную конфигурацию рейсов пакета. Неправильно настроенные рейсы пакетов могут быть не загружены.
Затем убедитесь, что вы выполнили следующее:
- Напишите код в приложении, который использует класс StoreContext и другие связанные наборы из пространства имен Windows.Services.Store для реализации покупок в приложении или пробной функциональности.
- Если ваше приложение предлагает надстройку, которую клиенты могут приобрести, создать отправку надстройки для вашего приложения в Центре партнеров.
- Если вы хотите исключить или ограничить некоторые функции в пробной версии вашего приложения, настройте ваше приложение как бесплатную пробную версию в Центре партнеров.
Откройте проект в Visual Studio, щелкните менюпроекта, наведите указатель на Магазин, а затем щелкните Связать приложение с Магазином. Выполните инструкции в мастере, чтобы связать проект приложения с приложением в учетной записи Центра партнеров, которую вы хотите использовать для тестирования.
Замечание
Если ваш проект не связан с приложением в Магазине, методы StoreContext устанавливают свойство ExtendedError возвращаемых значений на код ошибки 0x803F6107. Это значение указывает, что в Магазине нет знаний о приложении.
Если это еще не сделано, установите приложение из Магазина, указанного на предыдущем шаге, запустите приложение один раз и закройте это приложение. Это гарантирует, что на устройстве разработки установлена действительная лицензия для приложения.
В Visual Studio запустите или отладите проект. Код должен получать данные приложения и надстройки из приложения Store, связанного с локальным проектом. Если вам будет предложено переустановить приложение, следуйте инструкциям, а затем запустите или отладите проект.
Замечание
После выполнения этих действий можно продолжить обновление кода приложения, а затем выполнить отладку обновленного проекта на компьютере разработки без отправки новых пакетов приложений в Магазин. Чтобы получить локальную лицензию, которая будет использоваться для тестирования, необходимо скачать только версию приложения Store на компьютер разработки. После завершения тестирования необходимо отправить новые пакеты приложений в Магазин, если вы хотите сделать возможности покупок в приложении или связанные с пробной версией функции доступными для ваших клиентов.
Если приложение использует пространство имен Windows.ApplicationModel.Store , можно использовать класс CurrentAppSimulator в приложении для имитации сведений о лицензии во время тестирования перед отправкой приложения в Магазин. Дополнительные сведения см. в статье "Начало работы с классами CurrentApp и CurrentAppSimulator".
Замечание
Пространство имен Windows.Services.Store не предоставляет класс, который можно использовать для имитации сведений о лицензии во время тестирования. Если вы используете пространство имен Windows.Services.Store для реализации покупок или пробных версий в приложении, необходимо опубликовать приложение в Магазине и скачать приложение на устройство разработки, чтобы использовать его лицензию для тестирования, как описано выше.
Квитанции для покупок в приложении
Пространство имен Windows.Services.Store не предоставляет API для использования, чтобы получить квитанцию о транзакции для успешных покупок в коде вашего приложения. Это отличается от приложений, использующих пространство имен Windows.ApplicationModel.Store, которые могут использовать клиентский API для полученияквитанции о транзакции.
Если вы реализуете покупки в приложении с помощью пространства имен Windows.Services.Store и хотите проверить, приобрел ли данный клиент приложение или надстройку, можно использовать запрос к продуктам в REST API коллекции Microsoft Store. Возвращаемые данные для этого метода подтверждают, имеет ли указанный клиент право на определенный продукт и предоставляет данные для транзакции, в которой пользователь приобрел продукт. API коллекции Microsoft Store использует проверку подлинности Azure AD для получения этих сведений.
Использование класса StoreContext с мостом для настольных компьютеров
Классические приложения, использующие мост классических приложений, могут использовать класс StoreContext для реализации покупок и пробных версий в приложении. Однако если у вас есть классическое приложение Win32 или классическое приложение с дескриптором окна (HWND), связанное с платформой отрисовки (например, приложением WPF или windows App SDK), приложение должно настроить объект StoreContext, чтобы указать, какое окно приложения является окном владельца для модальных диалогов, отображаемых объектом.
Многие члены StoreContext (и члены других связанных типов, к которым обращается объект StoreContext ), отображают модальное диалоговое окно пользователю для операций, связанных с Магазином, таких как покупка продукта. Если настольное приложение не настраивает объект StoreContext, чтобы указать окно владельца для модальных диалогов, этот объект вернет некорректные данные или ошибки.
Чтобы настроить объект StoreContext в классическом приложении, использующего мост для настольных компьютеров, выполните следующие действия.
Для .NET 6 или более поздней версии
Если приложение написано на C# с .NET 6 или более поздней версии, выполните следующие действия.
Убедитесь, что свойство
TargetFramework
в файле проекта установлено на определенную версию Windows SDK для доступа к API среды выполнения Windows, которые предоставляют доступ к пространству имен WinRT.Interop. Рассмотрим пример.<PropertyGroup> <!-- You can also target other versions of the Windows SDK and .NET, e.g. "net6.0-windows10.0.19041.0" --> <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework> </PropertyGroup>
Получите объект StoreContext с помощью метода GetDefault (или GetForUser, если ваше приложение является многопользовательским приложением), как описано ранее в этой статье. Чтобы инициализировать диалоговое окно с указанным дескриптором окна, используйте методы WinRT.Interop.WindowNative.GetWindowHandle и WinRT.Interop.InitializeWithWindow.Initialize (см. Получение дескриптора окна (HWND) и Отображение объектов пользовательского интерфейса WinRT, зависящих от CoreWindow).
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 function for IInitializeWithWindow WinRT.Interop.InitializeWithWindow.Initialize(context, hwnd);
Для более ранних версий .NET или C++
Если приложение написано с более ранней версией .NET или C++, выполните следующие действия.
Выполните одно из следующих действий, чтобы разрешить приложению доступ к интерфейсу IInitializeWithWindow :
Если приложение написано на управляемом языке, например C# или Visual Basic (до .NET 6), объявите интерфейс IInitializeWithWindow в коде приложения с атрибутом 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.
Получите объект StoreContext с помощью метода GetDefault (или GetForUser, если ваше приложение является многопользовательским), как описано ранее в этой статье, и приведите этот объект к объекту IInitializeWithWindow. Затем вызовите метод IInitializeWithWindow.Initialize и передайте дескриптор окна, который вы хотите назначить владельцем для любых модальных диалогов, отображаемых методами StoreContext. В следующем примере C# показано, как передать дескриптор главного окна приложения методу. См. также Получение дескриптора окна (HWND) и Отображение объектов пользовательского интерфейса WinRT, зависящих от CoreWindow.
StoreContext context = StoreContext.GetDefault(); IInitializeWithWindow initWindow = (IInitializeWithWindow)(object)context; initWindow.Initialize(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
Продукты, номера SKU и доступность
Каждый продукт в Магазине имеет по крайней мере один номер SKU , и каждый номер SKU имеет по крайней мере одну доступность. Эти понятия абстрагируются от большинства разработчиков в Центре партнеров, и большинство разработчиков никогда не определяют номера SKU или доступность для своих приложений или надстроек. Однако, поскольку объектная модель для продуктов Store в пространстве имен 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. Для большинства разработчиков каждый артикул имеет одну настройку доступности по умолчанию. |
Идентификаторы магазина
Каждое приложение, надстройка или другой продукт в Магазине имеет связанный идентификатор магазина (который иногда также называют идентификатором магазина конкретного продукта). Многие API требуют ID магазина для выполнения операции с приложением или дополнением.
Идентификатор магазина любого продукта в Магазине — 12-символьная буквенно-числовая строка, например 9NBLGGH4R315
. Существует несколько различных способов получения идентификатора Магазина для продукта в Магазине:
- Для приложения идентификатор Store ID можно получить на странице идентификационных данных приложения в Центре партнеров.
- Для надстройки можно получить идентификатор Магазина на странице обзора надстройки в Центре партнеров.
- Для любого продукта можно также получить идентификатор Магазина программным способом с помощью свойства StoreId объекта StoreProduct , представляющего продукт.
Для продуктов, имеющих номера SKU и доступность, у этих номеров SKU и их доступности также есть собственные идентификаторы магазина в разных форматах.
Объект | Формат идентификатора хранилища |
---|---|
Артикул (SKU) | Идентификатор магазина для SKU имеет формат <product Store ID>/xxxx , где xxxx имеется 4-символьная буквенно-числовая строка, которая определяет номер SKU для продукта. Например: 9NBLGGH4R315/000N . Этот идентификатор возвращается свойством StoreId объекта StoreSku и иногда называется идентификатором хранилища SKU . |
Доступность | Идентификатор магазина для доступности имеет формат <product Store ID>/xxxx/yyyyyyyyyyyy , где xxxx имеется 4-символьная альфа-числовая строка, которая определяет номер SKU для продукта и yyyyyyyyyyyy представляет собой 12-символьную буквенно-числовую строку, которая определяет доступность номера SKU. Например: 9NBLGGH4R315/000N/4KW6QZD2VN6X . Этот идентификатор возвращается свойством |
Как использовать идентификаторы продуктов для надстроек в коде
Если вы хотите сделать надстройку доступной для своих клиентов в контексте приложения, необходимо ввести уникальный идентификатор продукта для надстройки при создании отправки надстройки в Партнёрском центре. Этот идентификатор продукта можно использовать для ссылки на надстройку в коде, хотя конкретные сценарии, в которых можно использовать идентификатор продукта, зависят от пространства имен, используемого для покупок в приложении.
Замечание
Идентификатор продукта, который вы вводите в Партнерском центре для дополнения, отличается от идентификатора Магазинадополнения. Идентификатор Магазина создается Центром партнеров.
Приложения, использующие пространство имен Windows.Services.Store
Если ваше приложение использует пространство имен Windows.Services.Store, вы можете использовать идентификатор продукта, чтобы легко определить StoreProduct, представляющий вашу надстройку, или StoreLicense, представляющую лицензию на вашу надстройку. Идентификатор продукта предоставляется свойствами StoreProduct.InAppOfferToken и StoreLicense.InAppOfferToken .
Замечание
Хотя идентификатор продукта является полезным способом идентификации надстройки в коде, большинство операций в пространстве имен Windows.Services.Store используют Store ID надстройки, а не идентификатор продукта. Например, чтобы программно получить одну или более известных надстроек для приложения, передайте идентификаторы магазина (а не идентификаторы продуктов) этих надстроек в метод GetStoreProductsAsync. Аналогичным образом, чтобы сообщить о выполненной используемой надстройке, передайте идентификатор магазина надстройки (а не идентификатор продукта) в метод ReportConsumableFulfillmentAsync.
Приложения, использующие пространство имен Windows.ApplicationModel.Store
Если ваше приложение использует пространство имен Windows.ApplicationModel.Store, вам потребуется использовать идентификатор продукта, который вы назначаете надстройке в Центре партнеров для большинства операций. Рассмотрим пример.
Используйте идентификатор продукта для определения ProductListing, представляющей собой вашу надстройку, или ProductLicense, которая означает лицензию вашей надстройки. Идентификатор продукта предоставляется свойствами ProductListing.ProductId и ProductLicense.ProductId .
Укажите идентификатор продукта при покупке дополнения для пользователя с помощью метода RequestProductPurchaseAsync. Дополнительные сведения см. в разделе Включение покупок в приложении.
Укажите идентификатор продукта при отчете о используемой надстройке как выполненной с помощью метода ReportConsumableFulfillmentAsync. Дополнительные сведения см. в разделе Включение покупок продуктов в приложении.
Связанные темы
- Получить сведения о продукте для приложений и дополнений
- Получение информации о лицензии для приложений и дополнений
- Включить в приложении покупки для приложений и дополнений
- Включить покупки дополнений, которые можно израсходовать
- Включите дополнения подписки для вашего приложения
- Реализация пробной версии приложения
- коды ошибок для операций магазина
- Покупки и пробные версии в приложениях с помощью пространства имен Windows.ApplicationModel.Store