IOS & Android Inapp Server - 개요
안녕하십니까
이번 글은 Spring Boot를 이용한 인앱 결제 서버를 만들기입니다. 우선 인앱 결제 서버를 구현하기에 앞서 Inapp결제 서버가 동작하는 방식을 대충 diagram을 그려볼게요.
저기서 더 로직을 추가해줌으로써 보안을 할 수 있으며, 대충 기본적인 흐름은 이래요.
설명을 드리자면
1. Client 측에서 Google Play나 App Store 측에 앱 아이템 구매요청을 합니다.
2. 응답으로 인앱 관련 Data를 받아와 Client는 Client Server에 Data를 전송합니다.
3. Data를 받은 Server는 Inapp Server에 Data가 유효한지 Validation Check를 해줘야 합니다. (필수)
- IOS는 영주승 검증 API를 통해 Validation Check를 할 수 있지만,AOS는 영수증 검증 API가 없고 영수증을 Decode 하여 영수증이 동일하지 체크하여 해킹을 막을 수 있습니다.
4. 올바른 Data가 맞다면 Client DB에 해당 Data로 인해 Item 지급 체크 로직 등을 만들어 줘 Item을 지급합니다.
- order id나 trasaction id 등을 이용해 Item 지급이 됬는지 확인할 수도 있고, 해당 영주승으로 Item이 지급되었는지 등 보안로직을 만들어 줘야 합니다.
5. Client측에 Item 지급 완료 Response를 줍니다.
6. Client는 Inapp 서버 쪽에 Item을 줬다고 통보를 합니다. (소비 요청)
이렇습니다.
개념은 다음과 같고, 다음 글에는 IOS 및 Android Inapp Server를 구현 해보겠습니다!
참고 및 출처
Android Inapp
https://developers.google.com/android-publisher/authorization?authuser=0&hl=ko
https://developers.google.com/android-publisher/api-ref/purchases/products?authuser=0&hl=ko#resource
IOS Inapp
https://developer.apple.com/documentation/appstorereceipts/verifyreceipt