【问题标题】:Parse In App Purchase Restore Functionality解析应用内购买恢复功能
【发布时间】:2015-06-19 08:19:56
【问题描述】:

我的应用因没有用于应用内购买的恢复功能而被 Apple 拒绝。

我正在使用 Parse 实现 here,如果用户通过警报控制器进行了先前的购买,当用户选择购买按钮时会显示恢复选项,它允许恢复购买。

所以我有两个问题:

  1. 通过 ALert 控制器的恢复选项是否足以满足 Apple 指南?
  2. 如果没有,Parse In App Purchase API 中是否有允许通过单击按钮进行恢复的功能?因为我在文档中找不到。

提前致谢

【问题讨论】:

    标签: ios parse-platform in-app-purchase


    【解决方案1】:

    隐藏在文档深处的是:

     PFPurchase.restore();
    

    如果进行了购买,它会在观察者中执行块 -

    PFPurchase.addObserverForProduct("purchases.cases", block: { (transaction : SKPaymentTransaction!) -> Void in
                //set boolean to user defaults when in app p[urcahse is made, access agian in Tablevoew to relase cases
    
                let userDefaults = NSUserDefaults.standardUserDefaults();
    
                userDefaults.setBool(true, forKey: "inAppPurchaseMade");
    
                userDefaults.synchronize();
    
            })
    
    
            return true
        }
    

    【讨论】:

      【解决方案2】:

      这个link 可能会有所帮助

      另一件事是苹果有他们的恢复UIAlertController你不需要自己添加你只需要编写恢复处理代码和按钮。

      //inside of an IBaction
      [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
      [[SKPaymentQueue defaultQueue]restoreCompletedTransactions];
      
      
      // Then this is called
      - (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
          NSLog(@"%@",queue );
          NSLog(@"Restored Transactions are once again in Queue for purchasing %@",[queue transactions]);  
      
          NSMutableArray *purchasedItemIDs = [[NSMutableArray alloc] init];
          NSLog(@"received restored transactions: %i", queue.transactions.count);
      
          for (SKPaymentTransaction *transaction in queue.transactions) {
              NSString *productID = transaction.payment.productIdentifier;
              [purchasedItemIDs addObject:productID];
              NSLog (@"product id is %@" , productID);
              // here put an if/then statement to write files based on previously purchased items
              // example if ([productID isEqualToString: @"youruniqueproductidentifier]){write files} else { nslog sorry}
          }  
      }
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多