我走到這一步:重新安裝後,用戶需要點擊「購買的功能」,然後他被以$ 0.99的問題嚇到了,然後有登錄,然後被告知該功能已經買了,他得到它是免費的。恢復已經在iPhone上購買了應用內購買嗎?
我知道蘋果是一種宗教和用戶都很強的信徒,但是是不是有更好的辦法? :-)我想要的是檢查功能,而不真正購買它。讓用戶輸入他的帳戶信息似乎是必要的,也許購買0.00美元的功能?或者有沒有一種方法可以做到這一點?
我使用MKStoreKit整個應用內購買,但任何解決方案將是巨大的。
UPDATE
感謝名單,以darvids0n,你的方法解決我的問題!這裏的一些工作的代碼爲別人想的一樣:它要求
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
假設
- (void)removePreviousPurchases { //just for sandbox testing
[[MKStoreManager sharedManager] removeAllKeychainData];
}
- (void)restorePreviousPurchases { //needs account info to be entered
if([SKPaymentQueue canMakePayments]) {
[[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) {
NSLog(@"Restored.");
/* update views, etc. */
}
onError:^(NSError *error) {
NSLog(@"Restore failed: %@", [error localizedDescription]);
/* update views, etc. */
}];
}
else
{
NSLog(@"Parental control enabled");
/* show parental control warning */
}
}
謝謝,終於找到了用於此的MKStore-Kit的方法! (請參閱編輯我的問題) –
如果我有10個非消耗品購買ID,並且其中4個是由用戶購買的。在還原期間,我如何才能找出哪些是先前購買的,哪些不是? – Satyam
@Satyamsvv你不會得到你的用戶沒有購買的購買回調。你將只能得到4個更新交易在'SKPaymentTransactionObserver'方法['-paymentQueue:updatedTransactions:'](http://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKPaymentTransactionObserver_Protocol/Reference/Reference.html #// apple_ref/doc/uid/TP40008262-CH1-SW3),並且這些的'transactionState'將是'SKPaymentTransactionStateRestored'。 – darvids0n