2015-11-11 17 views
6

Moja aplikacja zawiera konsumpcyjne produkty IAP, zwraca więcej niż jeden transakcje gdy zgłoszę otrzymanie walidacji z tym kodem:Zwraca wiele transakcji na iOS In--Zakupy App walidacji paragonu

[[NSBundle mainBundle] appStoreReceiptURL]; 

jest jakiś sposób, aby powrócić tylko ostatnia transakcja?

Czy wiąże się z przywracaniem transakcji?

Sprawdziłem to Multiple receipt count for restoreCompletedTransaction inapp purchasing i to iOS in-app-purchase restore returns many transactions.

Próbowałem przywrócić wszystkie zakupy, ale nie zadziałało.

Używam tych linii dla połączeń otrzymania:

- (void) checkReceipt { 

NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL]; 
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL]; 
if(!receipt) { 

} 
NSError *error; 
NSDictionary *requestContents = @{@"receipt-data": [receipt base64EncodedStringWithOptions:0]}; 
NSLog(@"requestContents:%@", requestContents); 
NSData *requestData = [NSJSONSerialization dataWithJSONObject:requestContents 
                 options:0 
                 error:&error]; 

if (!requestData) { } 

NSURL *storeURL = [NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]; 

NSMutableURLRequest *storeRequest = [NSMutableURLRequest requestWithURL:storeURL]; 
[storeRequest setHTTPMethod:@"POST"]; 
[storeRequest setHTTPBody:requestData]; 

NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
[NSURLConnection sendAsynchronousRequest:storeRequest queue:queue 
         completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 

          if (connectionError) { 


          } else { 


          } 
         }]; 

}

Uwaga: Ta aplikacja obsługuje iOS 8+.

Odpowiedz

1

Nie jest to związane z przywracaniem transakcji, ponieważ jabłko odpowiada tablicą wszystkich transakcji w aplikacji wykonanych przez użytkownika podczas składania żądania zatwierdzenia. Te same informacje są zawarte w pokwitowaniu, jeśli dekodujesz je lokalnie.

Jeśli szukasz ostatniej transakcji, możesz posortować tablicę rosnąco według numeru purchase_date_ms i wziąć ostatnią.

Mój cel c nie jest taki gorący, więc nie mogę ci pomóc w sortowaniu, ale ten dokument może pomóc: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Collections/Articles/Arrays.html

Powiązane problemy