Share via

Payment Request BUG

fandian 5 Reputation points
2026-02-10T09:59:43.2766667+00:00

I can obtain digital goods according to the following documentation, but when I initiate a purchase, the purchase dialog pops up and disappears immediately.

https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/how-to/digital-goods-api#purchasing-an-item-paymentrequest-constructor-and-show-method

	const request = new PaymentRequest([

	  {

			supportedMethods:"https://store.microsoft.com/billing",

            data: { sku: "lse12" }

	  }

	]);

	request.canMakePayment().then(result => {

	  if (result) {

	    console.log("This browser supports the specified payment method.")

	  } else {

	    console.log("This browser does NOT support the specified payment method.")

	  }

	}).catch(err => {

	   console.error("canMakePayment Error", err);

	});

	request.show()

	  .then(response => {

	    console.log("Success", response);

	    response.complete("success");

	  })

	  .catch(err => {

	    console.error("Pay Error", err);

	  });

This browser supports the specified payment method.

The console shows the following error.

Cross-site redirect from "https://store.microsoft.com/billing" to "https://www.microsoftstore.com/" not allowed for payment manifests.

Pay Error AbortError: User closed the payment app.

curl -I https://store.microsoft.com/billing
HTTP/1.1 301 Moved Permanently
Date: Tue, 10 Feb 2026 09:52:20 GMT
Server: Kestrel
Location: https://www.microsoftstore.com/
Strict-Transport-Security: max-age=31536000
Microsoft Edge | Microsoft Edge development
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Tom Tran (WICLOUD CORPORATION) 4,500 Reputation points Microsoft External Staff Moderator
    2026-02-10T11:07:47.2833333+00:00

    Hi @fandian,

    From what you’ve shown, the purchase dialog closing immediately isn’t caused by your code. It’s happening because the Microsoft Store Billing URL used in the docs (https://store.microsoft.com/billing) is now returning a 301 redirect to https://www.microsoftstore.com/, and browsers block cross‑site redirects when loading a payment‑method manifest. Once that redirect happens, Edge treats the manifest as invalid and closes the sheet right away.

    Your canMakePayment() result is correct, the method identifier format is supported but the redirect prevents the actual payment manifest from loading. That’s why you’re seeing:

    Cross-site redirect … not allowed for payment manifests AbortError: User closed the payment app

    Right now, the billing URL in Microsoft’s own Digital Goods API documentation still points to the redirecting host, so this appears to be an upstream issue rather than something wrong in your app.


    Perhaps you could give these suggestions a try first:

    1. Keep your Digital Goods API usage, but fallback to your normal web checkout when PaymentRequest.show() fails. This is the recommended pattern when a payment method identifier isn’t available.
    2. If your app uses a Content Security Policy, make sure connect-src allows the PMI host, otherwise future requests may also get blocked, newer Chromium builds enforce this.
    3. You can test https://www.microsoftstore.com/billing directly, but there’s no official confirmation that it hosts a proper payment manifest, so treat that only as an experiment.

    If you’re running this outside a Microsoft Store–installed PWA, it also won’t complete purchases, so ensure you’re testing inside the Store installation.


    Are you testing the purchase flow inside the Microsoft Store–installed version of your PWA, or just from the browser?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.