Presentation is loading. Please wait.

Presentation is loading. Please wait.

All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 Version1.0 Authorubivelox Date21-Feb.2011 www.ubivelox.com.

Similar presentations


Presentation on theme: "All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 Version1.0 Authorubivelox Date21-Feb.2011 www.ubivelox.com."— Presentation transcript:

1 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 Version1.0 Authorubivelox Date21-Feb.2011 www.ubivelox.com

2 All Rights Reserved, Copyright© UBIVELOX co.,Ltd 1. LGU+ 과금 API 소개 2. LGU+ 과금 API 사용 방법 3. FAQ 4. Q&A

3 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 -3--3- 과금 API 란 ? 과금 API 란 LGU+ 의 패킷 과금 정책에 따라 과금이 필요한 경우 과금 게이트웨이 서버를 통해 네트워크 통신 을 할 수 있도록 제공되는 API 를 말합니다. 사용법은 기본적인 소켓 API 와 동일합니다. 과금 API 를 사용하는 Application 에서는 Wi-Fi / 3G 연결 상태와 상관없이 동일한 데이터만을 전송 및 수신 하면되므로 구현이 간편합니다. Keysharp Packet Keysharp Header Bill Packet Bill Header Application Packet User Data 3G 연결 시 WiFi 연결 시 Write Read 과금 API U+ Android Network G/W U+ WiFi G/W CP 서버 U+ G/W

4 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 -4--4- 과금 API 란 ? 현재 지원되는 LGU+ 과금 방식은 CP 서버에서 Android Network G/W 로 과금을 요청하는 방식입니다. 단말 에서 “Android Network Gateway 연동 규격서 ” 에 정의된 규격으로 Android Network G/W 로 Packet 을 전달하 면, Android Network G/W 에서는 해당 CP 서버로 그 Packet 을 전송합니다. 해당 CP 서버에서는 전달 된 Packet 을 바탕으로 Android Network G/W 에 과금을 요청하여야 됩니다. 과금 API 를 사용하면 이때 필요한 규격에 맞게 Packet 을 자동 구성 및 파싱을 하게 됩니다. 단말의 Application 에서는 “Android Network Gateway 연동 규격서 ” 에 명시된 BILLCOMM HEADER 및 CP HEADER 의 User Data 만을 전송 및 수신 하면되므로 구현이 간편합니다. Android Network G/W CP 서버 Application 과금 API write( AAA ) Packet LengthXXXX Application IDXXXXXXXX …… Reserved… User DataAAA BILLCOMM HEADER CP HEADER read( BBB ) Header CodeXXXX Event IDXXXXXXXX …… Service Type… User DataBBB CP HEADER

5 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 사용 방법 -5--5- 과금 API 제공 Service 로 Bind 과금 API 는 LGU+ 향 단말에 Preload 되어 있는 CommonService(Application) 를 통해서 제공 됩니다. 과금 API 를 사용하기 위해서는 과금 API 를 제공하는 Service 에 Bind 하여야 합니다. package com.lguplus.common.bill; interface IBillSocket { boolean connect(String aid, String addr, int port); void close(); int readBytes(out byte[] b); int readByOffset(out byte[] b, in int offset, in int length); boolean writeBytes(in byte[] buffer); boolean writeByOffset(in byte[] buffer, in int offset, in int length); String getLastErrorMsg(); } 1. 메모장 등을 사용하여 새 파일을 생성한 후, “LGU+_Android_ 공통 API_ 규격서 ” 의 AIDL Definition 으로 명시 된 하기 코드를 복사하여 “IBillSocket.aidl” 로 저장합니다. IBillSocket.aidl AIDL 은 반드시 “LGU+_Android_ 공통 API_ 규격서 ” 의 내용 을 수정 없이 동일하게 사용하여야 합니다. 참고로 readByOffset 및 writeByOffset 은 현재는 사용되지 않는 API 지만, 기존에 배포된 과금 API(aidl) 와의 호환성을 유지하기 위해 반드시 명시하여야 합니다.

6 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 사용 방법 -6--6- 과금 API 제공 Service 로 Bind 2. 과금 API 를 사용할 Application Project Source 에 “com.lguplus.common.bill” Package 를 생성한 후 앞서 생 성한 “IBillSocket.aidl” 파일을 복사합니다. IBillSocket.aidl “IBillSocket.aidl” 파일이 정상적으로 복사가 되었으면 Project “gen” 폴더 하위 경로 “com.lguplus.common.bill” Package 에 “IBillSocket.java” 가 자동으로 Generate 되어 생 성된 것을 확인할 수 있습니다.

7 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 사용 방법 -7--7- 과금 API 제공 Service 로 Bind 3. 과금 API 를 사용하기 위해서는 Application 에서 과금 API 를 제공하는 Service 로 Bind 요청하는 코드를 구 현해야 합니다. Service Bind 를 요청하는 방법은 일반적인 Android F/W 에서의 Service Bind 를 요청하는 방 법과 동일합니다. public class Test extends Activity { private IBillSocket mBillSock; public void onCreate(Bundle savedInstanceState) { ……… // 과금 소켓을 구현한 서비스 바인딩 하기. boolean isBind = bindService(new Intent(IBillSocket.class.getName()), serviceConn, BIND_AUTO_CREATE); } …… private ServiceConnection serviceConn = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder binder) { mBillSock = IBillSocket.Stub.asInterface(binder); billSocketTestStart(); } }; } AIDL 로 추가한 IBillSocket.class.getName() 을 Bind 요청할 Intent 의 class name 인자로 사용합니다. Connection 이 정상적으로 이루어 졌으면, 과금 API 의 인스턴스를 할당 받을 수 있습니다. 모든 준비과정이 끝났으므로, 과금 API 사용을 시작할 수 있습니다.

8 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 사용 방법 -8--8- 과금 API 사용 4. 과금 API 를 사용할 준비가 되었으므로, 해당 Application 의 요구사항에 맞게 과금 API 를 적용합니다. 기본 적인 사용 방법은 일반적인 Socket API 사용법과 동일합니다. …… private void billSocketTestStart() { new Thread() { @Override public void run() { if (!Connect()) { unbindService(serviceConn); return; } if (!Write()) { Close(); unbindService(serviceConn); return; } if (!Read()) { Close(); unbindService(serviceConn); return; } Close(); unbindService(serviceConn); } }.start(); } …… Network 상황에 따라서 시간 소요가 많이 발생 할 수 있으므로 반드시 Thread 로 구현해야 합니 다. 예외적인 상황 등에 의해서 과금 API 를 더 이상 사용할 일이 없을 때 연결한 과금 API Service 와 Bind 를 해제하여야 합니다. 과금 API Connect 이후 종료 시 반드시 Close 시켜야 합니다.

9 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 사용 방법 -9--9- 과금 API 사용 5. 과금 API 의 connect() 및 close() 는 일반적인 Socket API 사용법과 동일합니다. …… private String mAid = "00FFFFFF";//OZ Store 에 등록된 AID private String mAddr = "111.111.111.111"; private int mPort = 10000; boolean Connect() { try { if (mBillSock.connect(mAid, mAddr, mPort)) { return true; } else { String msg = mBillSock.getLastErrorMsg(); } }catch(RemoteException e) { } return false; } …… void Close() { try { mBillSock.close(); }catch(RemoteException e) { } ……… 과금 API connect 인자는 다음과 같습니다. mAid : OZStroe 에 등록된 Application ID(8 자리 ) mAddr : CP 서버의 IP mPort : CP 서버의 Port 과금 API connect, write 시 return 값이 false 로 전달, 혹은 read 시 return 값이 -1 로 전달되면 getLastErrorMsg() 를 통해서 Error Message 를 확인 가능합니다.

10 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 사용 방법 -10- 과금 API 사용 6. 과금 API 의 write() 역시 일반적인 Socket API 사용법과 동일합니다. Application 에서 과금 API write 의 인자로 전달한 값은, 과금 API 에 의해서 “Android Network Gateway 연동 규격서 ” 의 BILLCOMM HEADER 의 User Data 영역으로 패킷이 구성되어 CP 서버로 전달 됩니다. …… boolean Write() { byte []buf = new byte[36];// 데이터 길이 try { System.arraycopy(toByteArray(32), 0, buf, 0, 4); // 32 ' 고정값 ' //12 자리 폰번호 예 )010057401234 System.arraycopy(“01012345678”.getBytes, 0, buf, 4, 12); // 게임 ID System.arraycopy("1111".getBytes(), 0, buf, 16, 4); // 상용기에 등록된 과금코드 System.arraycopy("00FFFFFF".getBytes(), 0, buf, 20, 11); // 과금금액 System.arraycopy(toByteArray(500), 0, buf, 32, 4); if (BillSock.writeBytes(buf)) { return true; } } catch(RemoteException e) { } return false; } ……… write 의 buf 로 사용한 값들은 예제 Application 과 CP 서버 간 연동 을 위해 자체 규격을 만들어, CP 서버와 통신하는 예제입니다. 즉 write 시 전달할 값들은 자체적으로 규격을 정의하여 전달하며, CP 서버에서는 해당 값이 전달 되었을 때 규격에 해당하는 과금을 요청하도록 구현하면 됩니다.

11 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 사용 방법 -11- 과금 API 사용 7. 과금 API 의 read() 역시 일반적인 Socket API 사용법과 동일합니다. CP 서버에서 전송한 “Android Network Gateway 연동 규격서 ” 의 CP HEADER 를 과금 API 가 수신하면 이중 User Data 로 명시된 값을 과금 API read 의 인자로 Application 에게 전달합니다. …… boolean Read() { byte []buf = new byte[36]; try { int ret = BillSock.readBytes(buf); if (ret == -1) { return false; } else { // readBytes 성공 ; } }catch(RemoteException e) { return false; } if(toInt(buf[32],buf[33],buf[34],buf[35])==500) { // 과금 성공 ; return true; } else { return false; } ……… read 의 buf 로 사용한 값들은 예제 Application 과 CP 서버 간 연동 을 위해 자체 규격을 만들어, CP 서버와 통신하는 예제입니다. write 와 마찬가지로 read 시 전달된 값들은 자체적으로 규격을 정의 하여 CP 서버에서 해당 값을 전송하며, Application 에서는 해당 값 을 수신 하였을 때 과금 성공, 실패에 맞는 처리를 구현하면 됩니다.

12 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API FAQ -12- Q. 과금을 CP 서버가 요청하는지요 ? 단말에서 직접 과금 할 수 있는 방식은 없는지요 ? A. 현재는 CP 서버를 통해서만 과금이 가능합니다. 단말에서 직접 과금하는 방식은 현재 준비 중에 있으며, ‘11 년 내에 지원 예정입니다. Q. CommonService 를 통한 과금 API 사용시 Connect 인자에 들어가는 IP 및 Port 는 무엇을 입력하여야 하나 요 ? A. CP 에서 구현한 CP 서버 IP 및 Port 를 입력하면 됩니다. Q. CommonService 를 통한 과금 API 사용시 write 및 Read 시 인자로 전달하는 Data 는 어떤것 인가요 ? A. CommonService 의 과금 API 는 "Android Network Gateway 연동 규격서 " 에 명시된 빌컴 헤더 정보를 자동 으로 설정 및 파싱을 합니다. 과금 API 를 통해서 Write 및 Read 시 전달되는 값은 "Android Network Gateway 연동 규격서 " 에 명시된 User Data 부분에 해당하므로, CP 서버와의 자체 규격을 만드시고 그에 해당하는 값을 전송 및 전달하면 됩니다. Q. 과금 API 를 사용하여 CP 서버와 연동 중 오류가 발생하여 문의를 하고 싶습니다. A. 오류 현상은 단말 내 혹은 CP 서버 연동간 발생할 수 있습니다. 빠른 대응을 위해서는 다음 정보를 기입 하여 http://devpartner.lguplus.co.kr/ 로 문의 주시기 바랍니다.http://devpartner.lguplus.co.kr/ - 오류현상 - 단말 정보 ( 단말 버전 및 모델 명 ) - CommonService 버전 정보 ( 설정 – 응용프로그램 - 응용프로그램관리 에서 확인 가능 ) - 단말 Log( Logcat 으로 출력한 전체 로그 ) - TEST 시각 - CTN( 전화번호 ) - Application ID - Event ID

13 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API Q&A -13-

14 All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API -14-


Download ppt "All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 Version1.0 Authorubivelox Date21-Feb.2011 www.ubivelox.com."

Similar presentations


Ads by Google