8

我的应用程序使用应用程序内购买,我与 Apple 验证交易收据。这向我表明,许多用户正试图通过提交伪造的交易收据来盗版应用内购买机制,这些收据提供的产品 ID 为com.zeptolab.ctrbonus.superpower1(来自“Cut the Rope”)。当然,我不会让他们使用带有假收据的应用内购买项目。与 iOS 盗版作斗争并试图让这些人付出或受苦的策略是什么?

4

1 回答 1

5

真正防止这种情况的唯一方法是通过您自己的服务器控制一切。即使是臭名昭著的“com.zeptolab.ctrbonus.superpower1”收据也是苹果自己的验证端点会告诉你的实际有效收据。交易完成后,应用程序应将交易数据发送到您控制的服务器,并且:

  1. 从您自己的服务器向 Apple 验证收据。
  2. 如果 Apple 说没问题,请从 Apple 的响应中解析 product_id 字段,并确保它是您应用程序中的产品 ID。
  3. 如果前两项通过,则返回数据以告诉您的应用在哪里下载您的内容(如果是托管内容)。

即使这样也有一个缺陷,尤其是如果您的 IAP 内容只是在设备上但“锁定”了。有一些方法可以从您的服务器重定向验证调用,以使您的应用认为您的服务器说“一切正常!”。如果您的 IAP 内容是远程托管的,这将更加困难,因为如果他们首先不知道内容的位置,他们就不能轻易地用内容的位置来欺骗响应。

对于大多数人来说,所有这一切的问题是控制自己的服务器和远程内容可能会变得昂贵,更不用说需要编写自己的验证逻辑了。你越难让这些黑客成功,你付出的代价就越大,所以你必须权衡你愿意花多少时间、精力和金钱来让他们“受苦” vs 你赚了多少和/或损失了多少。请记住,一次“盗版”IAP 不一定等于一次销售损失,因此很难衡量您可能因此而损失多少。

于 2013-06-06T00:54:33.543 回答