Leo
In App Purchase (1) 본문
Overview
대부분 그렇겠지만, '결제'라는 단어가 들어가면 '어렵다'라는 생각이 가장 먼저 드는 것 같습니다.
아무래도 돈과 관련되어 있다보니, 실수가 있어선 안된다는 생각 때문에 더욱 그런 것 같습니다.
Flutter에서 인앱 결제 구현 내용을 아는 만큼, 이해한 만큼 적어보겠습니다.
IAP(in-app-purchase)는 유저가 앱 내의 컨텐츠 및 기능을 구매할 수 있는 서비스입니다.
구매 플로우는 크게 3단계로 나눌 수 있습니다.
1. 스토어에 등록된 상품 정보를 받아와 목록 UI를 유저에게 보여줍니다.
2. 유저가 상품을 선택하면 스토어에 결제 요청을 보냅니다.
3. 결제 후 상품을 유저에게 제공합니다.

크게 보면 3단계이지만, 과정을 자세히 들여다보면 신경써야 할 부분이 많습니다.
- 제공하려는 상품을 각 Store에 등록하고, App과 Store를 연결해서 결제가 가능하도록 해야합니다.
- 사용자가 구매하는 시점에 등록된 상품이 정상적으로 구매 가능한 상품인지 확인이 필요합니다.
- 사용자가 실제로 상품을 구매했는지 확인하는 Validation 과정이 필요합니다. Validation은 server에 전달받은 영수증을 보내 검증을 요청합니다. (검증 방법은 여러가지가 있습니다. 각 서비스 환경에 맞는 방법으로 사용하시면 됩니다.)
- 결제와 검증까지 모두 완료했다면 Store에 정상적으로 완료되었다는 알림를 보내야합니다.
이외에도 결제 취소와 유저의 환불 요청에 대한 처리 방법까지 고려해야 합니다.
(각 단계별 프로세스는 다음 포스팅에서 조금 더 자세히 설명할 예정)
종류
IAP(in-app-purchase)의 상품 타입은 4가지가 있으며, 아래와 같습니다.
1. Consumable ✔
- 이번 신규 프로젝트에 적용한 상품 타입입니다.
- 게임에서 화폐같은 종류(100캐시, 10쿠키 등 ..)
- 일회성으로 소모되고, 다시 구매될 수 있는 상품을 Consumable 상품이라고 합니다.
2. Non-Consumable
- 한 번 구매하면 만료되거나 사용에 따라 줄어들지 않는 제품입니다. 예시: 게임 앱에서의 경주 트랙.
3. Auto-Renewable Subscriptions
- 약 6개월 전 진행했던 프로젝트에 적용되어 있는 상품이기도 합니다.
- 스트리밍 서비스를 제공하는 앱의 월간 구독.
- 사용자가 일정 기간 동안 콘텐츠를 구매할 수 있는 제품입니다. 이 유형의 구독은 사용자가 취소하지 않는 한 자동으로 갱신됩니다.
4. Non-Renewing Subscriptions
- 라이브 게임 콘텐츠를 시청할 수 있는 1년 구독
- 자동으로 갱신되지 않으며, 사용자가 제한된 기간 동안 콘텐츠에 접근할 수 있는 제품입니다.
참고
https://developer.apple.com/in-app-purchase/
https://developer.apple.com/help/app-store-connect/configure-in-app-purchase-settings/overview-for-configuring-in-app-purchases
'개발 정리 > Flutter' 카테고리의 다른 글
[Branch] App Link (2) (2) | 2024.11.21 |
---|---|
[Branch] App Link (1) (0) | 2024.11.16 |
In App Purchase (4) (1) | 2024.11.15 |
In App Purchase (3) (2) | 2024.11.14 |
In App Purchase (2) (1) | 2024.11.13 |