You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter in_app_purchase 3.0.6 获取内购价格与商店后台配置不符

问题原因

你从productDetails.rawPrice拿到的价格本身没有问题,和后台配置值存在偏差不是in_app_purchase插件的bug,核心是你对两个应用商店的定价规则存在认知偏差:
你在App Store Connect、Google Play Console后台填写的0.99€/1.99€/2.99€是不含税费的开发者基准定价,不是面向终端用户的最终支付价格。两个平台都会基于基准价,结合售往地区的法定增值税率、本地定价规则、价格档位取整逻辑,自动计算用户实际需要支付的金额,这个最终金额才是接口返回、系统支付弹窗展示的价格。

iOS端偏差具体说明

App Store的价格档位(Tier)标注的价格均为不含税基准价:

  • Tier1对应的0.99€基准价,叠加欧元区国家10%~20%不等的标准增值税后,最终售价自然会高于基准价,你拿到的1.09€是苹果针对你当前账号售往区域校准后的标准Tier1档位含税价,属于正常结果
  • Tier2、Tier3返回的2.49€、3.49€同理,都是对应档位的含税售价

如果你已经完成欧盟VAT税号注册并提交给苹果,可以在App Store Connect的「定价与销售范围」页手动触发价格重算,平台会调整定价的税费拆分逻辑,但不会改变用户最终支付的总金额。

Android端偏差具体说明

Google Play的定价校准逻辑比App Store更灵活:

  • 平台会在基准价基础上叠加当地税费后,按照本地用户付费习惯做价格取整,还会默认开启本地价格自动优化,因此最终售价不会严格等于「基准价+税费」的计算值,你拿到的1.19€、2.39€、3.69€均为平台自动校准后的正常售价
  • 这部分自动微调的价格不会实时同步显示在你后台的基准价配置页。
解决方案

如果你需要严格匹配你预期的0.99€/1.99€/2.99€售价,按照以下步骤操作即可:

  • 关闭平台自动定价功能
    • iOS:进入App Store Connect对应内购项目的定价设置页,关闭地区价格自动调整开关,手动为所有欧元区国家/地区指定你需要的最终售价
    • Android:进入Google Play Console对应内购项目的定价设置页,关闭本地价格自动优化开关,手动覆盖欧元区各国的定价为目标值
  • 不要依赖接口返回值获取基准价
    商店的商品查询接口永远返回当前登录用户所在地区的最终实付价,这个价格会随税率调整、平台定价规则更新动态变化。如果你只是需要在前端展示你配置的基准价,建议直接在本地维护内购ID和对应基准价的映射表即可,不需要从接口取数。
  • 支付校验逻辑不要硬编码价格
    后续做支付凭证校验时,不要把你配置的基准价作为唯一校验标准,要以接口返回的实际支付金额为准,避免因为平台定价规则调整导致校验失败、用户无法完成购买。

内容的提问来源于stack exchange,提问作者user31929

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:51:42