From 5facb216a7dd882062b422628aa281be9e78efa9 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Tue, 28 Apr 2015 17:09:36 +0200 Subject: [PATCH] InApp: continue --- Classes/InAppProductsManager.h | 5 ++++- Classes/InAppProductsManager.m | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Classes/InAppProductsManager.h b/Classes/InAppProductsManager.h index 1cf4f9567..10c0ec3a4 100644 --- a/Classes/InAppProductsManager.h +++ b/Classes/InAppProductsManager.h @@ -54,12 +54,15 @@ typedef NSString* IAPPurchaseNotificationStatus; @property (nonatomic, strong) NSMutableArray *productsAvailable; @property (nonatomic, strong) NSMutableArray *productsIDPurchased; -- (void)loadProducts; + - (BOOL)isPurchasedWithID:(NSString*)productId; - (void)purchaseWithID:(NSString*)productId; +// restore user purchases. Must be a user action ONLY. - (void)restore; - (void)retrievePurchases; +// internal API only due to methods conflict - (void)XMLRPCRequest:(XMLRPCRequest *)request didReceiveResponse:(XMLRPCResponse *)response; +// internal API only due to methods conflict - (void)XMLRPCRequest:(XMLRPCRequest *)request didFailWithError:(NSError *)error; @end diff --git a/Classes/InAppProductsManager.m b/Classes/InAppProductsManager.m index 052c8acd4..47c523cb7 100644 --- a/Classes/InAppProductsManager.m +++ b/Classes/InAppProductsManager.m @@ -130,6 +130,8 @@ NSString *const kLinphoneIAPurchaseNotification = @"LinphoneIAProductsNotificati -(void)restore { LOGI(@"Restoring user purchases..."); + //force new query of the server + latestReceiptMD5 = nil; [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; } @@ -177,6 +179,7 @@ NSString *const kLinphoneIAPurchaseNotification = @"LinphoneIAProductsNotificati XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithURL: URL]; [request setMethod: @"get_expiration_date" withParameters:[NSArray arrayWithObjects: + @"ios account email", receiptBase64, @"", @"apple", @@ -268,7 +271,7 @@ NSString *const kLinphoneIAPurchaseNotification = @"LinphoneIAProductsNotificati } else if([response object] != nil) { //Don't handle if not object: HTTP/Communication Error if([[request method] isEqualToString:@"get_expiration_date"]) { - if(false && [response object] == [NSNumber numberWithInt:1]) { + if([response object] > [NSNumber numberWithInt:1]) { LOGE(@"Todo: parse the response"); // [_productsIDPurchased addObject:@"test.auto_renew_7days"]; [self postNotificationforStatus:IAPReceiptSucceeded]; @@ -293,7 +296,6 @@ NSString *const kLinphoneIAPurchaseNotification = @"LinphoneIAProductsNotificati otherButtonTitles:nil,nil]; [errorView show]; [errorView release]; - [waitView setHidden:true]; latestReceiptMD5 = nil; [self postNotificationforStatus:IAPReceiptFailed]; }