【问题标题】:iOS receipt does not include repurchased transactioniOS收据不包括回购交易
【发布时间】:2015-04-24 23:19:01
【问题描述】:

如果我在我的应用程序中擦除数据,然后重新购买我知道该帐户已经拥有的一些托管 IAP,iOS 会为我提供本机“您确定要重新购买此项目,您不会被收费”对话框。不出所料。

当购买返回到我的应用程序时,我会收到带有[[NSBundle mainBundle] appStoreReceiptURL] 的收据。然后,我尝试通过我的服务器使用收据验证 SKPaymentTransaction 的 transactionIdentifier。

但是,该 IAP 的收据的交易 ID 与 SKPaymentTransaction 不同,因为我已经购买了很久。

我应该如何验证这是一次有效的回购?我能以某种方式获得这次回购的签名收据吗?

【问题讨论】:

    标签: ios storekit


    【解决方案1】:

    所有购买都将在一张收据中。您必须检查那里的所有 iAP 并查找所需的 iAP。

    如果要原始iAP交易的id,有Original Transaction Identifier

    对于恢复先前交易的交易,原始交易的交易标识符。否则,与事务标识符相同。

    关于收据字段的更多信息在这里:https://developer.apple.com/library/prerelease/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

    无论如何,这是原始购买还是回购真的很重要吗?我对此的检查通常是相同的。

    【讨论】:

      【解决方案2】:

      据我了解,您应该检查originalTransaction 以检查这对于SKPaymentTransactionStateRestored 的交易是否有效。

      [[NSBundle mainBundle] appStoreReceiptURL] 用于接收主应用程序,而不是 IAP。

      【讨论】:

      • 这是很好的信息。你推断有交易收据,但我怎样才能得到呢? SKPaymentTransaction 上的 transactionReceipt 已弃用。
      • iOS 7+ 风格的本地收据在内部统一了应用 IAP 收据。本地收据验证信息——developer.apple.com/library/prerelease/ios/releasenotes/General/…——(以及各种第三方实现)包含迭代购买的详细信息。
      【解决方案3】:

      您可以使用RMStore库,查看所有购买:

      RMStoreAppReceiptVerificator *verificator = [[RMStoreAppReceiptVerificator alloc] init];
      
      if ([verificator verifyAppReceipt])
      {
          NSArray *inAppPurchases = [RMAppReceipt bundleReceipt].inAppPurchases;
      
          for (RMAppReceiptIAP *inAppPurchase in inAppPurchases)
          {
              NSLog(@"productIdentifier %@ originalPurchaseDate %@", inAppPurchase.productIdentifier, inAppPurchase.originalPurchaseDate);
          }
      }
      

      如果您的收据为零,您可以刷新收据:

       [[RMStore defaultStore] refreshReceiptOnSuccess:^{
              //get purchases
          } failure:^(NSError *error) {
      
          }];
      

      【讨论】:

        猜你喜欢
        • 2017-12-19
        • 1970-01-01
        • 2013-07-20
        • 2013-11-26
        • 1970-01-01
        • 2016-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多