iOS
iOS) StoreKit (2) - In App Purchase
kangwook
2022. 10. 18. 21:25
In-App Purchase
In-App Purchase API는 Swift의 기능을 활용하여 인앱 구매 workflow를 단순화
- In-App Purchase API를 사용하여 제품 정보를 로드
- 앱에 인앱 구매를 표시하고 콘텐츠 및 구독에 대한 액세스를 관리
- App Store-signed transaction 정보도 받을 수 있음
- API는 비동기 작업 중에 Swift Concurrency를 활용하여 결과를 인라인으로 반환
In-App Purchase API는 다음을 제공
- JWS(JSON Web Signature)형식으로 AppStore-signed transaction 정보
- 클라이언트에서 간단하게 parsing할 수 있는 transaction 및 구독 상태 정보
- customer의 콘텐츠 및 서비스 잠금을 해제할 수 있는 권한 결정을 단순화하는 권한 API
앱 내에서 상품을 판매하는 store를 위해서는 다음 기능을 구현해야 함
- transaction listener를 사용해서 transaction 상태 변경 내용을 수신하여 앱이 실행되는 동안 최신 서비스 및 콘텐츠 제공
- products(for:) 라는 제품 요청하는 함수를 사용하여 App Store에서 앱에 표시할 제품을 요청
- purchase(options:)를 사용하여 사용자가 AppStore에서 인앱 제품을 구매할 수 있음
- 트랜잭션 함수 currentEntitlements를 사용하여 사용자의 인앱 구매를 반복하고, 구매한 콘텐츠 및 서비스의 잠금을 해제
- API에서 수신하는 signed transaction 및 signed subscription 상태 정보의 유효성을 검사
AppStore 연결에서 인앱 구매를 사용하기 위해서는 먼저 AppStore Connect에서 제품을 구성해야 함
앱을 개발하면서 제품을 추가하거나 제거하고 기존 제품을 세분화하거나 재구성할 수 있음
또한 여러 플랫폼에서 실행되는 앱 및 인앱 구매를 단일 구매로 제공할 수 있음
추가적으로 하위항목에 대해서 다음 시간에 다뤄보겠다.