Flutter使用in_app_purchase无法获取订阅计划的问题求助
解决in_app_purchase: ^3.1.1中订阅内容[id] not found的问题
确认订阅商品配置准确性
去Play Console核对订阅的basePlanId和offerId(如果使用优惠活动),确保大小写、特殊字符完全匹配,没有拼写错误。同时要确认订阅商品已发布到测试轨道(内部/封闭/开放测试均可),未发布的商品无法被客户端获取。适配订阅ID的正确格式
in_app_purchase: ^3.1.1对应Google Play Billing Library 5.x版本,订阅ID需遵循特定格式:无优惠活动时直接使用basePlanId;有优惠活动时用basePlanId:offerId的组合格式,不要沿用旧版直接使用商品ID的方式。示例代码:
final ProductDetailsResponse response = await InAppPurchase.instance.queryProductDetails({ 'your_base_plan_id', // 无优惠时的写法 'your_base_plan_id:your_offer_id' // 带优惠时的写法 });检查测试账号权限
确保测试账号已添加到Play Console的「许可测试名单」中,且测试设备登录的是该账号。未在名单内的账号无法访问测试轨道的订阅商品,会触发ID未找到的错误。清理缓存并重新同步
- 卸载应用,清除Google Play商店的缓存和数据
- 重新安装应用后再次调用
queryProductDetails接口
Play商店的缓存可能导致商品信息不同步,清理后可解决这类问题。
验证代码中的ID传递逻辑
检查代码里传递的ID是否存在字符串拼接错误、多余空格或额外字符,确保传递的ID和Play Console中的配置完全一致。
内容的提问来源于stack exchange,提问作者Smit Jagani
相关产品推荐
相关产品推荐

