2. Incentive Ad‎ > ‎1) Publisher API‎ > ‎1.3 iOS‎ > ‎

나. 포인트 조회 및 인출

사용자가 광고참여를 통하여 획득한 포인트는 Tnk서버에서 관리되거나 앱의 자체서버에서 관리될 수 있습니다.
포인트가 Tnk 서버에서 관리되는 경우에는 다음의 포인트 조회 및 인출 API를 사용하시어 필요한 아이템 구매 기능을 구현하실 수 있습니다.

1) TnkSession - queryPoint

Tnk서버에 적립되어 있는 사용자 포인트 값을 조회합니다. TnkSession의 sharedInstance로 객체를 얻어와 호출하셔야합니다.
동기 방식과 비동기 방식 2가지 호출 방식을 제공하고 있으며 화면 멈춤 현상이 없도록 구현하기 위해서는 비동기 방식을 사용할 것을 권장합니다.
다만 별도 Thread를 생성하여 동기 방식으로 호출하셔도 무관합니다.

[비동기로 호출하기]

Method 
  - (void) queryPoint:(id)target action:(SEL)action;

Description
   Tnk 서버에 적립되어 있는 사용자 포인트 값을 조회합니다. 비동기 방식으로 호출되며 결과를 받으면 target 객체의 action이 호출됩니다. 

Parameters
 파라메터 명칭  내용
 target  결과를 받으면 이 객체의 action 메소드가 호출된다.
 action  결과를 받으면 호출될 메소드를 지정한다. 메소드 호출 시 현재 포인트 값이 파라메터로 전달되므로 메소드는 (NSNumber *) 파라메터를 하나 받을 수 있도록 정의한다.

적용예시

Sample Code

- (void) pointReceived:(NSNumber *)point {

    [self.userPoints setText:[point stringValue]]; 

}


- (void)viewWillAppear:(BOOL)animated

{

    [super viewWillAppear:animated];

    

    // 현재 포인트 조회 (비동기 방식 호출)

    [[TnkSession sharedInstance] queryPoint:self action:@selector(pointReceived:)];



[동기방식으로 호출하기]

Method 
  - (NSInteger) queryPoint;

Description
   Tnk 서버에 적립되어 있는 사용자 포인트 값을 조회합니다. 동기방식으로 호출되며 조회된 포인트 값을 반환합니다. 

Return
  Tnk 서버에 적립되어 있는 포인트 값 (NSInteger)

적용예시

Sample Code

 
NSInteger userPoint = [[TnkSession sharedInstancequeryPoint];


2) TnkSession - purchaseItem

TnK 서버에서는 별도로 아이템 목록을 관리하는 기능을 제공하지는 않습니다. 
다만 게시앱에서 제공하는 아이템을 사용자가 구매할 때 Tnk 서버에 해당 포인트 만큼을 차감 할 수 있습니다. TnkSession의 sharedInstance로 객체를 얻어와 호출하셔야하며 비동기 방식으로 동작합니다.

Method 
  - (void) purchaseItem:(NSString *)itemId cost:(NSInteger)poinCost target:(id)target action:(SEL)action;

Description
   Tnk 서버에 적립되어 있는 사용자 포인트를 차감합니다. 차감내역은 Tnk사이트의 보고서 페이지에서 조회하실 수 있습니다.

Parameters
 파라메터 명칭  내용
 itemId 구매할 아이템의 고유 ID (게시앱에서 정하여 부여한 ID)
Tnk 사이트의 보고서 페이지에서 함께 보여줍니다.
 pointCost 차감할 포인트
 target 결과를 받으면 이 객체의 action 메소드가 호출된다.
 action 결과를 받으면 호출될 메소드를 지정한다. NSNumber 객체 2개를 파라메터로 받으며 첫번째 파라메터에는 차감 후 남은 포인트 값이 전달되고, 두번째 파라메터에는 고유한 거래 Id 값이 전달된다. 포인트 부족 또는 네트워크/시스템 오류로 인해 구매가 수행되지 못한 경우에는 두번째 파라메터 값으로 음수가 전달된다.


적용예시

Sample Code

- (void) purchaseResultReceived:(NSNumber *)pointRemain transactionId:(NSNumber *)trId {

    [self.userPoints setText:[pointRemain stringValue]];

    

    if ([trId integerValue] < 0) {

        // error

        UIAlertView *viewAlert = [[UIAlertView alloc] initWithTitle:@"purchaseItem Error" 

                                                            message:@"purchase Error!!!"

                                                           delegate:nil 

                                                  cancelButtonTitle:@"Confirm" 

                                                  otherButtonTitles:nil];

        

        [viewAlert show];

        

        [viewAlert autorelease]; 

    }

    else {

        // success

        UIAlertView *viewAlert = [[UIAlertView alloc] initWithTitle:@"purchaseItem Success" 

                                                            message:[trId stringValue]

                                                           delegate:nil 

                                                  cancelButtonTitle:@"Confirm" 

                                                  otherButtonTitles:nil];

        

        [viewAlert show];

        

        [viewAlert autorelease]; 

    }

}


- (IBAction)purchaseItemPressed:(id)sender {

    // 충전된 포인트로 아이템 구매등 포인트 사용하기

    NSInteger pointCost = [self.itemCost.text integerValue];

    [[TnkSession sharedInstance] purchaseItem:self.itemId.text 

                                                                cost:pointCost 

                                                             target:self 

                                                           action:@selector(purchaseResultReceived:transactionId:)];

}




3) TnkSession - withdrawPoints

Tnk 서버에서 관리되는 사용자 포인트 전체를 한번에 인출하는 기능입니다.

Method 
  - (void) withdrawPoints:(NSString *)desc target:(id)target action:(SEL)action;

Description
   Tnk 서버에 적립되어 있는 사용자의 모든 포인트를 차감하고 차감된 포인트 값을 반환합니다. 차감내역은 Tnk사이트의 보고서 페이지에서 조회하실 수 있습니다.

Parameters
 파라메터 명칭 내용
 desc인출과 관련된 설명 등을 넣어줍니다.
Tnk 사이트의 보고서 페이지에서 함께 보여줍니다.
 target결과를 받으면 이 객체의 action 메소드가 호출된다.
 action결과를 받으면 호출될 메소드를 지정한다. NSNumber 객체 1개를 파라메터로 받으며 차감된 포인트값이 전달된다.


적용예시

withdrarwPoints 예시

- (void) withdrawPointsReceived:(NSNumber *)points {


    NSLog(@"WithdrawPointsReceived %d", [points intValue]);

}


- (IBAction) didWithdrawButtonPressed:(id)sender {    

    [[TnkSession sharedInstance] withdrawPoints:@"test" target:self action:@selector(withdrawPointsReceived:)];

}


Comments