웹 상점 구매 제한 검증
Hive 콘솔 > 커뮤니티 & 웹 상점 > 웹 상점 > 상품 관리에서는 웹 상점 상품에 계정별 구매 제한과 구매 수량 제한을 설정할 수 있습니다. 그리고 두 설정 각각에 최대 구매 수량을 설정할 수 있습니다.
웹 상점 구매 제한 검증은 웹 상점에서 결제한 상품이 위 두 설정에 있는 최대 구매 수량을 초과했는지 검증하는 작업입니다. 여기에서는 이 작업을 위해 웹 상점 결제 정보 검증 API를 제공합니다.
개요¶
웹 상점 결제 정보 검증 API 호출을 포함한 웹 상점 구매 제한 검증 전체 과정을 요약하면 아래와 같습니다.
-
앱 개발사: PG 결제 구현과 PG사 설정을 참고해 웹 상점에서 앱 사용자가 PG 결제 시 상품을 지급하는 프로세스를 구축합니다.
-
앱 개발사: 웹 상점에서 앱 사용자가 계정별 구매 제한 및 구매 수량 제한 상품을 구매한 경우, 상품 지급 전 웹 상점 결제 정보 검증 API를 호출합니다.
-
Hive 서버: 해당 주문에서 상품의 최대 구매 수량을 초과했는지 검증합니다. 검증 후 결과를 API 응답값으로 개발사 서버에 전송합니다.
-
앱 개발사: API 응답값을 확인 후 검증 요건(예: 최대 구매 수량을 초과했는지 여부)을 통과했을 때에만 상품을 지급합니다. 만약 최대 구매 수량을 초과한 구매 주문이라면 상품을 지급하지 않고 결제 취소 처리합니다. 웹 상점은 검증 결과에 문제가 없을때에만 판매 완료한 수량으로 반영 후 상품의 잔여 수량을 감소시킵니다. API 응답값을 확인했을 때 유효하지 않은 결제로 나타난 경우, 개발사 서버에서는 상품을 사용자에게 지급하지 말고 결제 취소 처리를 해야 합니다.
Warning
위 2, 4번 단계를 구현하지 않으면 Hive 콘솔 웹 상점에서 설정한 계정별 구매 제한과 구매 수량 제한 기능이 정상적으로 동작하지 않습니다. 이 경우 웹 상점에서는 현재 판매된 수량이 없는 것으로 판단해 웹 상점에서 표기하는 상품의 잔여 수량이 감소하지 않습니다. 이는 상품을 계속해서 구매할 수 있는 상태가 됨을 의미합니다.
Note
결제 취소에 대한 자세한 사항은 지급 결과 처리를 참고하세요.
웹 상점 결제 정보 검증 API¶
웹 PG 결제를 완료한 결제 정보를 기준으로 상품의 최대 구매 수량 초과 여부 등 결제가 유효한지 검증합니다.
Request information¶
구분 | 정보 |
---|---|
상용 URL | https://shop.withhive.com/api/webstore/check-quantity-limit |
SANDBOX URL | https://sandbox-shop.withhive.com/api/webstore/check-quantity-limit |
HTTP Method | POST |
Data Format | JSON |
Request header¶
필드명 | 설명 | 타입 | 필수여부 | 비고 |
---|---|---|---|---|
Content-Type | application/json | String | Y | |
Authorization | Bearer 토큰 | String | Y | 앱센터 > 프로젝트 관리 > 게임 상세 > 기본 정보 > Hive 인증키 |
Request header sample¶
Content-Type : application/json
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAyMDU2NzI2LCJqdGkiOiIxODczMTExMzIwIn0.3soFiHTPlObCoqR5xX9ZeOQTSvnHrHDHWmopP3QfWtY
Request body¶
필드명 | 설명 | 타입 | 필수여부 |
---|---|---|---|
type | 알림 유형(paid: 결제 완료, cancelled: 결제 취소 또는 환불) | String | Y |
market_pid | 상품 고유 ID | String | Y |
order_id | 주문번호 | String | Y |
server_id | 구매한 유저가 접속한 게임 서버 구분코드 | String | Y |
appid | 게임의 웹 상점용 Appid로, 위 market_pid가 등록된 Appid | String | Y |
cs_code | 구매한 유저의 PlayerID | String | Y |
paid_datetime | 결제를 완료한 시간 (Y-m-d H:i:s) | String | Y |
quantity | 구매 수량 | String | Y |
iap_payload | 게임 서버에서 상품 지급을 위한 계정 추가 정보 | String | Y |
Request body sample¶
{
"type": "paid",
"market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01",
"order_id" : "H3175513391360875943",
"server_id" : "1",
"appid" : "com.com2us.hivesdk.windows.hivepc",
"cs_code" : "20000023100",
"paid_datetime": "2025-08-14 10:12:18",
"quantity": "10",
"iap_payload": "{\"cs_code\":20000023100,\"data\":{\"server_id\":\"1\",\"server_name\":\"Server 1\",\"channels\":{\"channel_id\":\"11\",\"channel_name\":\"Channel 11\",\"characters\":{\"character_id\":\"111\",\"character_name\":\"Character 111\"}}}}",
}
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | Integer |
msg | 응답 결과 메시지 | String |
- 100, 101 응답에만 상품을 정상 지급해야 합니다.
- 3001 응답은 이미 검증 완료된 주문 건입니다. 기존에 상품이 지급되지 않았던 경우에만 지급해야 합니다.
- 3002 응답은 상품의 최대 구매 수량이 초과한 경우입니다. 반드시 해당 주문을 결제 취소해야 합니다. 자세한 사항은 지급 결과 처리를 참고하세요.
Response body sample¶
Response codes¶
다음은 응답 코드(code
)에 대한 명세입니다.
code | msg | description |
---|---|---|
100 | success | 성공 |
101 | success(product no limit) | 성공(수량 제한이 없는 상품으로, 별도 검증 필요 없음) |
2000 | fail(method error) | 유효하지 않은 HTTP METHOD로 요청 |
2001 | fail(request parameter error) | request 파라미터가 존재하지 않음 |
2002 | fail(type parameter error) | 유효하지 않은 파라미터(type) |
2003 | fail(market_pid parameter error) | 유효하지 않은 파라미터(market_pid) |
2004 | fail(order_id parameter error) | 유효하지 않은 파라미터(order_id) |
2005 | fail(server_id parameter error) | 유효하지 않은 파라미터(server_id) |
2006 | fail(appid parameter error) | 유효하지 않은 파라미터(appid) |
2007 | fail(cs_code parameter error) | 유효하지 않은 파라미터(cs_code) |
2008 | fail(paid_datetime parameter error) | 유효하지 않은 파라미터(paid_datetime) |
2009 | fail(quantity parameter error) | 유효하지 않은 파라미터(quantity) |
2010 | fail(iap_payload parameter error) | 유효하지 않은 파라미터(iap_payload) |
2011 | fail(hiveCertificationKey parameter error) | 유효하지 않은 파라미터(hiveCertificationKey) |
3000 | fail(hiveCertificationKey invalid) | Hive 인증키 검증 실패 |
3001 | fail(already completed) | ⚠️ 이미 검증 완료되어 수량에 반영된 주문 번호 기존에 상품이 지급된 경우, 추가 상품 지급 필요하지 않음 |
3002 | fail(purchase fail, purchase cancellation required) | ⚠️ 실패(수량 제한 초과) 이미 수량 제한이 초과된 상품을 구매한 경우로, 결제 취소 처리 필요 |
500 | fail(appid in DB not exist) | 해당 appId에 매칭되는 게임 정보가 존재하지 않음 |
501 | fail(gameprefix not exist) | 해당 appId에 매칭되는 웹 상점 정보 조회 실패 웹 상점 먼저 생성 필수(커뮤니티 혹은 웹 상점을 먼저 생성해야 해당 API 사용 가능) |
502 | fail(####) | 그 외 "####" 오류 발생 |
503 | fail(product info in DB not exist) | 해당 market_pid(상품)에 매칭되는 상품 정보가 존재하지 않음 Hive 콘솔 > 커뮤니티 & 웹 상점 > 웹 상점 > 상품 관리에 해당 상품 먼저 등록 필요 |
504 | fail(####) | 그 외 "####" 오류 발생 |
505 | fail(temporary error : ####) | 그 외 일시적인 "####" 오류 발생 |