Ứng dụng của tôi chứa sản phẩm tiêu thụ IAP, trả về nhiều hơn một giao dịch khi tôi gọi nhận xác nhận với mã này:Returns nhiều giao dịch trên iOS In-App-mua xác nhận
[[NSBundle mainBundle] appStoreReceiptURL];
Có cách nào để trở chỉ giao dịch cuối cùng?
Có liên quan đến việc khôi phục giao dịch không?
Tôi đã kiểm tra điều này Multiple receipt count for restoreCompletedTransaction inapp purchasing và điều này iOS in-app-purchase restore returns many transactions.
Tôi đã cố gắng khôi phục tất cả các giao dịch mua nhưng không hoạt động.
Tôi đang sử dụng những dòng này cho nhận gọi:
- (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 {
}
}];
}
Lưu ý: Ứng dụng này hỗ trợ iOS 8+.