从iOS应用内采购收据中检索订单ID/文档编号

从iOS应用内采购收据中检索订单ID/文档编号,ios,in-app-purchase,app-store,Ios,In App Purchase,App Store,目前,我们的系统的工作方式是,当用户购买应用内订阅时,购买的收据数据将发送到服务器,在验证后,我们将根据需要更改用户的权限 有时,由于各种原因,我们可能会遇到一个问题,用户可能没有被分配他们应该享有的权利,在这种情况下,他们会通过电子邮件向我们发送他们从苹果获得的收据,其中包含他们的订单ID和文档等 在通过应用内购买发送的收据数据中,我似乎找不到与苹果发送的文档中的任何内容匹配的任何内容,这将使我能够找出哪个订单与该订单id匹配 是否有办法从应用内购买有效负载中获取订单ID等,以帮助识别这一点?

目前,我们的系统的工作方式是,当用户购买应用内订阅时,购买的收据数据将发送到服务器,在验证后,我们将根据需要更改用户的权限

有时,由于各种原因,我们可能会遇到一个问题,用户可能没有被分配他们应该享有的权利,在这种情况下,他们会通过电子邮件向我们发送他们从苹果获得的收据,其中包含他们的订单ID和文档等

在通过应用内购买发送的收据数据中,我似乎找不到与苹果发送的文档中的任何内容匹配的任何内容,这将使我能够找出哪个订单与该订单id匹配


是否有办法从应用内购买有效负载中获取订单ID等,以帮助识别这一点?

否,通过苹果邮寄给用户的收据发送的订单ID和应用商店收据中的交易ID是不相关的。(我知道不是很有用。)

如果你的后端确实有收据,我会使用检查内容,看看他们购买了什么。只要您的IAP是非消耗品,它们就会出现在收据中。然后,您可以手动授予他们这些权利。(在国际海事组织,从客户服务的角度来看,我只想让客户从怀疑中受益,并立即予以承认。)


作为实施说明,在用户从您的后端收到预期权利之前,您不应在收据上调用
finishTransaction
。这将事务保留在StoreKit队列中,并提供了一种简单的机制,以便在发送到后端失败时稍后重试。

您不能;用户的收据和您的收据之间没有共同的信息。是非续费订阅还是自动续费订阅?如果是自动续订订阅,则应在应用程序中提供“恢复购买”按钮,该按钮将导致在服务器上重试交易。如果是非续订订阅,则在激活用户帐户上的订阅之前,不应完成IAP事务。