Google Play 유저의 구매 완료 데이터를 빌링에 저장 요청 - 게임에서 결제 기능을 직접 구현한 경우
기본 정보
협의된 특정 게임은 자체 구현한 결제를 사용할 수 있습니다.
단, 결제 어뷰징 방지는 게임쪽에서 잘 구현해주셔야합니다.
예) 저렴한 상품 구매 후 비싼 상품 지급 요청 방지
게임에서 결제를 구현했지만 매출 인식과 같은 재무 처리 및 플랫폼 기능을 일부 활용하기 위해서 ‘구매 완료 데이터’를 전송해줄 필요가 있습니다.
호출주체
게임서버(s2s API)
도메인
인증방식
HTTP 메소드
POST
Content-Type
application/json
Request
HTTP Request end point
HTTP Request Header
아래의 HTTP Header들을 API 요청에 포함시켜야합니다.
X-Req-Pjid
프로젝트ID
기술 PM 등에게 전달받은 프로젝트ID
X-Auth-Access-Key
인증용 키
기술 PM 등에게 전달받은 해당 게임용 인증 키
HTTP Request Parameter
Content-Type: application/json 으로 요청되어야 합니다.
영수증 관련 정보들의 길이 및 escape 등의 문제 때문
pjid
String(20)
Y
프로젝트ID
동일 게임이라면 서비스ID가 여러개일 수 있지만 프로젝트ID는 같음
1004
playerId
String(50)
Y
주문 완료를 진행하는 유저ID
ipCountry
String(10)
N
player의 IP기반 국가코드로 법적 대응을 위해서 수집
3166-1 alpha-2 국가코드
testerPurchaseYn
String(1)
Y
구글 테스터로 등록되어 결제가 진행된 테스트 결제 여부
참고: 결제 검증 과정에서 테스터 결제인지 확인 가능
Y 또는 N
productId
String(200)
Y
구매를 진행한 상품ID(SKU와 같은 값)
google_play_gem_01
microPrice
long
Y
구매 금액 micro단위
사용측의 부동 소수점 오차등을 방지하기 위해서 micro단위 사용
구매 금액 micro단위(예. $0.99는 990,000 µ$. 100만을 곱함)
currency
String(10)
Y
구매 금액의 화폐 단위
USD
purchaseOriginalJson
String
Y
구매 원본 Json
base64 디코딩된 receiptData
{"orderId":"GPA.3339-8889-4444-64541","packageName":"com.hybeim.블라블라","productId":"google_com.hybeim.블라블라_gem55000\ .... 블라블라
purchaseSignature
String
Y
구매 Signature
memo
String(2000)
N
메모
필요시 옵셔널하게 사용
Response
응답은 JSON형태로 전달됩니다.
Success sample
성공할 경우 빌링 시스템에는 구매 완료 데이터가 생성되며 이때 boid가 생성됩니다.
아래는 성공의 경우 샘플 json입니다.
Error sample
이미 전송 완료된 데이터를 다시 요청한 경우
변조된 영수증 데이터(purchaseOriginalJson) 또는 잘못된 purchaseSignature로 요청
에러 코드 정의
아래의 에러코드들은 모든 빌링 API에서 발생 가능한 에러 코드들입니다.
해당 에러코드 외에 각 API에서만 발생가능한 에러코드들도 있습니다.
각 에러 코드를 바탕으로 필요시 비즈니스 로직을 작성하시면 됩니다.
SYSTEM_ERROR
빌링 API에서 발생한 시스템 에러
HTTP 상태코드 500 리턴
NOT_ALLOW_AUTH
API 인증 헤더 누락이거나 기타 권한이 없는 요청에서 발생
아래 에러 코드들은 해당 API에서 발생 가능한 추가 에러 코드들입니다.
INVALID_PARAMETER
NOT_VALID_RECEIPT
구매 영수증 검증
영수증 변조 등 잘못된 영수증 문제
요청 curl 샘플
도메인 및 인증 헤더 등은 변경 필요
Last updated