Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если прогрессивное веб-приложение (PWA) указано в Microsoft Store, вы можете предоставлять продукты и подписки из приложения с помощью API цифровых товаров и API запроса на оплату.
API цифровых товаров
API цифровых товаров — это интерфейс между приложением PWA и Microsoft Store. API цифровых товаров поддерживает:
- Запрос сведений о цифровом элементе из серверной части Microsoft Store, таких как имя, описание и региональная цена.
- Использование или подтверждение покупок.
- Проверка цифровых элементов, которые в настоящее время принадлежат пользователю.
- Проверка журнала покупок пользователя.
См. следующие статьи:
API запроса на оплату
API запроса на оплату обрабатывает фактическую платежную транзакцию, когда пользователь совершает покупку. API запроса на оплату использует сведения об элементе, предоставляемые API цифровых товаров, для совершения покупки в приложении с помощью метода выставления счетов, настроенного пользователем в Microsoft Store.
См. следующие статьи:
- API запроса на оплату в MDN.
Включение API цифровых товаров
API цифровых товаров в настоящее время доступен для всех каналов в Microsoft Edge. Чтобы протестировать API, убедитесь, что версия Edge или 134.0.3124.51
выше.
Проверка доступности API цифровых товаров
Чтобы определить, есть ли у вас доступ к API на веб-сайте, проверка, существует ли getDigitalGoodsService
метод в объекте window
:
if ('getDigitalGoodsService' in window) {
// The Digital Goods API is supported.
} else {
console.log('DigitalGoodsService is not available.');
// Use another payment method.
}
См. также:
-
Метод getDigitalGoodsService() интерфейса.
Window
Подключение к службе выставления счетов Microsoft Store (window.getDigitalGoodsService
метод)
getDigitalGoodsService
Используйте метод объекта для window
подключения к службе выставления счетов Microsoft Store. Возвращается интерфейс DigitalGoodsService .
API цифровых товаров был разработан для обеспечения совместимости с различными браузерами и цифровыми магазинами, аналогично тому, как API запроса на оплату не зависит от браузера и может использоваться с разными поставщиками платежных услуг. Чтобы получить экземпляр службы для выставления счетов в Microsoft Store, передайте строку "https://store.microsoft.com/billing"
в качестве метода оплаты в getDigitalGoodsService
метод .
Если метод выдает ошибку, способ оплаты выставления счетов в Microsoft Store недоступен (например, когда пользователь обращается к PWA через браузер). Кроме того, рассмотрите возможность предоставления другого метода оплаты для транзакций.
if (window.getDigitalGoodsService === undefined) {
// The Digital Goods API isn't supported in this context.
return;
}
try {
const digitalGoodsService = await window.getDigitalGoodsService("https://store.microsoft.com/billing");
// Use the service here.
...
} catch (error) {
// The preferred service provider is not available.
// Use a web-based payment flow instead.
return;
}
Этот способ getDigitalGoodsService("https://store.microsoft.com/billing")
оплаты доступен только для PWA, установленного из Microsoft Store в Windows. Другие параметры не требуются.
См. также:
-
Метод getDigitalGoodsService() интерфейса.
Window
- Интерфейс DigitalGoodsService
Запрос сведений об элементе (getDetails
метод)
getDetails
Используйте метод интерфейса для DigitalGoodsService
запроса сведений об элементе.
После подключения службы цифровых товаров к Microsoft Store вы можете использовать API для доступа к информации о продукте и покупках. Метод getDetails
позволяет получить сведения о элементах, настроенных в Центре партнеров. Отображение таких сведений, как название продукта, описание и цена, в пользовательском интерфейсе приложения, чтобы пользователь знал, что доступно для покупки.
Метод getDetails
принимает список идентификаторов элементов, которые соответствуют идентификаторам продуктов из приложения и подписок, созданных в Центре партнеров.
const itemDetails = await digitalGoodsService.getDetails(['shiny_sword', 'gem', 'monthly_subscription']);
for (item of itemDetails) {
const priceStr = new Intl.NumberFormat(
locale,
{style: 'currency', currency: item.price.currency}
).format(item.price.value);
// Do something with the item's data, such as displaying it in the PWA's UI.
displayProductItem(item.itemId, item.title, priceStr, item.description);
}
Возвращаемая itemDetails
последовательность может находиться в любом порядке и не включать элемент, если элемент не существует на сервере (то есть, если между входным и выходным списками нет соответствия 1:1).
Идентификатор элемента — это строка, представляющая первичный ключ элементов. В Microsoft Store идентификатор элемента — InAppOfferToken
. Нет функции для получения списка идентификаторов элементов; Идентификаторы элементов должны быть жестко закодированы в клиентском коде или получить с собственного сервера (сервера разработчика).
price
Элемент является объектом , который содержит текущую PaymentCurrencyAmount
цену товара в текущем регионе и валюте пользователя. Предназначен price
для форматирования для текущего языкового стандарта пользователя с помощью Intl.NumberFormat
, как показано выше.
См. также
Спецификация API цифровых товаров
Разработка Windows App:
W3C:
MDN:
Приобретение элемента (PaymentRequest
конструктор и show
метод)
После отображения продуктов и сведений для пользователя реализуйте поток покупки с помощью API запроса на оплату. Чтобы приобрести элемент, сначала создайте запрос, содержащий сведения об элементе, с помощью конструктора PaymentRequest
, а затем используйте show
метод PaymentRequest
объекта для запуска потока оплаты.
В сочетании с API цифровых товаров единственным обязательным входным параметром для конструктора PaymentRequest
является methodData
. В параметре конструктора:
- В элементе
supportedMethods
укажите выставление счетов в Microsoft Store в качестве метода оплаты, а в качестве строки'https://store.microsoft.com/billing'
. - В элементе
data
передайте вitemId
качествеsku
.
const details = await digitalGoodsService.getDetails(['monthly_subscription']);
const item = details[0];
const request = new PaymentRequest([
{
supportedMethods: 'https://store.microsoft.com/billing',
data: { sku: item.itemId }
}
]);
Затем вызовите show
метод PaymentRequest
объекта , чтобы запустить поток оплаты:
const response = await request.show();
Откроется пользовательский интерфейс покупки в Магазине для пользователя, где пользователь может просмотреть сведения о продукте, который он пытается приобрести. Во время этого процесса текущий сеанс браузера временно отключается до завершения потока покупки. Пользователь может либо отменить транзакцию, либо продолжить оплату:
Если пользователь отменяет платеж, обещание, возвращаемое методом
show
, будет отклонено с ошибкой.Если пользователь успешно оплатит и завершит покупку, обещание будет разрешаться с помощью
PaymentResponse
. В свойствеdetails
ответа на оплату возвращается токен покупки.
См. также:
Использование покупки (consume
метод)
consume
Используйте метод интерфейса для DigitalGoodsService
использования покупки.
Потребляемая покупка — это покупка, которая предназначена для приобретения несколько раз. Потребляемая покупка обычно должна быть помечена как "потребляемая", прежде чем покупка может быть приобретена пользователем снова. Примером потребляемой покупки является внутриигровая мощность, которая делает игрока сильнее в течение короткого периода времени.
Чтобы пометить покупку как "использованную", используйте consume
метод :
digitalGoodsService.consume(purchaseToken);
См. также:
- Метод
DigitalGoodsService
consume() интерфейса.
Проверка существующих покупок (listPurchases
метод)
listPurchases
Используйте метод интерфейса для DigitalGoodsService
проверка существующих покупок. Этот метод возвращает сведения о существующих покупках пользователя. Этот метод позволяет клиенту получить список элементов, которые в настоящее время принадлежат пользователю или приобрели их. Это может потребоваться для выполнения любого из следующих действий:
Проверьте наличие прав, например, активна ли подписка, рекламный код или постоянное обновление.
Восстановление после перебоев в сети во время покупки, например, когда элемент приобретен, но еще не подтвержден.
Метод listPurchases
возвращает идентификаторы элементов и маркеры покупки. Перед предоставлением права необходимо проверить идентификатор возвращаемого элемента или возвращенный токен покупки с помощью API прямого подключения от разработчика к поставщику, как показано ниже.
const purchaseList = await digitalGoodsService.listPurchases();
for (const purchase of purchaseList) {
// Handle the purchase data in your PWA.
verifyAndGrantEntitlement(purchase.itemId, purchase.purchaseToken);
}
Метод listPurchases
не возвращает использованные продукты или подписки с истекшим сроком действия.
См. также:
- Метод
DigitalGoodsService
listPurchases() интерфейса.
Получение журнала покупок (listPurchaseHistory
метод)
listPurchaseHistory
Используйте метод интерфейса, DigitalGoodsService
чтобы получить журнал покупок.
Этот метод возвращает список, PurchaseDetails
содержащий и purchaseToken
для каждой itemId
покупки. Список включает последнюю покупку, совершенную пользователем для каждого элемента, независимо от того, истек срок действия, отмена или потребление покупки.
const purchaseList = await digitalGoodsService.listPurchaseHistory();
for (const purchase of purchaseList) {
// Handle the expired purchase data in your PWA.
verifyAndCheckExpiredEntitlement(purchase.itemId, purchase.purchaseToken);
}
См. также:
-
Метод listPurchaseHistory() интерфейса.
DigitalGoodsService
- Словарь PurchaseDetails
См. также
GitHub:
MDN:
W3C:
Разработка Windows App: