이번이 3번째 동일 질문인데요, Server API가 변경되어 문의를 드리고 있는데, SDK 업데이트에 대한 안내만 받고 있습니다. 확인 부탁 드립니다.
클라이언트에서 구매를 진행하고 Server to Server로 OrderID로 구매 확인을 진행하는 부분에서 명시된 가이드와 다른 값이 전달되어 아이템 지급을 못하고 있습니다.
구매 완료에 대한 상태값이 다르게 전달되고 있습니다.
기존에는 상태값이 “PURCHASED” 전달되었으나, 최근에는 “PAYMENT_COMPLETED” 값이 전달되고 있습니다.
API 응답이 변경되었는지, 저희가 호출을 잘못 하고 있는지 확인 부탁 드립니다.
- Client → createOneTimePurchaseOrder 실행
- params.processProductGrant(orderId) 이벤트를 통해 결제 내역 확인 및 아이템 지급 후 결과값 리턴
여기서 결제가 유효한지 확인을 위해 Server to Server 통신(get-order-status)
Server to Server 통신의 Response 값중 ‘status’값이 가이드와 상이하게 전달됨
아래는 저희가 참고한 API 가이드입니다.
————————————————————————————————————————————————————————————
3. 결제 상태 조회하기
인앱결제 주문건의 거래 상태를 조회해요.
상황에 따라, 승인 혹은 환불 응답을 수신하지 못한 경우에도 활용 가능해요.
-
Content-type : application/json
-
Method :
POST -
URL :
/api-partner/v1/apps-in-toss/order/get-order-status
참고하세요
앱인토스는 결제 완료 후 구글/애플 영수증까지 확인하여, 결제가 성공되면 승인 결과를 내려드려요
요청 헤더
| 이름 | 타입 | 필수값 여부 | 설명 |
|---|---|---|---|
| x-toss-user-key | string | Y | 토스 로그인을 통해 획득한 userKey 값 |
요청 파라미터
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
| orderId | String | Y | 결제 생성 후 취득한 주문번호(uuid v7) |
{
"orderId": "13c9a1ff-2baa-4495-bbfa-a0826ba8c7c0"
}
응답
| 이름 | 타입 | 설명 |
|---|---|---|
| orderId | String | 요청한 주문번호 |
| sku | String | 주문한 상품 ID |
| statusDeterminedAt | String | 주문 완료 일시 (yyyy-MM-dd’T’HH:mm:ssZ) |
| status | String | 주문에 대한 상태 (enum) |
| reason | String | 상태에 대한 설명 |
status (enum)
| 상태 | 설명 |
|---|---|
| PURCHASED | 구매 완료 |
| ORDER_IN_PROGRESS | 주문이 진행 중 |
| FAILED | 주문이 실패함 |
| REFUNDED | 주문이 환불됨 |
| NOT_FOUND | 주문을 찾을 수 없음 |
| MINIAPP_MISMATCH | 주문한 상품이 해당 앱에서 판매하는 상품이 아님 |
| ERROR | 내부 상태 이상 |
{
"resultType": "SUCCESS",
"success": {
"orderId": "13c9a1ff-2baa-4495-bbfa-a0826ba8c7c0",
"sku":"ait.0000010000.af647449.3bd55cfd00.0000000475",
"statusDeterminedAt":"2025-09-12T16:57:12",
"status": "ORDER_IN_PROGRESS",
"reason": "진행 중인 주문입니다."
}
}
내부 테스트 결과
기존 응답값
{“orderId”:“1a0c4437-60f3-4258-9132-dcc960aee801”,“status”:“PURCHASED”,“reason”:“완료된 주문이에요.”}
현재 응답값
{“orderId”:“20e47c63-47e5-4972-a74c-9804fd584648”,“sku”:“ait.0000009485.3df5aacd.5e882a5953.7407802466”,“status”:“PAYMENT_COMPLETED”,“statusDeterminedAt”:“2025-09-25T16:30:26”,“reason”:“결제가 완료되었어요.”}