解析应用内购买恢复功能

4
我的应用因为没有In-App-Purchasing的恢复功能而被苹果拒绝了。
我正在使用Parse实现此处,如果用户以前购买过,则通过Alert控制器显示恢复选项来恢复购买。所以我有两个问题:
1. Alert控制器中的恢复选项是否足以满足苹果的指南要求?
2. 如果不行,Parse In App Purchase API 中是否有一种可以通过单击按钮进行恢复的功能?因为我在文档中找不到。
提前感谢。
2个回答

2

深藏在文档的深处是:

 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
    }

1

这个链接可能会很有帮助

另外一件事是,苹果公司已经有了他们的 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}
    }  
}

谢谢,请问是否有Swift的示例代码可用? - dancingbush
https://www.airpair.com/ios/posts/swift-storekit-in-app-purchases这篇文章介绍了有关 Swift StoreKit 内购的信息。http://www.techotopia.com/index.php/An_iOS_8_Swift_In-App_Purchase_Tutorial这是一篇 iOS 8 中使用 Swift 进行内购教程的文章。 如果这些内容对您有帮助,请点赞并标记为正确答案 :) - Ghanshyam Tomar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接