收据验证
验证购买收据的真实性以防止欺诈并确保安全交易。
阅读时间3 分钟最后更新于 20 天前
购买收据是来自应用商店的安全数字记录,可作为成功交易的证明。用户完成购买后,应用程序将收到此收据。 Unity IAP 提供统一的收据结构,其中包含特定于商店的有效负载以及详细的交易数据。收到
OnPurchasePendingPendingOrder收据结构
Unity IAP 将收据格式化为具有不同商店之间一致结构的 JSON 对象。 以下是关键字段:密钥 | 值 |
|---|---|
| 发生购买的商店的名称,例如 |
| 此交易的唯一标识符,由商店提供。 |
| 特定于商店的原始收据数据。这是最重要的字段,因为它包含交易验证所需的信息。 |
交易验证
交易验证可确保购买合法。这样可以确保用户只能访问他们实际购买的内容。 验证可以保护您的应用程序免受以下常见类型的欺诈:- 伪造收据:恶意用户可以尝试创建假收据来解锁内容而无需付费。
- 重放攻击用户可以尝试为多个帐户重复使用单个有效收据,或重复申请同一非消耗品。
验证方法
您可以在用户的设备上验证收据(本地验证),也可以在您控制的安全服务器上验证收据(远程验证)。-
本地验证
- 直接在设备上执行验证。
- 适用于应用程序中包含的内容(例如解锁角色或启用功能)。
-
-
-
远程(服务器端)验证
- 建议用于所有交易,对于服务器交付的内容(例如授予虚拟货币或可下载物品)至关重要。
- 您的应用会将收据发送到后端服务器。
Payload - 服务器会与应用商店的验证服务(例如 Apple 或 Google)进行安全通信,以便在发布内容之前确认收据的真实性。