【问题标题】:Deleting a purchase in a In App Purchase Test User account [duplicate]删除应用内购买测试用户帐户中的购买 [重复]
【发布时间】:2012-05-29 13:58:58
【问题描述】:

我有一个测试用户帐户,可以很好地测试应用购买。

我想从该帐户中“删除”一次购买,因此我可以多次测试购买。现在,如果我尝试购买,从逻辑上讲,测试用户已经购买了相关产品。

我可以从测试用户帐户中删除购买,以便我可以多次测试相同的购买。我不想每次我想测试购买时都必须创建一个新的测试用户。

编辑:每次我尝试购买时,我都会看到一个对话框,上面写着“你已经购买了这个。点击确定以免费再次下载”。

【问题讨论】:

  • 我能否再次澄清一下:1)这是应用内购买,还是从应用商店购买? 2) 如果这是应用内购买,应用如何知道您购买了该商品?状态必须保存在某个地方。
  • 这个问题有帮助吗:stackoverflow.com/questions/7604578/… ?
  • 我只知道 3 种存储数据的方式:iCloud、在设备上和应用程序自己的服务器。
  • 应用内购买在 iTunes Connect 中注册,并且来自 Apple 的服务器。购买数据与 Apple ID 相关联,以便跨设备同步。现在我考虑了一下,OP 可能没有使用 MKStoreKit。此数据不是您存储在应用程序中的数据。这是与 APPLE 一起存储的计费数据。

标签: ios cocoa-touch


【解决方案1】:

如果你真的想测试干净,你将不得不创建另一个测试用户。但是,我认为没有必要这样做。重新下载应用内购买是一个几乎相同的代码流。实际的购买和验证逻辑不是您的应用程序的一部分,并且用户多次购买东西不是应该发生的事情(除非您指定它是那种消耗品)。如果它适用于重新下载,则可以安全地假设它适用于初始购买。

您无权访问此数据。如果 Apple 公开了一种重置购买的方法,他们将面临安全风险,因为我认为他们的沙箱服务器代码实际上与他们的生产代码相同(否则沙箱将毫无意义)。因为数据在 Apple 的服务器上,与 iTunes 帐户相关联,所以它可以跨越多个设备。

另一种想法是从 iTunes Connect 中删除应用内购买,然后创建一个新的。

【讨论】:

  • [...] “重新下载应用内购买是一个几乎相同的代码流程。”[...] 只是想插话并提一下,尽管这声明对于给定的事务处理程序是正确的...对于应用程序代码本身不一定正确,因为初始购买与恢复旧购买的处理方式可能大不相同。
  • 收据检查验证码呢?您需要通过代码收据检查来测试没有产品存在的场景,反之亦然。
  • @theReverend 这可能是您需要模拟的东西(即出于测试目的,有一个每次都返回 YES 的方法和一个每次都返回 NO 的方法)。
【解决方案2】:

如果您的应用内购买类型是消耗品,那么您只需重新安装您的应用即可。如果您的应用内购买是不可消费的,那么您将需要创建额外的测试用户。

【讨论】:

  • 我们可以在发布到 Appstore 之前将 IAP 类型从 consumable 更改为 non-consumable 吗?这将是测试的解决方案。
  • 创建 IAP 后,我们无法在 iTunesConnect 中更改 IAP 类型,我们只能创建额外的 consumable IAP 用于测试目的。
猜你喜欢
  • 2012-10-30
  • 1970-01-01
  • 2011-12-06
  • 2021-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多