私のアプリは、私はこのコードで検証領収書を呼び出すときに、複数のトランザクションを返し、消耗IAPの製品が含まれています返し多くのトランザクション
[[NSBundle mainBundle] appStoreReceiptURL];
はを返す方法はあります最後の取引?
トランザクションの復元に関することですか?
これは、Multiple receipt count for restoreCompletedTransaction inapp purchasingとこのiOS in-app-purchase restore returns many transactionsを確認しました。
すべての購入を復元しようとしましたが、動作しませんでした。
私は領収書を呼び出すため、これらの行を使用しています:
- (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 {
}
}];
}
注:このアプリは、iOSの8+をサポートします。