测试微软商店UWP应用订阅:如何解绑用户与订阅许可证?
我之前测试UWP订阅功能时也碰到过一模一样的糟心事,给你几个实际试过有效的解决方案:
彻底清理微软商店缓存
有时候商店本地缓存会死死咬住旧的订阅许可证不放,试试这个操作:按Win+R打开运行窗口,输入wsreset.exe回车,等待微软商店自动重启。这个操作会清空商店的所有本地缓存数据,包括残留的许可证信息。在微软账户端手动取消订阅
即使是免费订阅,账户端可能还保留着订阅记录。登录你的微软账户,进入「服务和订阅」页面,找到对应UWP应用的订阅项,手动点击取消(哪怕是免费的也要操作)。完成后等待10-15分钟让服务器同步状态,再重新测试应用。强制从服务器刷新许可证
不要依赖应用本地缓存的许可证状态,调用API时强制从服务器拉取最新数据。修改你的代码,使用StoreLicenseRetrievalOptions.ForceRefresh参数:var storeContext = StoreContext.GetDefault(); var retrievalOptions = new StoreLicenseRetrievalOptions { ForceRefresh = true }; var appLicense = await storeContext.GetAppLicenseAsync(retrievalOptions); // 替换成你的订阅SKU ID var targetSkuId = "你的订阅SKU唯一标识"; var subscriptionLicense = appLicense.AddOnLicenses.Values .FirstOrDefault(license => license.SkuStoreId == targetSkuId); bool isSubscriptionActive = subscriptionLicense?.IsActive ?? false;这样每次获取许可证都会直接请求微软商店服务器,不会用本地缓存的旧数据。
完全移除账户并重新登录
仅仅在应用内退出账户可能不够,去系统设置的「账户 > 电子邮件和账户」里,找到你的微软账户,点击「删除」,彻底移除后再重新登录。这样能确保系统层面的账户关联数据被清空。检查Partner Center的订阅配置
如果你的免费订阅是设置为永久有效的,那状态自然会一直返回true。如果是测试需要可重置的订阅,建议在Partner Center里创建一个专门的测试订阅SKU,设置为有期限的免费试用,这样到期后状态会自动变更,或者你可以在Partner Center的测试工具里手动重置订阅状态。
内容的提问来源于stack exchange,提问作者E.A.P.

