Apple 검증 성공한 구매에 대해서 완료처리 요청
기본 정보
- 검증 성공한 구매 완료건에 대해서 빌링에 완료처리하는 API
- 꼭, 게임 서버에서 상품 지급 성공 후 호출되어야 합니다.
- 해당 API를 통해서 빌링 완료처리되지 않고 VERIFY_SUCCESS로 남아있는 구매 건은, 게임 서버에서 아이템이 지급되지 않은 상태로 간주되며 재 처리 대상에 포함됩니다.
| 항목 | 내용 | 비고 |
|---|---|---|
| 호출주체 | 게임서버(s2s API) | |
| 도메인 | 각 환경별 도메인 | |
| 인증 방식 | HTTP 헤더 인증 정보 | |
| HTTP 메소드 | POST | |
| Content-Type | application/x-www-form-urlencoded |
Request
HTTP Request end point
POST https://각 환경별 빌링시스템 도메인/billing/api-game/v1/purchase/apple/appstore/consumable/complete
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 으로 요청되어야 합니다.
| 이름 | 데이터 타입 | 설명 | 예 |
|---|---|---|---|
| reqId | String(100) | 중복 요청을 막거나 요청 추적을 위한 값 | userId_UUID 등과 같은 방식으로 생성 |
| pjid | String(20) | 프로젝트ID
| 1004 |
| boid | String(20) | 빌링 시스템 구매 예약 API를 통해서 생성된 ID | 1234 |
| playerId | String(50) | 결제를 진행하는 유저의 ID
|
Response
응답은 JSON형태로 전달됩니다.
Success sample
- 게임 서버에서도 필요 로그를 저장해두시는게 좋습니다.
{
"resultCode": "SUCCESS",
"resultMessage": "The verification result is normal. boid:'1'. You must process product(or items) give to user 'playerId' and requst complete billing API."
}
Error sample
- 처리할 수 있는 데이터가 없음(파라미터 확인 필요)
{
"resultCode": "INVALID_PARAMETER",
"resultMessage": "not exist matched 'boid: 1' in userPurchase"
}
에러 코드 정의
- 아래와 같은 에러코드가 resultCode에 응답될 수 있습니다. (참고 링크)
- 아래의 에러코드들은 모든 빌링 API에서 발생 가능한 에러 코드들입니다.
- 해당 에러코드 외에 각 API에서만 발생가능한 에러코드들도 있습니다.
- 각 에러 코드를 바탕으로 필요시 비즈니스 로직을 작성하시면 됩니다.
| 에러코드 | 비고 |
|---|---|
| SYSTEM_ERROR | 빌링 API에서 발생한 시스템 에러
|
| NOT_ALLOW_AUTH | API 인증 헤더 누락이거나 기타 권한이 없는 요청에서 발생 |
- 아래 에러 코드들은 해당 API에서 발생 가능한 추가 에러 코드들입니다.
| 에러코드 | 비고 |
|---|---|
| INVALID_PARAMETER |
요청 curl 샘플
- 도메인 및 인증 헤더 등은 변경 필요
curl --location 'https://billing-game-api-dev.pub-dev.hybegames.io/billing/api-game/v1/purchase/apple/appstore/consumable/complete' \
--header 'X-Req-Pjid: 9001' \
--header 'X-Auth-Access-Key: test-auth-key' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'reqId=userId_apple_complete_170083bf-8d85-433f-8bd2-67674b7482db-2023-11-29-01' \
--data-urlencode 'pjid=9001' \
--data-urlencode 'boid=1' \
--data-urlencode 'playerId=playerId'