INAPP결제 API 가이드

Similar documents
어댑터뷰

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

( )부록

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

03장

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

PowerPoint 프레젠테이션

Contents 1 소개 설치 및 사용방법 21 다운로드 22 라이브러리 등록 23 Android Menifest 정의 간단한 31 플레이어 생성 32 이벤트 리스너 정의 33 Surface 할당 3

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25

13ÀåÃß°¡ºÐ

JAVA PROGRAMMING 실습 08.다형성

오핀 (OFIN) SDK Guide Fintech Mobile SDK Guide - Android V 1.0 OPPFLIB 1

Android Master Key Vulnerability

JUNIT 실습및발표

비긴쿡-자바 00앞부속

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

PowerPoint 프레젠테이션

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Design Issues

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

SMART ZONE CAST ANDROID SDK 적용가이드 NIT

rmi_박준용_final.PDF

SKT SmartZoneCast Agent 개발자 적용가이드_180116

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

ThisJava ..


Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

PowerPoint Presentation

PUBLISHER SDK GUIDE 이문서는 DAUM 싞디케이션제휴당사자에한해제공되는자료로가이드라인을 포함한모든자료의지적재산권은주식회사다음커뮤니케이션이보유합니다. COPYRIGHT DAUM COMMUMNICATIONS. ALL RIGHTS RES

adlibr-android_4.x

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint Presentation

PowerPoint Presentation

1 개요 이가이드는 Cocos2d-x 엔진을사용하는안드로이드어플리케이션프로젝트에서아이지에이웍스의서비스를 이용하기위한플러그인가이드입니다. 기능 IGAWorks Cocos2d-x 플러그인이지원하는 IGAW 서비스는아래와같습니다. - 애드브릭스 - 애드팝콘 - 디스플레이애드

PUBLISHER SDK GUIDE 이문서는 DAUM 싞디케이션제휴당사자에한해제공되는자료로가이드라인을 포함한모든자료의지적재산권은주식회사다음커뮤니케이션이보유합니다. COPYRIGHT DAUM COMMUMNICATIONS. ALL RIGHTS RES

슬라이드 1

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

PowerPoint Presentation

05-class.key

제8장 자바 GUI 프로그래밍 II

50_1953.pdf

SKT UCC DRM

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - Java7.pptx

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

PowerPoint Presentation

PowerPoint 프레젠테이션

제11장 프로세스와 쓰레드

PowerPoint Presentation

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

5장.key

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

JAVA PROGRAMMING 실습 02. 표준 입출력

09-interface.key

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

리니어레이아웃 - 2 -

본문-4도시작***

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

ch09


자식농사웹완

chungo_story_2013.pdf

*중1부

2

Çѱ¹ÀÇ ¼º°øº¥Ã³µµÅ¥

...._


전반부-pdf

표1.4출력

003-p.ps

<4D F736F F F696E74202D20312E20B0E6C1A6C0FCB8C15F3136B3E2C7CFB9DDB1E25F325FC6ED28C0BA292E >

_

12월월간보고서내지편집3

중앙도서관소식지겨울내지33

에너지포커스 2007년 가을호


01_당선자공약_서울

인권문예대회_작품집4-2




목차

A°ø¸ðÀü ³»Áö1-¼öÁ¤

±¹³»°æÁ¦ º¹»ç1

¿¡³ÊÁö ÀÚ¿ø-Âü°í ³»Áö.PDF

전반부-pdf

뉴스레터6호

Microsoft PowerPoint 하반기 크레딧 전망_V3.pptx

50차 본문 최종

양성내지b72뼈訪?303逞

³»Áöc03âš

fsb9¿ù³»ÁöÃÖÁ¾Ãâ

Transcription:

앱내결제 API 가이드

History version Date Reason Contents Writer 0.9 2014-10-17 최초문서 INAPP 결제 API 가이드 draft

개요 INAPP 결제소개 앱스토어에등록된어플리케이션내에서일회성이나영구이용아이템또는기갂제한아이템을판매하여사용자가구매할수있도록하는기능을제공함을목적으로한다. 개발자는 에서제공하는개발자사이트와개발라이브러리를이용하여별도의시스템구축없이앱내유료아이템을판매할수있다. 1 Application 인앱 API Wi-Fi 결제서버 2 API 호출 1 인앱상품구매를위한요청 ( 상품리스트, 구매리스트, 구매, 인증, 사용등 ) 2 인앱상품구매를위한응답 ( 상품리스트, 구매리스트, 구매, 인증, 사용등 ) INAPP 결제제약사항 제공되는 JINAppLib.jar 를프로젝트에추가해야한다. 제공되는 API 는 Crema1 에서만동작하며최싞업데이트가적용되어있어야한다. Wi-Fi 를통한인터넷사용이가능하여야한다.

개요 INAPP 결제사용 (1) AndroidManifest.xml 에아래의퍼미션이정의되어있어야한다. < <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.change_wifi_state" /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.read_phone_state" /> <uses-permission android:name="android.permission.read_external_storage" /> <uses-permission android:name="android.permission.write_external_storage" /> <uses-permission android:name="kr.co.epub.vproj.provider.permission.read" /> <uses-permission android:name="kr.co.epub.vproj.provider.permission.write" /> 개발자 Application 에서결제를수행하는 Activity 는 JINActivity 를 extends 해야한다. import com.shou.billing.jinactivity; import com.shou.billing.jincommon.oncallbacklistener; import com.shou.billing.jinsetting;. public class MainActivity extends JINActivity {.

개요 INAPP 결제사용 (2) 개발자 Application 에인앱결제응답을받기위한 com.shou.billing.jincommon.oncallbacklistener 를구현하여야한다. public abstract static interface OnCallbackListener { public abstract void onitemauthquery(iteminfo iteminfo); public abstract void onitemusequery(itemuse itemuse); public abstract void onwholequery(iteminfo[] iteminfos); public abstract void onwholeauthquery(iteminfo[] iteminfos); public abstract void onitempurchasecomplete(); public abstract void ondlgpurchasecancel(); public abstract void onerror(int reqcode, int errorcode); } 결제와관렦된요청을하기전에결제라이브러리를초기화해야한다. Activity 의 OnCreate 단계에서아래와같이라이브러리를초기화한다. @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate);. JINSetting setting = new JINSetting(); setting.appid = this.getpackagename(); setting.mlistener = mlistener; // OnCallbackListener 를파라메타로받는다. JINLibInit(setting);. 별도로제공되는 Sample 프로젝트 (JINAppTest) 를통해구현방법을참조.

INAPP 결제 API 목록 구매처리를위한 API 와아이템리스트, 구매목록, 특정아이템에대한구매상황, 차감아이템의사용과관렦된각종 API 를제공 이름기능파라미터설명 JINLibInit 결제라이브러리를초기화한다 ( 필수선행 ) JINSetting Application 패키지명과결과처리를위한콜백리스너를 JINSetting 에설정하고초기화한다. getinappitemlist 인앱아이템목록요청없음 개발자화면에서 판매중 설정된인앱아이템의목록을가져온다. showpurchasedialog 결제화면을호출 상품 ID 상품수량 ( 선택 ) 상품 ID 로결제화면을호출한다. 상품 ID 는한번에여러개를배열형태로호출할수있다. 수량포함하여호출하는경우수량만큼주문이생성된다. getinappauthitemlist Application 에서구매하여현재사용가능한전체아이템목록요청 없음 구매한인앱아이템중에서현재사용가능한아이템의목록을가져온다. getinappauthitem 아이템의인증상태를요청상품 ID 해당상품 ID 가현재사용가능한지등의주문인증상태를가져온다. senduseinappitem 소멸성상품의차감요청상품 ID 상품 ID 가소멸성상품인경우수량을차감한다.

처리결과 CallBack Listener 결제라이브러리의요청은비동기적으로처리되며, 요청한결과는 CallBack Listener 를통해서전달된다. 전달된결과값을이용하여개발자가직접 Application 내부에서각종결과처리를수행한다. 이름파라미터설명 onwholequery ItemInfo[] 아이템의목록을가져오는데성공한경우호출된다. onitempurchasecomplete 없음결제요청한아이템의결제가최종적으로완료된경우호출된다. ondlgpurchasecancel 없음결제요청한아이템의결제가사용자에의해서취소된경우호출된다. onwholeauthquery ItemInfo[] 구매한아이템중에서현재사용가능한아이템의목록을가져오는데성공한경우호출된다. onitemauthquery ItemInfo 특정상품 ID 가현재사용가능한지등의주문인증상태를가져오는데성공한경우호출된다. onitemusequery ItemUse 소멸성상품이정상적으로차감된경우호출된다. onerror Int, int 각종요청에서오류가발생한경우호출된다.

onerror 의에러코드 각종요청시오류가발생하면 onerror 를통해서오류정보를제공한다. JINActivity 에상수로정의되어있다. Name reqcode errorcode 설명 INAPP_ERR_INIT INAPP_ERR_ITEMPURCHASE 199 103 9100 WIFI 가연결되어있지않은경우 9800 결제라이브러리가초기화되어있지않은경우 9900 결제를위한모듈이기기에탑재되어있지않은경우 204 요청한상품이없는경우 1400 요청시패키지명이나상품코드가정확하지않은경우나결제중결제수단변경등에서오류가발생한경우 1403 주문정보 ( 상품코드등 ) 가결제중갂에변경된경우 1406 1409 1900 구매할수없는상품인경우하나만구매하면되는상품인데여러개주문하거나구매가능하지않는등 ) 한번만구매하면되는상품이거나기갂이남은상품을다시구매할려고하는경우 결제가취소된경우 ( 일반적인사용자취소는 ondlgpurchasecancel 로전달 )

onerror 의에러코드 각종요청시오류가발생하면 onerror 를통해서오류정보를제공한다. JINActivity 에상수로정의되어있다. Name reqcode errorcode 설명 INAPP_ERR_WHOLEQUERY INAPP_ERR_WHOLEAUTHQUERY INAPP_ERR_USEQUERY 104 105 107 204 요청한상품이없는경우 1000 서버와통싞에는성공하였으나서버로부터수싞된데이터에오류가있는경우 204 요청한상품이없는경우 1000 서버와통싞에는성공하였으나서버로부터수싞된데이터에오류가있는경우 204 요청한상품이없는경우 403 구매한상품의남은개수가 0 인경우 406 상품이건당상품이거나소멸성상품이아닌경우 1000 서버와통싞에는성공하였으나서버로부터수싞된데이터에오류가있는경우

onerror 의에러코드 각종요청시오류가발생하면 onerror 를통해서오류정보를제공한다. JINActivity 에상수로정의되어있다. Name reqcode errorcode 설명 INAPP_ERR_ITEMAUTH 108 204 요청한상품이없는경우 1000 서버와통싞에는성공하였으나서버로부터수싞된데이터에오류가있는경우 INAPP_ERR_NETWORKSERVER 110 4000 9000 서버와통싞에는성공하였으나서버내부의문제로오류가발생한경우 네트워크상태가나쁘거나통싞중오류등명확하게명확하지않는이유로서버와의통싞이실패한경우

CallBack 에전달되는결과클래스 CallBack Listener 을통해서전달되는각파라메타에대한정의 ItemInfo (static value) 이름 타입 값 설명 PRODUCT_ONETIME String onetime 건당상품 ( 소멸, 무제한 ) PRODUCT_PERIOD String period 기갂소멸성상품 PRODUCT_UPGRADE String upgrade" 정식판전홖상품 ONETIME_UNLIMITED String unlimited 무제한상품 ( 한번구매하면끝인상품 ) ONETIME_DISCHARGE String discharge 차감소멸성상품 PERIOD_DAY String "day" 기갂제한상품 ( 일단위 ) PERIOD_WEEK String "week" 기갂제한상품 ( 주단위 ) PERIOD_MONTH String month 기갂제한상품 ( 월단위 )

CallBack 에전달되는결과클래스 CallBack Listener 을통해서전달되는각파라메타에대한정의 ItemInfo (member) 이름 타입 설명 pid String 상품아이디 pname String 상품명칭 psku String 상품SKU ( 결제요청이나사용요청등결제와관렦된요청시아이디로사용 ) ptype pperiodtype String String 상품의종류 PRODUCT_ONETIME, PRODUCT_PERIOD, PRODUCT_UPGRADE 상품의제한타입 ONETIME_UNLIMITED, ONETIME_DISCHARGE PERIOD_DAY, PERIOD_WEEK, PERIOD_MONTH pperiod String 상품의기갂 ex) day_3, week_2 premaincount int 남은상품개수 pexpiredate String 상품이기갂제한일경우만료일자 yyyy-mm-dd HH:mm:ss plastorder String 주문날짜 yyyy-mm-dd HH:mm:ss porderid String 주문번호 isusable boolean 아이템이사용가능한지여부 ( 구매이력은있으나차감형상품의경우 0이면 false)

CallBack 에전달되는결과클래스 CallBack Listener 을통해서전달되는각파라메타에대한정의 ItemUse (member) 이름 타입 설명 pid String 상품아이디 pname String 상품명칭 psku String 상품SKU( 현재내부적으로 SKU를인앱아이디로사용하고있음 ) premaincount int 남은상품개수 plastorder String 주문날짜 yyyy-mm-dd HH:mm:ss