diff --git a/Classes/ProductLoader.m b/Classes/ProductLoader.m index 393c92c..2a3160f 100644 --- a/Classes/ProductLoader.m +++ b/Classes/ProductLoader.m @@ -42,7 +42,14 @@ - (void)request:(SKRequest *)request didFailWithError:(NSError *)error - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { - _product = response.products[0]; + if (response.products.count == 0) + { + _error = [NSError errorWithDomain:@"SimplePurchaseErrorDomain" code:1 userInfo:@{NSLocalizedDescriptionKey: @"Product id is unknown."}]; + } + else + { + _product = response.products[0]; + } } - (void)requestDidFinish:(SKRequest *)request diff --git a/Classes/Purchaser.m b/Classes/Purchaser.m index 642a9f7..692aa5e 100644 --- a/Classes/Purchaser.m +++ b/Classes/Purchaser.m @@ -64,8 +64,6 @@ - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)tran if ([self transactionIsSuccess:t]) [self notifyObserversForProduct:t.payment.productIdentifier transaction:t]; - - [[SKPaymentQueue defaultQueue] finishTransaction:t]; } } diff --git a/Classes/SimplePurchase.h b/Classes/SimplePurchase.h index 5a33e4d..890a4fb 100644 --- a/Classes/SimplePurchase.h +++ b/Classes/SimplePurchase.h @@ -6,5 +6,6 @@ + (void)addObserverForProduct:(NSString *)productId block:(void(^)(SKPaymentTransaction *transaction))block; + (void)buyProduct:(NSString *)productId block:(void(^)(NSError *error))block; ++ (void)finishTransaction:(SKPaymentTransaction*)t; @end diff --git a/Classes/SimplePurchase.m b/Classes/SimplePurchase.m index f85dec7..d1736d6 100644 --- a/Classes/SimplePurchase.m +++ b/Classes/SimplePurchase.m @@ -22,4 +22,9 @@ + (void)buyProduct:(NSString *)productId block:(void(^)(NSError *error))block [_purchaser buyProduct:productId block:block]; } ++ (void)finishTransaction:(SKPaymentTransaction*)t +{ + [[SKPaymentQueue defaultQueue] finishTransaction:t]; +} + @end