Fornecer compras via aplicação com a API de Bens Digitais
Se a sua Aplicação Web Progressiva (PWA) estiver listada na Microsoft Store, pode fornecer produtos e subscrições na aplicação através da API de Bens Digitais e da API de Pedido de Pagamento.
API de Bens Digitais
A API de Bens Digitais é uma interface entre a sua aplicação PWA e a Microsoft Store. A API de Bens Digitais suporta:
- Consultar os detalhes de um item digital a partir do back-end da Microsoft Store, como o nome, descrição e preço regional do item.
- Consumir ou reconhecer compras.
- Verificar os itens digitais que pertencem atualmente ao utilizador.
- Verificar o histórico de compras do utilizador.
Confira:
- Explicação do PWA da API de Bens Digitais para a Microsoft Store
- Especificação da API de Bens Digitais
API de Pedido de Pagamento
A API de Pedido de Pagamento processa a transação de pagamento real quando uma compra é efetuada por um utilizador. A API de Pedido de Pagamento utiliza os detalhes do item que a API de Bens Digitais fornece, para fazer a compra na aplicação utilizando o método de pagamento de faturação que o utilizador configurou na Microsoft Store.
Confira:
- API de Pedido de Pagamento na MDN.
Ativar a API de Bens Digitais
A API de Bens Digitais está atualmente disponível para testes no Microsoft Edge. Para testar a API, utilize uma das seguintes formas:
- Para testar o seu código localmente: utilize um canal de pré-visualização suportado do Microsoft Edge no seu computador de programador.
- Para testar o código no seu PWA da Microsoft Store: registe-se na versão de avaliação de origem e, em seguida, utilize o token no seu site.
Os detalhes encontram-se abaixo.
Utilizar um canal de pré-visualização suportado do Microsoft Edge no seu computador dev
Para testar a API de Bens Digitais localmente, antes de implementar a sua aplicação para produção, execute o Edge Dev ou o Edge Canary. Estas versões de pré-visualização do Edge têm a API ativada, como parte de uma experimentação em execução.
Para transferir um canal de pré-visualização (insider) do Microsoft Edge, consulte Tornar-se um Microsoft Edge Insider.
Registe-se na versão de avaliação de origem e, em seguida, utilize o token no seu site
Para testar a API de Bens Digitais em produção, com os seus utilizadores, utilize um token de avaliação de origem. Com esta abordagem, quando os seus utilizadores transferirem o seu PWA a partir da Microsoft Store, terão a API ativada.
Confira:
- Utilizar avaliações de origem no Microsoft Edge
- API de Bens Digitais na Origin Trials.
Verificar se a API de Bens Digitais está disponível
Para detetar se ativou corretamente a API no seu site com o token de avaliação de origem, marcar se o getDigitalGoodsService
método existe no window
objeto:
if ('getDigitalGoodsService' in window) {
// The Digital Goods API is supported.
} else {
console.log('DigitalGoodsService is not available.');
// Use another payment method.
}
Veja também:
-
getDigitalGoodsService() método da
Window
interface.
Ligar ao serviço de Faturação da Microsoft Store (window.getDigitalGoodsService
método)
Utilize o getDigitalGoodsService
método do window
objeto para ligar ao serviço de Faturação da Microsoft Store. É devolvida uma interface DigitalGoodsService .
A API de Bens Digitais foi concebida para ser compatível com vários browsers e lojas digitais, semelhante à forma como a API de Pedido de Pagamento é agnóstica do browser e pode ser utilizada com diferentes fornecedores de pagamentos. Para obter uma instância do serviço para Faturação da Microsoft Store, transmita a cadeia "https://store.microsoft.com/billing"
como o método de pagamento para o getDigitalGoodsService
método .
Se o método emitir um erro, o método de pagamento de Faturação da Microsoft Store não está disponível (por exemplo, quando o utilizador está a aceder ao seu PWA através do browser). Em alternativa, considere fornecer um método de pagamento diferente para transações.
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;
}
Este método getDigitalGoodsService("https://store.microsoft.com/billing")
de pagamento só está disponível para um PWA instalado a partir da Microsoft Store, no Windows. Não são necessárias outras definições.
Veja também:
-
getDigitalGoodsService() método da
Window
interface. - Interface DigitalGoodsService
Consultar detalhes do item (getDetails
método)
Utilize o getDetails
método da DigitalGoodsService
interface para consultar os detalhes do item.
Depois de ligar o serviço de Bens Digitais à Microsoft Store, pode utilizar a API para aceder a informações de produtos e compras. O getDetails
método permite-lhe obter informações sobre os itens que configurou no Centro de Parceiros. Apresentar informações como o título do produto, a descrição e o preço na IU da aplicação, para que o utilizador saiba o que está disponível para compra.
O getDetails
método utiliza uma lista de IDs de itens, que correspondem aos IDs de produto dos produtos e subscrições na aplicação que criou no Centro de Parceiros.
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);
}
A sequência devolvida itemDetails
pode estar em qualquer ordem e pode não incluir um item se o item não existir no servidor (ou seja, se não existir uma correspondência de 1:1 entre a lista de entrada e a lista de saída).
O ID do item é uma cadeia que representa a chave primária dos itens. Na Microsoft Store, o ID do item é InAppOfferToken
. Não existe nenhuma função para obter uma lista de IDs de itens; os IDs de itens devem ser codificados no código de cliente ou obtidos a partir do seu próprio servidor (o servidor do programador).
O item é price
um PaymentCurrencyAmount
que contém o preço atual do item na região e moeda atuais do utilizador. O price
foi concebido para ser formatado para a região atual do utilizador com Intl.NumberFormat
, conforme mostrado acima.
Confira também
Especificação da API de Bens Digitais
Desenvolvimento Windows App:
W3C:
MDN:
Comprar um item (PaymentRequest
construtor e show
método)
Depois de os seus produtos e detalhes serem apresentados ao utilizador, implemente o fluxo de compra com a API de Pedido de Pagamento. Para comprar um item, crie primeiro um pedido que contenha os detalhes do item com o PaymentRequest
construtor e, em seguida, utilize o show
método do PaymentRequest
objeto para iniciar o fluxo de pagamento.
Quando combinado com a API de Bens Digitais, o único parâmetro de entrada necessário para o PaymentRequest
construtor é methodData
. No parâmetro do construtor:
-
supportedMethods
No membro, especifique a Faturação da Microsoft Store como método de pagamento, como a cadeia'https://store.microsoft.com/billing'
. -
data
No membro, passe oitemId
como .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 }
}
]);
Em seguida, chame o show
método do PaymentRequest
objeto para iniciar o fluxo de pagamento:
const response = await request.show();
Esta ação apresenta a IU de compra da Loja ao utilizador, onde o utilizador pode ver detalhes sobre o produto que está a tentar comprar. Durante este processo, a sessão atual do browser é temporariamente desativada até que o fluxo de compra esteja concluído. O utilizador pode cancelar a transação ou prosseguir com o pagamento:
Se o utilizador cancelar o pagamento, a Promessa devolvida pelo
show
método será rejeitada com um erro.Se o utilizador pagar com êxito e concluir a compra, a Promessa resolve com um
PaymentResponse
.details
Na propriedade da resposta de pagamento, é devolvido um token de compra.
Veja também:
Consumir uma compra (consume
método)
Utilize o consume
método da DigitalGoodsService
interface para consumir uma compra.
Uma compra consumível é uma compra concebida para ser comprada várias vezes. Normalmente, uma compra consumível tem de ser marcada como "consumida" antes de a compra poder ser comprada novamente pelo utilizador. Um exemplo de uma compra consumível é um powerup no jogo que torna o jogador mais forte por um curto período de tempo.
Para marcar uma compra como "consumida", utilize o consume
método :
digitalGoodsService.consume(purchaseToken);
Veja também:
-
consume() método da
DigitalGoodsService
interface.
Verificar compras existentes (listPurchases
método)
Utilize o listPurchases
método da DigitalGoodsService
interface para marcar compras existentes. Este método devolve informações sobre as compras existentes do utilizador. Este método permite que um cliente obtenha uma lista de itens que são atualmente propriedade ou comprados pelo utilizador. Isto pode ser necessário, para efetuar um dos seguintes procedimentos:
Verifique se existem elegibilidades, como se uma subscrição, código promocional ou atualização permanente está ativa.
Recupere de interrupções de rede durante uma compra, como quando o item é comprado, mas ainda não é reconhecido.
O listPurchases
método devolve IDs de itens e tokens de compra. Antes de conceder uma elegibilidade, deve verificar o ID do item devolvido ou o token de compra devolvido, utilizando uma API direta de programador para fornecedor, conforme mostrado abaixo:
const purchaseList = await digitalGoodsService.listPurchases();
for (const purchase of purchaseList) {
// Handle the purchase data in your PWA.
verifyAndGrantEntitlement(purchase.itemId, purchase.purchaseToken);
}
O listPurchases
método não devolve produtos consumidos ou subscrições expiradas.
Veja também:
-
listPurchases() método da
DigitalGoodsService
interface.
Obter o histórico de compras (listPurchaseHistory
método)
Utilize o listPurchaseHistory
método da DigitalGoodsService
interface para obter o histórico de compras.
Este método devolve uma lista de PurchaseDetails
que contém e purchaseToken
itemId
para cada compra. A lista inclui a compra mais recente efetuada pelo utilizador para cada item, independentemente de a compra ter expirado, cancelado ou consumido.
const purchaseList = await digitalGoodsService.listPurchaseHistory();
for (const purchase of purchaseList) {
// Handle the expired purchase data in your PWA.
verifyAndCheckExpiredEntitlement(purchase.itemId, purchase.purchaseToken);
}
Veja também:
-
listPurchaseHistory() método da
DigitalGoodsService
interface. - Dicionário PurchaseDetails
Confira também
Avaliações de origem:
- Utilizar avaliações de origem no Microsoft Edge
- API de Bens Digitais na Origin Trials.
GitHub:
- Explicação do PWA da API de Bens Digitais para a Microsoft Store
-
Especificação da API de Bens Digitais
-
getDigitalGoodsService() método da
Window
interface. - Interface DigitalGoodsService
- Dicionário PurchaseDetails
-
getDigitalGoodsService() método da
MDN:
W3C:
Desenvolvimento Windows App: