Views 11283 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

쿠드 구현 부분..

이 샘플이 설명이 더 자세한 듯..

storekit.framework를 추가 후 소스코드(.h/.m)에 대한 설명임.


# 헤더 파일 내용

#import <UIKit/UIKit.h>
#import <StoreKit/StoreKit.h> //스토어킷 프레임워크 추가해주시구요.

/*
아래 delegate를 지정해야 함.
SKProductsRequestDelegate : 상품정보 획득에 사용
SKPaymentTransactionObserver : 상품 구매에 관련(구입성공,실패,재구입 등 구매 트랜잭션)
*/

@interface iAPTest : UIViewController
    <SKProductsRequestDelegate, SKPaymentTransactionObserver>
{
}
@end


# 코드 내용

#import "iAPTest.h"
#import <StoreKit/StoreKit.h>

// 각자의 판매아이템들에 대한 고유한 값이며
// Manage In App Purchase에서 등록한 값으로 설정하면 됨.
#define kProductId1 @"com.iAPtest.item1"
#define kProductId2 @"com.iAPtest.item2"
#define kProductId3 @"com.iAPtest.item3"

@implementation iAPTest

- (void)viewDidLoad {
    //아래의 코드를 추가하여 구매 관련 이벤트를 자신이 처리하겠다고 지정.
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
}


//선택된 아이템에 대한 정보를 획득하여 표시해줄 때 사용.
-(void)productsRequest:(SKProductsRequest *)request
    didReceiveResponse:(SKProductsResponse *)response{
    
    for(SKProduct *product in response.products){
        /*
        localizedDescription    //아이템 설명
        localizedTitle    //아이템 이름
        price    //아이템 가격
        priceLocale    //지역별 가격표시 ex) $,원 표시등..
        productIdentifier    //제품식별코드
        아래와 같이 product.xxxxx 로 접근해서 화면에 뿌려주면 될 듯.
        product.localizedTitle
        */
    }
    [request release];
}

//아래 매소드는 해당 아이템의 버튼을 클릭했을 시 연결되는 부분.
//각각의 버튼에 구매될 아이템의 정보를 서버로 부터 얻어와서 해당 제품ID 순으로 정렬하고
//버튼 이벤트를 아래 메소드에 연결해서 0번째는 0번째 아이템, 1번째는 1번째 아이템 순으로 연결
//여기에 대한 내용은 각자의 입맛에 맛게^_^;
-(void)buyitem:(id)sender{
    SKPayment *payment;
    SKProductsRequest *request;
    UIButton *button = (UIButton *)sender;
    NSInteger tags = button.tag;
    if(tags==0){
        // 선택된 아이템의 구매정보를 입력합니다.
        payment = [SKPayment paymentWithProductIdentifier:kProductId1];
        /*
        // 선택된 아이템의 정보를 요청합니다.
        request = [[SKProductsRequest alloc]
            initWithProductIdentifiers:[NSSet setWithObject:kProductId1]];
        */
    }else if(tags==1){
        payment = [SKPayment paymentWithProductIdentifier:kProductId2];
    }else{
        payment = [SKPayment paymentWithProductIdentifier:kProductId3];
    }
    request.delegate=self;
    //아래의 코드에서 선택된 제품의 정보를 요청하고, 구매요청을 합니다.
    //[request start];
    [[SKPaymentQueue defaultQueue] addPayment:payment];
}

-(void)purchasedTransaction:(SKPaymentTransaction *)transaction{
    /*
     .
     . 원하는 기능 추가.
     .
     */
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}

-(void)restoreTransaction:(SKPaymentTransaction *)transaction{
    /*
     .
     . 원하는 기능 추가.
     .
     */
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}


-(void)failedTransaction:(SKPaymentTransaction *)transaction{
    /*
     .
     . 원하는 기능 추가.
     .
     */
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}

- (void)paymentQueue:(SKPaymentQueue *)queue
    updatedTransactions:(NSArray *)transactions{
    
    for(SKPaymentTransaction *transaction in transactions){
        switch(transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased: //구매완료.
                [self purchasedTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed: //구매실패.
                [self failedTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored: //재구매,
                [self restoreTransaction:transaction];
                break;
            default:
                break;
        }
    }
}

@end


[출처] http://cafe.naver.com/mcbugi/75067


?

List of Articles
No. Category Subject Author Date Views
613 Develop [jsp][php] 간단한 강좌 자료.. file hooni 2003.04.23 8109
612 Develop [c] 컴파일러 DFA구현^^ 입력 받아 실행 4 file hooni 2003.04.23 8112
611 Develop [linux] 날짜나 파일의 내용으로 검색하는 방법(find 명령 사용) hooni 2013.04.23 8121
610 Develop [swift] NotificationCenter 간단 예제 file hooni 2021.01.27 8121
609 Develop [c] 숫자(int, Number)를 hex코드로 변환하는 소스 file hooni 2013.04.23 8122
608 Develop [c] 오류체크(CRC 체크 ) 소스 2 hooni 2013.04.23 8123
607 Develop Mac OS 에 Jenkins 설치하기 (Homebrew) 2 file hooni 2017.03.15 8125
606 Develop [c#] 본현이형 논문 자료 (HIDS)ㅋㅋ file hooni 2013.04.23 8140
605 Develop [js] 주민번호 생성기.. file hooni 2003.04.23 8143
604 Develop [c] GD라이브러리 설치 테스트 소스 file hooni 2013.04.23 8144
603 Develop [jsp] 페이지에 한글이 정상적으로 보이지 않을 때.. hooni 2013.04.23 8161
602 Develop [c] 간단한 소켓 프로그래밍 샘플 file hooni 2013.04.23 8164
601 Develop [c] 프로그래밍 ppt, 스킬업 (비트 수업자료) file hooni 2003.04.23 8177
600 Develop [c] 가위 바위 보 서버, 클라이언트 소스코드 file hooni 2003.04.23 8178
599 Develop [vb] 64bit RSA 프로그램 소스 ㅋㅋ file hooni 2013.04.23 8193
598 Develop [c] 스토리지 클래스(변수) hooni 2003.04.23 8197
Board Pagination Prev 1 ... 34 35 36 37 38 ... 74 Next
/ 74