#import <StoreKit/SKProductsRequest.h>
#import <StoreKit/SKProduct.h>
#import <StoreKit/SKPaymentQueue.h>
#import <StoreKit/SKPaymentTransaction.h>
if ([SKPaymentQueue canMakePayments]) { // 스토어가 사용 가능하다면
NSLog(@"Start Shop!");
[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; // Observer를 등록한다.
}
else
NSLog(@"Failed Shop!");
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];
default:
break;
}
}
}
- (void) restoreTransaction: (SKPaymentTransaction *)transaction
{
NSLog(@"SKPaymentTransactionStateRestored");
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}
- (void) failedTransaction: (SKPaymentTransaction *)transaction
{
NSLog(@"SKPaymentTransactionStateFailed");
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}
- (void) completeTransaction: (SKPaymentTransaction *)transaction
{
NSLog(@"SKPaymentTransactionStatePurchased");
NSLog(@"Trasaction Identifier : %@", transaction.transactionIdentifier);
NSLog(@"Trasaction Date : %@", transaction.transactionDate);
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}
SKProductsRequest *productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:@"testitem_01"]];
productRequest.delegate = self;
[productRequest start];
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSLog(@"SKProductRequest got response");
if( [response.products count] > 0 ) {
SKProduct *product = [response.products objectAtIndex:0];
NSLog(@"Title : %@", product.localizedTitle);
NSLog(@"Description : %@", product.localizedDescription);
NSLog(@"Price : %@", product.price);
}
if( [response.invalidProductIdentifiers count] > 0 ) {
NSString *invalidString = [response.invalidProductIdentifiers objectAtIndex:0];
NSLog(@"Invalid Identifiers : %@", invalidString);
}
}
SKPayment *payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addPayment:payment];