Google Play Purchase History.json 详解
Purchase History.json 是 Google Play Takeout 导出的核心文件:它用机器可读的方式列出你获取过什么以及时间。本页说明它的用途和总体结构,同时也会强调一个关于“保证”的重要限制。
先说限制:没有公开结构规范
Google 没有为 Play Takeout 文件公开正式、带版本的结构规范。下面所有内容都来自实际导出结果中的观察,包括我们自己的导出以及社区记录的样本。不同账号、内容类型和时间段的字段可能不同,Google 也可能随时修改。这里所说的一切都是“通常存在”,绝不是“契约保证”。
这个文件是做什么的
在导出文件的 Google Play Store 文件夹中,Purchase History.json 记录的是获取行为:你获得过的应用和游戏、进行过的应用内购买、开始过的订阅。可以把它理解为买了什么、什么时候买。而花了多少钱通常在同目录的 Order History.json 中,它更像交易账本:金额、货币、付款和退款相关字段。
总体结构
文件是一个 JSON 记录数组。每条记录描述一次获取行为,通常包含:
- 项目说明:项目标题,以及通常用于区分 Android 应用和其他内容的类型。
- 购买时间戳:获取发生的时间。
- 购买类型:例如区分应用购买、应用内购买或订阅。
价格和付款详情通常不在这个文件里;那是 Order History 的职责。把两个文件关联起来,才能得到某笔购买的“名称 + 日期 + 价格”。
一个虚构示例
下面的片段仅为说明而虚构。它不是真实用户数据,而且只是简化示意,并不保证字段名称。真实导出中的嵌套方式或命名可能不同:
[
{
"purchase": {
"document": {
"type": "Android App",
"title": "Example Launcher (fictional)"
},
"purchaseTime": "2019-04-12T14:23:00Z",
"purchaseType": "App"
}
},
{
"purchase": {
"document": {
"type": "In-app item",
"title": "Example Game - Coin Pack (fictional)"
},
"purchaseTime": "2021-11-02T09:05:00Z",
"purchaseType": "In-app purchase"
}
}
]
应用、应用内购买、订阅
在实际观察到的导出里,购买类型信息可以帮助你区分用户最关心的三大类别:
| 类别 | 一条记录代表什么 | 需要注意 |
|---|---|---|
| 应用与游戏 | 一次性获取某个应用或游戏(付费或免费) | 免费应用也可能出现:获取 ≠ 付款 |
| 应用内购买 | 在应用内部购买的项目 | 记录会写明购买项目;所属应用有时需要根据标题推断 |
| 订阅 | 订阅相关事件 | 续订与首次订阅可能以不同方式记录;金额请查看 Order History |
查看工具应忽略的字段
Order History.json 可能包含与付款方式有关的字段。一个规范的查看器或解析器应该在解析时直接丢弃这些字段:既不显示,也不存储。有价值的记录是“买了什么、什么时候、花了多少”。银行卡详情对这些问题没有帮助,只会增加风险。
分享时也应遵循同样原则:购买记录属于个人数据。尽量让导出文件留在本地,并对任何要求你上传它的工具保持警惕。
JSON 交给我们处理。
App Purchase Vault 正处于 Android 测试版:选择 ZIP,就能得到可搜索归档,而且只在设备上处理。