인 앱 결제(apple, google)

arkive dev·2024년 9월 24일
  1. System
# plantuml sequence diagram code > https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
# etc diagram > https://plantuml.com/ko/

@startuml

== 1 ==
App -> Api : req product list
Api --> App : rsp

== 2 ==
App -> AppStore : req product
AppStore --> App : rsp
App -> AppStore : req purchase
AppStore --> App : rsp
AppStore -> Api : req notification
Api --> AppStore : rsp

== 3 ==
App -> Api : req validate receipt
Api -> AppStore : req receipt
AppStore --> Api : rsp
Api -> Api : validate receipt
Api --> App : rsp

@enduml

  1. Reference
    2.1. IOS(Apple)
    - Get Transaction History https://developer.apple.com/documentation/appstoreserverapi/get_transaction_history
    - Generate Token(JWT)
    https://developer.apple.com/documentation/appstoreserverapi/generating_json_web_tokens_for_api_requests#3809219
    - 필요 데이터 : issuer id, app key, json private key file, bundle id


    - App Store Connect > 사용자 및 액세스 > 통합 > 팀키 > (+):키 생성 > 다운로드(private key)
    - Issuer ID > request:headers:kid
    - 키 ID > request:payload:iss

    - 서버 간 알림 활성화
    https://developer.apple.com/kr/help/account/configure-app-capabilities/enabling-server-to-server-notifications/
    - Get Notification History https://developer.apple.com/documentation/appstoreserverapi/get_notification_history

    2.2. AOS(Google)
    - 실시간 개발자 알림 참조
    https://developer.android.com/google/play/billing/rtdn-reference?hl=ko
    - 인 앱의 구매 및 결제 상태 확인
    https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.products/get?hl=ko

  2. Notification(알림)의 수신 및 저장

  • 결제 취소를 위해 데이터 저장 및 활용
  • 결제 정합성 체크를 위한 원본 저장
  • Validation receipt(결제 검증)은, 앱에서 요청한 정보와 구매 정보가 맞는지 실시간 비교

0개의 댓글