2. Incentive Ad‎ > ‎1) Publisher API‎ > ‎1.2 Android‎ > ‎

나. 포인트 조회 및 인출

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

1) TnkSession.queryPoint()

Tnk서버에 적립되어 있는 사용자 포인트 값을 조회합니다. 
동기 방식과 비동기 방식 2가지 호출 방식을 제공하고 있으며 화면 멈춤 현상이 없도록 구현하기 위해서는 비동기 방식을 사용할 것을 권장합니다.
다만 Main UI Thread 가 아닌 별도 Thread를 생성하여 호출하는 경우 (주로 게임 앱)에는 비동기 방식을 사용할 수 없으므로 별도 Thread를 생성하여 동기 방식으로 호출하셔야 합니다.

[비동기로 호출하기]

Method 
  - void TnkSession.queryPoint(Context context, boolean showProgress, ServiceCallback callback)

Description
   Tnk 서버에 적립되어 있는 사용자 포인트 값을 조회합니다. 비동기 방식으로 호출되며 결과를 받으면 callback이 호출됩니다. Main UI Thread 상에서만 호출이 가능합니다.
   ServiceCallback의 사용법은 아래 적용예시를 참고해주세요.

Parameters
 파라메터 명칭  내용
 context 현재 Activity 또는 Context 객체 
 showProgress  서버에서 결과가 올때까지 화면에 progress dialog를 띄울지 여부를 지정

 callback  서버에서 결과가 오면 callback 객체의 OnReturn(Context context, Object result) 메소드가 호출됩니다. 메소드 호출은 Main UI Thread 상에서 이루어 집니다. 전달된 result 객체는 Integer 객체이며 사용자 포인트가 담겨 있습니다.

적용예시

Sample Code

@Override

public void onCreate(Bundle savedInstanceState) {

    // ...

    final TextView pointView = (TextView)findViewById(R.id.main_point);

    TnkSession.queryPoint(this, true, new ServiceCallback() {

        @Override

        public void onReturn(Context context, Object result) {

            Integer point = (Integer)result;

            pointView.setText(String.valueOf(point));

        }

    });


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

Method 
  - int TnkSession.queryPoint(Context context)

Description
   Tnk 서버에 적립되어 있는 사용자 포인트 값을 조회하여 그 결과를 int 값으로 반환합니다. 

Parameters
 파라메터 명칭  내용
 context 현재 Activity 또는 Context 객체 

Return : int
  - 서버에 적립되어 있는 포인트 값

적용예시

Sample Code

static public void getPoint() {

    new Thread() {

        public void run() {

            int point = TnkSession.queryPoint(mActivity);

            showPoint(point); // 결과를 받아서 필요한 로직을 수행한다.

        }

    }.start();

}


2) TnkSession.purchaseItem()

TnK 서버에서는 별도로 아이템 목록을 관리하는 기능을 제공하지는 않습니다. 
다만 게시앱에서 제공하는 아이템을 사용자가 구매할 때 Tnk 서버에 해당 포인트 만큼을 차감 할 수 있습니다. 이 API 역시 비동기 방식과 동기 방식을 모두 제공합니다.

[비동기로 호출하기]

Method 
  - void TnkSession.purchaseItem(Context context, int pointCost, String itemId, boolean showProgress, ServiceCallback callback)

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

Parameters
 파라메터 명칭  내용
 context 현재 Activity 또는 Context 객체 
 pointCost 차감할 포인트
 itemId 구매할 아이템의 고유 ID (게시앱에서 정하여 부여한 ID)
Tnk 사이트의 보고서 페이지에서 함께 보여줍니다.
 showProgress  서버에서 결과가 올때까지 화면에 progress dialog를 띄울지 여부를 지정

 callback  서버에서 결과가 오면 callback 객체의 OnReturn(Context context, Object result) 메소드가 호출됩니다. 메소드 호출은 Main UI Thread 상에서 이루어 집니다. 전달된 result 객체는 long[] 객체이며 long[0] 값은 차감 후 남은 포인트 값이며, long[1] 값은 고유한 거래 ID 값이 담겨 있습니다. long[1] 값이 음수 인경우에는 포인트 부족 등으로 오류가 발생한 경우입니다.

적용예시

Sample Code

@Override

public void onClick(View v) {

    TnkSession.purchaseItem(MainActivity.this, 30, "item.00001", true,

        new ServiceCallback() {

            @Override

            public void onReturn(Context context, Object result) {

                long[] ret = (long[])result;

                if (ret[1] < 0) {

                     // error

                 } else {

                     Log.d("tnkad", "current point = " + ret[0] + ", transaction id = " + ret[1]);

                     pointView.setText(String.valueOf(ret[0]));

                  }

            }

        });



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

Method 
  - long[] TnkSession.purchaseItem(Context context, int pointCost, String itemId)

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

Parameters
 파라메터 명칭  내용
 context 현재 Activity 또는 Context 객체 
 pointCost 차감할 포인트
 itemId 구매할 아이템의 고유 ID (게시앱에서 정하여 부여한 ID)
Tnk 사이트의 보고서 페이지에서 함께 보여줍니다.

Return : long[]
  - long[0] 은 포인트 차감후 남은 포인트 값입니다.
  - long[1] 은 고유한 거래 번호 값입니다. 이 값이 음수 인 경우에는 오류가 발생한 것입니다. (포인트 부족 등)

3) TnkSession.withdrawPoints()

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

[비동기로 호출하기]

Method 
  - void TnkSession.withdrawPoints(Context context, String desc, boolean showProgress, ServiceCallback callback)

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

Parameters
 파라메터 명칭 내용
 context현재 Activity 또는 Context 객체 
 desc인출과 관련된 설명 등을 넣어줍니다.
Tnk 사이트의 보고서 페이지에서 함께 보여줍니다.
 showProgress 서버에서 결과가 올때까지 화면에 progress dialog를 띄울지 여부를 지정

 callback 서버에서 결과가 오면 callback 객체의 OnReturn(Context context, Object result) 메소드가 호출됩니다. 메소드 호출은 Main UI Thread 상에서 이루어 집니다. 전달된 result 객체는 Integer 객체이며 인출된 포인트 값입니다. 해당 사용자에게 충전된 포인트가 없는 경우에는 0이 반환됩니다.

적용예시

Sample Code

@Override

public void onClick(View v) {

    TnkSession.withdrawPoints(MainActivity.this, "user_delete", true,

        new ServiceCallback() {

            @Override

            public void onReturn(Context context, Object result) {

                int point = (Integer)result;

                 Log.d("tnkad", "withdraw point = " + point);

                 pointView.setText(String.valueOf(point));

            }

        });



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

Method 
  - int TnkSession.withdrawPoints(Context context, String desc)

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

Parameters
 파라메터 명칭 내용
 context현재 Activity 또는 Context 객체 
 desc인출과 관련된 설명 등을 넣어줍니다.
Tnk 사이트의 보고서 페이지에서 함께 보여줍니다.

Return : int
  - 인출된 포인트 값, 사용자에게 인출할 포인트가 없으면 0이 반환됩니다.
Comments