Developing and testing features or extensions for Microsoft Edge
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
I can obtain digital goods according to the following documentation, but when I initiate a purchase, the purchase dialog pops up and disappears immediately.
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
Developing and testing features or extensions for Microsoft Edge
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:
PaymentRequest.show() fails. This is the recommended pattern when a payment method identifier isn’t available.connect-src allows the PMI host, otherwise future requests may also get blocked, newer Chromium builds enforce this. 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?