如何通过Google Play Billing v5获取应用关联的全部产品ID?
Google Play Billing v5 没有提供直接列出应用所有关联产品ID的原生API——所有查询产品详情的方法(比如queryProductsAsync)都要求预先传入已知的产品ID集合,这是官方设计的既定规则。
针对你不想硬编码产品ID、也没有后端跟踪的情况,这里有几个可行的替代方案:
用Google Play Developer API生成动态配置文件
写一个简单的脚本(比如Python),定期调用Google Play Developer API的edits.products.list接口拉取应用的所有产品ID,然后把这些ID导出成JSON格式的配置文件,上传到免费的静态存储服务(比如Firebase Hosting、GitHub Gist)。应用启动时先请求这个配置文件拿到产品ID列表,再调用Billing API查询产品详情。这种方式不需要复杂后端,只需要定期运行脚本更新配置文件即可。借助远程配置服务
把产品ID列表放到Firebase Remote Config这类远程配置服务里,应用每次启动时从远程配置拉取最新的ID集合,再执行Billing查询。这种方式可以在不发布应用更新的情况下调整产品ID,灵活度很高,且不需要自己搭建服务器。内置基础ID+手动补充(仅测试用)
如果实在不想依赖任何外部服务,可以在应用里内置一套常用的产品ID,同时添加一个手动输入ID的入口(仅面向测试场景)。但这种体验差,不适合正式上线的应用。
补充:官方不提供直接拉取所有产品ID的API,核心原因是出于安全和权限控制——开发者应当自主管理产品ID,避免未公开的产品被恶意获取或滥用。
内容的提问来源于stack exchange,提问作者Felipe Ribeiro R. Magalhaes

