我正在開發一個應用程序,用戶可以在其中購買自動續訂訂閱。購買部分沒有問題,但用戶刪除應用程序並嘗試恢復購買時會出現問題。以下是我寫的處理該問題的代碼。應用內購買自動續訂交易恢復問題
我給了一個標題爲「已經是訂戶」的按鈕。當用戶點擊我呼叫以下代碼時。
[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
這就是我如何處理
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
方法恢復。case SKPaymentTransactionStateRestored: duration = [strDuration intValue]; if(transaction.transactionReceipt != nil){ receipt = [[NSString alloc] initWithData:[b64 dataByBase64EncodeFromData:transaction.transactionReceipt] encoding:NSASCIIStringEncoding]; [userDefault setObject:transaction.transactionReceipt forKey:@"LastReceipt"]; [queue finishTransaction:transaction]; [self callReceiptInfoImpl]; } break;
以下是恢復事務完成時的委託方法。
-(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue{ NSLog(@"COMPLETED TRANSACTION RESTORED"); }
問題是,當用戶點擊按鈕「已經訂閱」,則步驟1被調用,但第2步從未被調用。最後,我可以在屏幕上看到消息「已完成的事務已恢復」。
如果有人遇到類似的問題,請指導。
感謝您閱讀.....
http://stackoverflow.com/questions/6149764/do-auto-renewable-subscriptions-send-an-skpaymenttransactionstatepurchased-restor –
有同樣的問題,都在沙箱購買從未恢復? –
嗨,正確的方法是在本地存儲收據(在iPhone或iPAD中)。然後,當你想恢復發送收據到你的服務器(因爲它不能被驗證iPhone或iPAD),該服務器將收據發送到蘋果進行驗證。 Apple會將結果發送回您的服務器,並將其發送到設備。有關詳細信息,請閱讀文檔,因爲它提供了清晰的想法以下可能會有所幫助。 http://stackoverflow.com/a/7244084/919049 – Mohammad