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

1,053 views

Published on

제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
1,053
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. 2009. 11. 12 Apps Code Bible II
  2. 2. Custom APIs <ul><li>일촌 추천 UI </li></ul><ul><ul><li>opensocial.requestShareApp </li></ul></ul><ul><li>게시물로 저장하기 </li></ul><ul><ul><li>openNate.minihpScrap </li></ul></ul><ul><li>Payment </li></ul><ul><ul><li>openNate.dotoriPayment </li></ul></ul>
  3. 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. 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 <ul><li>앱스토어 초대 기본 메시지 ex) 미니미 님이 싸이앱스 를 추천하였습니다 . </li></ul><ul><li>message : 앱스 지정 메시지 ex) 정말 좋아요 </li></ul><ul><li>사용자 작성 메시지 ex) 야 ~ 나랑 앱스하자 </li></ul><ul><li>hint) </li></ul><ul><li>recipients 는 일촌초대 팝업 UI 사용 여부와 관련이 있음 </li></ul>
  5. 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. 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. 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. 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. 9. payment – 데이터 흐름 결제 팝업 3 rd party 앱스 openNate.dotoriPayment 실행 도토리 부족 알림 팝업 네이트 도토리 충전 팝업 <ul><li>payment_key 생성 </li></ul><ul><li>결제 요청정보 저장 </li></ul>-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. 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. 11. 앱스에서 dotoriPayment 호출시 팝업 UI 네이트컨테이너 결제 프로세스 Payment – 팝업 UI 1 2 3
  12. 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. 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. 14. Payment – 3 rd party 서버 프로세스 이것만은 지키자 . <ul><li>Payment API 실행시 passthrough 값 생성 </li></ul><ul><li>전송된 passthrough 값이 서버에서 생성된 값인지 확인 </li></ul><ul><li>Hmac key 생성 후 request parameter 중 mac 값과 비교 </li></ul><ul><li>아이템 구매 내역 로그 기록 </li></ul><ul><li>Shared key 는 소중하게 관리 </li></ul>
  15. 15. 감사합니다 .

×