6

我正在使用 App Store 验证收据。在极少数情况下(~0.5‰),JSON 看起来像这样:

{
    "exception": "com.apple.jingle.commercelogic.inappcache.MZInAppCacheAccessException",
    "status": 21009,
    "environment": "Production"
}

遗憾的是,Apple 并未在其状态代码表中提及此代码。

搜索异常名称时,只有一个网络范围内的引用,这是 Apple 开发者论坛上的一个指示性线程:什么是错误代码 21009?除了一些“我也是”的帖子外,还有一个苹果员工的回答说“在有“具体信息”时回复更多信息。

关于频率:线程的日期为 2016-03-15。我知道在这些日期发生的事情:

• 2015-10-08    • 2016-11-24    • 2017-01-09    • 2017-02-03 8× • 2017-04-04
• 2016-03-16    • 2016-12-06    • 2017-01-13    • 2017-03-07    • 2017-04-05
• 2016-06-06    • 2016-12-13    • 2017-01-17    • 2017-03-13    • 2017-04-06
• 2016-08-30    • 2017-01-04    • 2017-02-15    • 2017-03-17 2× • 2017-04-07
• 2016-09-08    • 2017-01-07    • 2017-02-18    • 2017-03-23 2× • …
• 2016-09-23    • 2017-01-08 2× • 2017-02-19    • 2017-03-27

虽然这个例外似乎很少到可以忽略不计,但我希望能对此有所了解。

有没有人想出处理此异常的适当方法?(如重新验证)

这个异常实际上是什么意思?(什么是“jingle”、“commercelogic”和“MZInAppCache”?)

4

3 回答 3

3

我遇到了同样的问题。我每天大约有50次。这是内部收据的服务器错误。我处理这种情况与状态相同21005(服务不可用)。所以,我只是将带有状态的收据添加21009到失败的验证队列中。稍后再试 - 它有效。

2016年 10 月 11 日更新:在过去的 24 小时内,我获得了 140 次此状态。因此,将此状态作为内部服务错误进行处理是有意义的。

于 2016-10-06T13:01:49.063 回答
0

由于Apple最近添加了21100-21199状态码,也许这种状态永远不会再发生?没有把握。

最近我从 Apple 的服务器上得到了这个:{"environment" => "Production", "exception" => "com.apple.jingle.commercelogic.inappcache.MZInAppCacheAcces‌​sException", "is_retryable" => true, "status" => 21199}

于 2017-08-15T12:39:39.830 回答
0

在 2017-02-09,Apple 通过技术说明 TN2413 在其应用内购买常见问题解答中添加了一个问题:


验证我的收据时,App Store 返回状态码 21009

状态码 21009 表示收据验证过程存在问题。在大多数情况下,这是服务器的临时问题,您应该重新尝试通过 App Store 验证您的收据。

在其他情况下,当与收据关联的用户帐户被删除或收据包含一些无效信息时,将返回 21009。由于这些情况极为罕见,请在遇到它们时在https://bugreport.apple.com提交错误。

来源:Apple:技术说明 TN2413 / 应用内购买常见问题解答


因此我们知道:

  • 它表明(内部)收据验证存在问题。
  • 这很可能是一个暂时的问题。
  • 这可能是由已删除的 Apple 用户帐户或无效的收据数据引起的。
  • 重新验证将解决大多数情况。否则,Apple 鼓励提交错误报告。

这并没有解释所披露的异常及其组成部分,但至少提供了一些意义和继续进行的手段。

于 2017-04-07T08:54:11.217 回答