Your SlideShare is downloading. ×
Apps Code Bible II_제2회 Hello, Dev.Square 개발자 세미나 발표자료
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Apps Code Bible II_제2회 Hello, Dev.Square 개발자 세미나 발표자료

842
views

Published on

제2회 Hello, Dev.Square 개발자 세미나 발표자료, Apps Code Bible II

제2회 Hello, Dev.Square 개발자 세미나 발표자료, Apps Code Bible II

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
842
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 2009. 11. 12 Apps Code Bible II
  • 2. Custom APIs
    • 일촌 추천 UI
      • opensocial.requestShareApp
    • 게시물로 저장하기
      • openNate.minihpScrap
    • Payment
      • openNate.dotoriPayment
  • 3. 일촌 초대하기 – opensocial. requestShareApp 일촌 초대 팝업 UI 또는 직접 호출을 통해 초대 feed 발송 opensocial.requestShareApp(recipients , message, opt_callback); opensocial.requestShareApp(recipients , null, opt_callback); opensocial.requestShareApp(null , message, opt_callback); opensocial.requestShareApp(null , null, opt_callback); Sample code * Method opensocial.requestShareApp * Parameter recipients : 수신자 IDs, array message : opensocial message 객체 callbackFn : 콜백함수 (optional)
  • 4. 일촌 초대하기 – opensocial. requestShareApp ⓐ opensocial.requestShareApp(recipients , message, opt_callback); ⓑ opensocial.requestShareApp(recipients , null, opt_callback); ⓒ opensocial.requestShareApp(null , message, opt_callback); ⓓ opensocial.requestShareApp(null , null, opt_callback); Sample code
    • 앱스토어 초대 기본 메시지 ex) 미니미 님이 싸이앱스 를 추천하였습니다 .
    • message : 앱스 지정 메시지 ex) 정말 좋아요
    • 사용자 작성 메시지 ex) 야 ~ 나랑 앱스하자
    • hint)
    • recipients 는 일촌초대 팝업 UI 사용 여부와 관련이 있음
  • 5. openNate 시작하기 <Require feature=&quot;opennate&quot; /> <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?> <Module> <ModulePrefs> <Require feature=&quot;opensocial-0.8&quot; /> <Require feature=&quot;opennate&quot; /> </ModulePrefs> <Content type=&quot;html&quot;> <![CDATA[ ]]> </Content> </Module> Sample code
  • 6. 게시물로 저장하기 – openNate.minihpScrap 앱스에서 생성된 컨텐츠를 미니홈피 게시판에 저장 var params = {}; params[openNate.ScrapParameters.CONTENT] = &quot;<u> 게시물 </u> 로 저장되는 내용 &quot;; openNate.minihpScrap(params); Sample code * Method openNate.minihpScrap * Parameter openNate.ScrapParameters.CONTENT * Return None
  • 7. Payment – openNate.dotoriPayment 앱스에서 네이트 도토리 결제시스템 이용 * Method openNate.dotoriPayment * Parameter openNate.PaymentParameters.ITEMTYPE openNate.PaymentParameters.ITEMID openNate.PaymentParameters.ITEMNAME openNate.PaymentParameters.THUMBNAIL openNate.PaymentParameters.DOTORI openNate.PaymentParameters.CALLBACKFN openNate.PaymentParameters.PASSTHROUGH openNate.PaymentParameters.CALLBACKURL * Return object
  • 8. Payment – openNate.dotoriPayment * Return 객체 paymentKey passthrough status message 동일한 결제에 대한 재요청 발생 네이트 도토리 결제 처리 이후 3rd party 서버 프로세스 실행중 오류 또는 2 단계 통신중 오류 네이트 도토리 결제 처리중 오류 3 rd party 서버와의 통신상의 오류 1 단계 통신중 오류 및 3 rd party 프로세스 실행중 오류 결제 성공 설명 Dotori error ERR002 status message true Success ERR001 Communication error ERR003 Payment error ERR004 Expired page
  • 9. payment – 데이터 흐름 결제 팝업 3 rd party 앱스 openNate.dotoriPayment 실행 도토리 부족 알림 팝업 네이트 도토리 충전 팝업
    • payment_key 생성
    • 결제 요청정보 저장
    -request parameter 및 shared key 를 이용하여 hmac 키 생성 3 rd party 서버 프로세스 -passthrough 확인 -Mac key 생성 후 비교 - 아이템 정보 임시 저장 등 response HTTP RC 결제 진행 결과 팝업 - 에러 메시지 HTTP RC 확인 ERR001 네이트 도토리 차감 도토리 차감 결과 전송 3rd party 서버 프로세스 -Passthrough, mac key 등 확인 - 사용자 아이템 구매 정보 저장 response HTTP RC HTTP RC 확인 ERR002 ERR003 ( 고객센터 ) 결제 진행 결과 팝업 - 결제 성공 결제 버튼 클릭 Popup UI - 계약정보 확인 callbackFN 1 2 3 4 5 6 7 8 9 10 13 11 12 14 15 16 17 18 19 6 11 파라미터 status – ready, accepted, failed payment_key passthrough user_id apps_no item_id item_type item_name item_dotori mac
  • 10. Payment – openNate. dotoriPayment var params = {}; params[openNate.PaymentParameters.ITEMTYPE] = “item_type”; params[openNate.PaymentParameters.ITEMID] = “item_id”; params[openNate.PaymentParameters.ITEMNAME] = “item_name”; params[openNate.PaymentParameters.THUMBNAIL] = “ image_thumbnail_url”; params[openNate.PaymentParameters.DOTORI] = “dotori”; params[openNate.PaymentParameters.CALLBACKFN] = &quot;callbackFunction&quot;; params[openNate.PaymentParameters.PASSTHROUGH] = “ generated passthrough&quot;; params[openNate.PaymentParameters.CALLBACKURL] = &quot;http://www.thirdparty.com/callback.php&quot;; openNate.dotoriPayment(params); Sample code dotoriPayment API 활용
  • 11. 앱스에서 dotoriPayment 호출시 팝업 UI 네이트컨테이너 결제 프로세스 Payment – 팝업 UI 1 2 3
  • 12. Payment – 3 rd party 로의 http request callback URL : http://www.thirdparty.com/callback parameters : payment_key=2059ec5f423caac343f6677de784d320&user_id=12345678&apps_no=10&item_id=3&item_type=COIN&item_name=test+item&item_dotori=10&status=ready&passthrough=kjse23fjs52fgsog34 shared key : opennate_payment_shared_key generated MAC key : bcd9cf234c6cb711eb14d488ebe5d8e0 http request : http://www.thirdparty.com/callback?payment_key=2059ec5f423caac343f6677de784d320&user_id=12345678&apps_no=10&item_id=3&item_type=COIN&item_name=test+item&item_dotori=10&status=ready&passthrough=kjse23fjs52fgsog34&mac=bcd9cf234c6cb711eb14d488ebe5d 8e0
  • 13. Payment – hmac key 생성 C = callbackURL [eg &quot; http://www.thirdparty.com/callback&quot;] P = 파라미터 [eg &quot;param1=value1&param2=value2&...&paramN=valueN&quot;] K = the shared secret key H = md5 M = hash (K,P) = H ((K XOR opad) + H ((K XOR ipad) + P)) opad : outer padding (0x5c5c…5c5c, one-block-long hexadecimal constant) ipad : inner padding (0x3636…3636, one-block-long hexadecimal constant) request (C,P,K) = &quot; http://www.thirdparty.com/callback?param1=value1&param2=value2&...&paramN=valueN&mac=&quot;+ M RFC 2104 HMAC_MD5
  • 14. Payment – 3 rd party 서버 프로세스 이것만은 지키자 .
    • Payment API 실행시 passthrough 값 생성
    • 전송된 passthrough 값이 서버에서 생성된 값인지 확인
    • Hmac key 생성 후 request parameter 중 mac 값과 비교
    • 아이템 구매 내역 로그 기록
    • Shared key 는 소중하게 관리
  • 15. 감사합니다 .