안녕! '럭키 피스'를 개발중인 1인 개발자 '인헤이븐'이야.
그동안 혼자서 개발하느라 여기서 정보를 많이 얻었을 수 있었는데 나도 출시를 곧 앞두고 있어서 홍보 겸 정보 공유하려고해!
나도 개발일지 작성하고싶었는데 계속해서 바뀌는 작업에 엄두가 안났지 뭐야.. 개발하면서 일지랑 정보글 작성하시는 분들 정말 존경해,,!
글이 길어서 2번으로 나눠올릴게!
✦ 일단 게임 소개를 하자면 로그라이크 RPG인 '럭키 피스'는 선택과 운빨이 중요한 게임이야.
과금없이도 최종 성장이 가능하도록 부담없이 즐길 수 있는 게임이고 진행할수록 매번 테마가 바뀌는 식이야.
클릭만 하면 되는 게임이라 어렵진 않겠지만 클리어를 위해선 선택의 중요성이 높아지지.
일단 정보 공유글이니 간단한 홍보는 여기까지하고..
나도 이것저것 해보면서 해결이 된 부분에 대해서 공유하는거라 정보에 문제가 있으면 댓글로 추가 의견달아줘!
✦ 파이어베이스를 활용한 인앱결제 >> 클라우드 펑션 >> 앱체크 >> 영수증 검증 시스템 구현하기
나는 현재 파이어베이스를 서버로 사용해서 유료 재화 데이터를 저장중이야.
[게임]에서 구매 호출 >> [Functions]에서 [App Check]가 포함된 서버 함수를 통해 영수증 검증 완료 >> [Firestore Database]에 데이터를 저장 하는 방식이야.
[0. 선행 단계 ]
영수증검증을 사용하려면 먼저 서버에서 검증을 대표할? 서비스 계정이 필요해서
구글 서버 api를 호출에 필요한 access token을 발급하고 구글 플레이 콘솔에 계정을 추가로 등록해야해.
0-1. 플레이콘솔에서 [Play 게임즈 서비스 설정] 에서 구글 클라우드 플랫폼을 누르고
0-6. 방금 만든 서비스 계정의 세부정보에 들어가**서비스계정 이메일 기억하기
[ 1. App Check ]
파이어베이스에는 변조된 기기를 체크하는 [App Check]가 있어. 선택사항이긴 하지만 결제에 대한 부분이라 적용했어.
(앱 체크 설정하는 법은 따로 확인해봐!)
>> 파이어베이스에 앱 체크가 적용 후 확인된 요청으로 받아오고 있는 상태.
* 서비스에 앱체크를 적용하려면 서비스마다 별도로 적용을 눌러줘야해.
* 확인사항
앱체크는 유효한 계정이 아니면 파이어베이스 접근을 거절해. 즉, 앱에 앱체크 계정 체크가 안되면 모든 접근이 거절되는거같아.
실제로 적용 후 "FirestoreException: Missing or insufficient permissions." 이라는 오류가 발생했어.
1-1. 규칙 재설정
파이어스토어 데이터베이스를 들어가서 [규칙] 안에 해당 정보 입력
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
1-2. 파이어베이스 초기화 시 앱체크 적용 (코드)
파이어베이스 초기화 시 아래 코드를 실행하면 앱체크가 적용된 계정이 접근할 수있어.
여기서 참고할게 테스트가 필요한 [유니티 에디터]에서 적용하는 방법이야.
안드로이드와 ios와 달리 기기 체크가 안되는 [유니티 에디터]에선 아래 "Debug Token"에 토큰을 따로 넣어줘야해.
1-3. 유니티 에디터에 앱체크 적용
1-3-1. 앱 체크에 들어가 등록된 앱의 [디버그 토큰 관리] 클릭
1-3-2. [디버그 토큰 추가] 클릭 후 오른쪽 아래 [토큰 생성]을 누르면 "Debug Token"이 나옴.
Debug Token은 저장을 누를 시 바로 암호화로 안보이니 따로 복사 후 저장 클릭.
1-3-3. 1-2 코드에 "DebugToken" 값 붙여넣기 >> 에디터에서도 파이어베이스 데이터 접근 가능
>> 2부에서 이어짐.
이걸 내가 5년전에 봤더라면.. 그때 파이어베이스로 영수증 검증하는거 자료 진짜 없어서 어쩔수없이 카페24 웹호스팅해서 어거지로 했었는데 ㅋㅋㅋ
쭨다..
요즘 UI 만드는데 스샷 보니 UI 힘 좀 들었겠는데 싶네 프레임 생긴 게 다 달라
이걸 알아보다니,, 대단한걸!