Skip to main content

인앱 결제 (In-App Purchase)

애플리케이션 내에서 결제하는 방식으로, ios 환경에서는 Apple AppStore에서 등록되어있는 결제 수단으로, 
android는 Google PlayStore 또는 Amazon 결제 수단으로 결제가 가능하다.
애플 정책을 확인해보면 앱 내의 모든 디지털 콘텐츠의 결제에 대해서는 인앱 결제를 통해야한다.

디지털 콘텐츠의 정의

  • 실물 제품이 없고, 고객이 온라인에서 사용 가능한 서비스 및 콘텐츠

인앱 결제 vs PG 결제

  • 온라인 컨텐츠는 인앱 결제

    • 게임 앱
    • e-book 앱
    • 카메라 필터 앱
  • 실물 제품은 PG 결제

    • 온라인 쇼핑몰
    • 식품/의류
  • PG 결제 수수료는 3%대

  • 인앱 결제 기본 수수료는 30%

결제 플로우

  1. 결제 상품 정보 조회
    • Apple Store Connect에서 직접 판매 상품을 등록 - 각각의 판매 상품마다 고유한 상품 id를 가지고 있다. 결제 이전에 상품 정보를 조회하여 해당 상품의 id가 유효한지 확인 후, 상품 가격과 같은 정보를 모달과 같은 UI로 유저에게 제공해야한다.
    • 상품이 업데이트 될 일이 없는 경우, 클라이언트 사이드에 고정해도 된다. - 상품의 변경이 필요한 경우, 앱을 업데이트해야한다.
    • 대부분의 경우에 상품 정보의 업데이트가 필요하므로 애플리케이션 서버를 거쳐서 상품을 제공하는 게 안정적이다.
  2. 결제 요청
    • 유저가 구매 UI에서 결제하기를 클릭하면, 앱 클라이언트에서는 애플 서버로 결제 요청을 보내고, 결제 완료시, 해당 건에 대한 영수증을 검증해야한다.
    • 영수증 검증의 경우, 로컬 머신에서 검증할 수도 있고(RN은 아직 라이브러리가 미지원이다.), AppStore API를 통해 영수증을 조회해와서 검증할 수도 있다. 기존 AppStore의 영수증 검증 API는 WDC2023에서 StoreKit2가 발표되면서 depercated 되었다.
  3. 구매한 상품의 적용
    • 완료시 애플리케이션 서버에서 유저에게 구매한 상품을 적용해주면 된다.