Epic Gmes 구매 완료한 지속성 상품의 오너쉽 정보 조회
기본 정보
- Epic Games 유료 ‘기본게임’과 같은 지속성 상품의 오너쉽 정보를 가져오는 API입니다.
- 빌링에 구매 완료된 ‘지속성 상품’에 대해서 Epic Games의 Ecom웹 API(링크)로 오너쉽 정보조회 후 응답합니다.
- 게임 패키지(기본게임)를 유료로 판매하는 경우, 오너쉽을 확인하여 플레이 허용 여부를 결정할 때 사용 가능합니다.
- 예) 게임 시작할 때 해당 API를 호출하여 게임 실행을 허용할지 판단할 수 있습니다.
- Epic Games의 API를 중개 처리하여 호출하기 때문에 Timeout은 여유있게 설정하는게 좋습니다.(ex. 20초)
- 기본게임 실행에 중요한 영향을 줄 수 있기 때문에, Epic Games의 API 응답이 없으면 Fallback으로 빌링 DB의 완료 상태 여부로 응답하는 기능을 제공합니다.
| 항목 | 내용 | 비고 |
|---|---|---|
| 호출주체 | 게임서버(s2s API) | |
| 도메인 | 각 환경별 도메인 | |
| 인증방식 | HTTP 헤더 인증 정보 | |
| HTTP 메소드 | POST | |
| Content-Type | application/x-www-form-urlencoded |
Request
HTTP Request end point
POST https://각 환경별 빌링시스템 도메인/billing/api-game/v1/purchase/epic/games/completed/ownership/get
HTTP Request Header
- 아래의 HTTP Header들을 API 요청에 포함시켜야합니다.
| 이름 | 값 | 비고 |
|---|---|---|
| X-Req-Pjid | 프로젝트ID | 기술 PM 등에게 전달받은 프로젝트ID |
| X-Auth-Access-Key | 인증용 키 | 기술 PM 등에게 전달받은 해당 게임용 인증 키 |
HTTP Request Parameter
- Content-Type: application/x-www-form-urlencoded 으로 요청되어야 합니다.
| 이름 | 데이터 타입 | 필수 여부 | 설명 | 예 |
|---|---|---|---|---|
| pjid | String(20) | Y | 프로젝트ID
| 1202 |
| boid | String(20) | Y | 빌링 시스템 구매 예약 API를 통해서 생성된 ID | 1234 |
| productId | String(200) | Y | 구매 예약 후 완료한 상품ID
| |
| playerId | String(50) | Y | 결제를 진행하는 유저의 ID
|
Response
응답은 JSON형태로 전달됩니다.
Response property
| key | data type | description | example |
| playerId | String(50) | 구매를 진행한 유저의 ID | |
| productId | String(200) | 구매한 상품ID | epic_base_game |
| owned | boolean | 권한 소유 여부
| true 또는 false |
Sample
Success sample
{
"resultCode": "SUCCESS",
"resultMessage": "request success",
"resultData": {
"playerId": "playerId",
"productId": "epic_base_game",
"owned": true
}
}
Error sample
- 구매 완료된 상품과 다른 상품의 정보조회 요청
{
"resultCode": "INVALID_PARAMETER",
"resultMessage": "ProductId mismatch. Completed: epic_base_game_01, Req: epic_gem_01",
"traceId": "b_5e019bc114e7"
}
- 소모성 구매에 대한 오너쉽 정보 요청
{
"resultCode": "INVALID_PARAMETER",
"resultMessage": "Ownership check is only available for durable products. ProductId: epic_test_gem_01",
"traceId": "b_6899334d6fca"
}
에러 코드 정의
- 아래와 같은 에러코드가 resultCode에 응답될 수 있습니다. (참고 링크)
- 아래의 에러코드들은 모든 빌링 API에서 발생 가능한 에러 코드들입니다.
- 해당 에러코드 외에 각 API에서만 발생가능한 에러코드들도 있습니다.
- 각 에러 코드를 바탕으로 필요시 비즈니스 로직을 작성하시면 됩니다.
| 에러코드 | 비고 |
|---|---|
| SYSTEM_ERROR | 빌링 API에서 발생한 시스템 에러
|
| NOT_ALLOW_AUTH | API 인증 헤더 누락이거나 기타 권한이 없는 요청에서 발생 |
- 아래 에러 코드들은 해당 API에서 발생 가능한 추가 에러 코드들입니다.
| 에러코드 | 비고 |
|---|---|
| INVALID_PARAMETER |
요청 curl 샘플
- 도메인 및 인증 헤더 등은 변경 필요
curl -X 'POST' \
'http://localhost:10001/billing/api-game/v1/purchase/epic/games/completed/ownership/get' \
-H 'accept: application/json;charset=UTF-8' \
-H 'X-Req-Pjid: 1202' \
-H 'X-Auth-Access-Key: 인증키 입력' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'pjid=1202&boid=1&productId=epic_base_game_01&playerId=playerId'