Google Play PC 유저의 구매 완료 요청에 대한 검증
Last updated
Last updated
Google Play PC에서 유저가 구매한 결제 건을 검증합니다.
영수증 검증 및 기본적인 어뷰징 체크가 진행됩니다.
호출주체
게임서버(s2s API)
도메인
인증 방식
HTTP 메소드
POST
Content-Type
application/json
아래의 HTTP Header들을 API 요청에 포함시켜야합니다.
X-Req-Pjid
프로젝트ID
기술 PM 등에게 전달받은 프로젝트ID
X-Auth-Access-Key
인증용 키
기술 PM 등에게 전달받은 해당 게임용 인증 키
아래의 공통 파라미터 외에 하단의 각 결제 스토어 특화 파라미터들도 같이 요청해야 합니다.
Content-Type: application/json 으로 요청되어야 합니다.
영수증 관련 정보들의 길이 및 escape 등의 문제 때문
reqId
String(100)
Y
중복 요청을 막거나 요청 추적을 위한 값
userId_UUID 등과 같은 방식으로 생성
pjid
String(20)
Y
프로젝트ID
동일 게임이라면 서비스ID가 여러개일 수 있지만 프로젝트ID는 같음
1004
boid
String(20)
Y
빌링 시스템 구매 예약 API를 통해서 생성된 ID
1234
playerId
String(50)
Y
주문 완료를 진행하는 유저ID
microPrice
long
Y
구매 금액 micro단위
사용측의 부동 소수점 오차등을 방지하기 위해서 micro단위 사용
구매 금액 micro단위(예. $0.99는 990,000 µ$. 100만을 곱함)
currency
String(10)
Y
구매 금액의 화폐 단위
USD
productId
String
결제완료 후 구글에서 획득한 productId
purchaseToken
String
결제완료 후 구글에서 획득한 결제 토큰
응답은 JSON형태로 전달됩니다.
성공으로 응답하면 게임 서버는 유저에게 아이템 및 재화를 지급하고, 이후 Google 소모처리와 빌링 완료처리 API를 호출해서 최종 완료해주시면 됩니다.
게임 서버에서는 필요 로그를 게임DB 또는 로그 DB에 저장해주시는게 좋습니다.
구매 완료된 boid에 대해서 다시 완료 요청
검증 성공한 boid에 다시 검증 요청
변조된 영수증 데이터(purchaseOriginalJson)으로 요청
이미 완료처리에 사용했던 영수증 데이터로 재 완료 요청(영수증 재 사용 중복요청 어뷰징)
아래의 에러코드들은 모든 빌링 API에서 발생 가능한 에러 코드들입니다.
해당 에러코드 외에 각 API에서만 발생가능한 에러코드들도 있습니다.
각 에러 코드를 바탕으로 필요시 비즈니스 로직을 작성하시면 됩니다.
SYSTEM_ERROR
빌링 API에서 발생한 시스템 에러
HTTP 상태코드 500 리턴
NOT_ALLOW_AUTH
API 인증 헤더 누락이거나 기타 권한이 없는 요청에서 발생
아래 에러 코드들은 해당 API에서 발생 가능한 추가 에러 코드들입니다.
INVALID_PARAMETER
NOT_ALLOW_PURCHASE
구매 기능을 사용할 수 없는 상황
빌링 시스템에 스토어 관련 설정 누락
다른 유저의 결제 예약건을 완료 처리 시도
NOT_VALID_RECEIPT
구매 영수증 검증
영수증 변조 여부 검사와 같은 어뷰징 방지 검사
구글 API로부터 구매의 현재 상태를 검증
EXTERNAL_API_ERROR
빌링 API가 호출하는 외부 API가 에러인 경우
예) 구글 API 장애로 구매의 상태 정보를 받아오지 못하는 경우
게임 서버는 지수 백오프 알고리즘으로 재 시도하거나 클라이언트의 미 처리 영수증 처리 기능으로 처리할 수 있음
도메인 및 인증 헤더 등은 변경 필요
3글자 포맷의
아래와 같은 에러코드가 resultCode에 응답될 수 있습니다. ()