Avalonia应用微软商店内购报错0x803F6107求助
解决Avalonia微软商店内购0x803F6107错误及订阅查询问题
核心错误:附加组件类型参数传错
你调用GetAssociatedStoreProductsAsync时传入的是"Durable",但订阅类附加组件对应的类型是"Subscription",这会导致商店无法匹配到你的订阅产品,直接返回错误。修改代码如下:
public async Task<IEnumerable<StoreProduct>> GetSubscriptionProductsAsync() { StoreProductQueryResult result = await _context.GetAssociatedStoreProductsAsync(new string[] { "Subscription" }); if (result.ExtendedError != null) { System.Diagnostics.Debug.WriteLine("获取附加组件出错: " + result.ExtendedError); return null; } return result.Products.Values; }
其他排查修复步骤
- 确认StoreContext初始化时机:确保在窗口完全加载后再获取窗口Handle并初始化
StoreContext,避免Handle无效。比如可以在Avalonia窗口的Loaded事件中执行初始化逻辑,而非应用启动初期。 - 检查调试配置:
- 确保打包项目是启动项目,右键打包项目→属性→调试,确认"启动应用"选项为"是"。
- 调试前必须先部署打包项目,且调试时运行的是打包后的商店应用,而非直接启动Avalonia项目。
- 验证商店关联一致性:检查打包项目的
Package.appxmanifest中的发布者和包系列名称是否与微软商店后台完全一致,若有不一致,重新关联打包项目与商店。 - 清除商店缓存:按下Win+R输入
wsreset.exe,清空Windows商店缓存,完成后重启电脑再尝试调试。 - 账户与许可证验证:
- 确保调试时Windows登录的账户是与商店关联的开发者账户。
- 若之前下载过商店版本,确认已登录该账户并运行过一次,确保本地已获取到基础许可证。
- 排查AddOnLicenses为空问题:修改
CheckIfUserHasSubscriptionAsync时,先添加日志输出appLicense.IsActive确认应用本身的许可证状态。若应用许可证无效,说明商店上下文未正确建立,需优先解决0x803F6107错误。
内容的提问来源于stack exchange,提问作者renrutsirhc
相关产品推荐
相关产品推荐

