解析应用内购买还原功能
Parse In App Purchase Restore Functionality
我的应用被 Apple 拒绝,因为它没有应用内购买的恢复功能。
我正在使用 Parse 实现 here,如果用户通过警报控制器进行了先前的购买,它允许恢复购买,当用户选择购买按钮时会显示恢复选项。
所以我有两个问题:
- 通过 ALert 控制器的恢复选项是否足以满足 Apple 指南?
- 如果没有,Parse In App Purchase API 中是否有允许通过单击按钮恢复的功能?因为我在文档中找不到。
提前致谢
这个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}
}
}
隐藏在文档深处的是:
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
}
我的应用被 Apple 拒绝,因为它没有应用内购买的恢复功能。
我正在使用 Parse 实现 here,如果用户通过警报控制器进行了先前的购买,它允许恢复购买,当用户选择购买按钮时会显示恢复选项。
所以我有两个问题:
- 通过 ALert 控制器的恢复选项是否足以满足 Apple 指南?
- 如果没有,Parse In App Purchase API 中是否有允许通过单击按钮恢复的功能?因为我在文档中找不到。
提前致谢
这个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}
}
}
隐藏在文档深处的是:
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
}