Android용 SDK / 주문 상태 추적
  문서로 돌아가기

Android용 SDK

주문 상태 추적

주의
SDK를 사용하면 애플리케이션의 클라이언트 측에서 주문 상태를 추적할 수 있습니다. 다만 애플리케이션의 백엔드에서 주문 정보를 수신하도록 결제 웹훅 핸들러를 설정하는 것이 좋습니다. 이렇게 하면 완료된 구매에 대한 추가 유효성 검사를 구현할 수 있습니다.

사용자가 구매를 진행한 후 애플리케이션에서 수행할 수 있는 작업:

  • 애플리케이션 UI에 주문 상태 표시
  • 결제를 성공적으로 진행한 후 사용자의 잔액 적립
  • 결제를 성공적으로 진행한 후 구매한 아이템 제공

SDK를 사용하여 이러한 작업의 로직을 구현하는 경우 다음과 같은 방식으로 주문 상태를 추적할 수 있습니다.

주문 상태 변경 사항 구독

주문 상태 변경 사항을 구독하려면 스토어 라이브러리에서 getOrderStatus SDK 메소드를 사용하여 메소드에 다음 매개 변수를 전달합니다.

  • listener - OrderStatusListener 유형의 리스너 개체.
  • orderId - 장바구니, 원클릭 구매 또는 인게임 재화 구매 시 받은 매개 변수로서의 주문 ID.
SDK 참조 문서
SDK 메소드 및 해당 매개변수에 대해 알아봅니다.

XStore.getOrderStatus 메소드 호출 예시:

Copy
Full screen
Small screen
XStore.getOrderStatus(object : OrderStatusListener() {

               override fun  onStatusUpdate(status: OrderResponse.Status) {

                   if(status == OrderResponse.Status.DONE) {

                       Log.d("MainActivity", "Success")

                   }

               }

               override fun  onFailure() {

                   Log.d("MainActivity", "Failure")

               }

           }, orderId)

결제 UI를 열 때 XStore.getOrderStatus 메소드를 호출하는 것이 좋습니다.

구매 메소드는 주문 상태를 추적하는 여러 메소드를 캡슐화합니다. 추적은 다음 알고리즘에 따라 수행됩니다.

  1. 웹 소켓 연결이 설정되었습니다.
  2. 웹 소켓 연결이 성공적으로 설정되고 주문 상태가 done 또는 cancel로 변경되면 추적이 중지됩니다. 웹 소켓 연결이 실패하거나 응답에 잘못된 데이터가 포함되면 쇼트 폴링을 사용하여 주문 상태를 추적합니다.
  3. 주문 상태 추적은 쇼트 폴링을 계속합니다. 간단한 HTTP 주문 상태 요청은 3초마다 한 번씩 전송됩니다. 주문 상태가 done 또는 cancel로 변경되면 추적이 중지됩니다.

주문 상태 요청

예를 들어 사용자를 결제 UI에서 애플리케이션으로 리디렉션할 때 주문 상태를 요청할 수도 있습니다. 결제 UI가 닫히는 시점을 추적하려면 XPayments 클래스로 반환하는 상태를 사용해 주세요.

주의
XPayments 클래스가 반환하는 상태는 사용자가 결제 UI에서 구매 절차를 완료했는지 여부를 나타내며 결제 트랜잭션 상태와는 동일하지 않습니다.

XPayments 클래스는 다음 상태를 반환할 수 있습니다.

  • XPayments.Status.COMPLETED - 사용자가 결제를 완료하고 애플리케이션으로 돌아갔습니다.
  • XPayments.Status.CANCELLED - 사용자가 결제를 완료하지 않고 결제 UI를 닫았습니다.
  • XPayments.Status.UNKNOWN - 은행이 거래를 거부하는 등 결제 중에 오류가 발생했습니다.

결제 트랜잭션 상태를 가져오려면 Store 라이브러리에서 getOrder 메소드를 사용합니다. 쇼핑 장바구니를 통한 구매, 원클릭 구매 혹은 인게임 재화로 구매로부터 받은 주문 ID를 매개변수로 전달합니다.

이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
이 페이지 평가
이 페이지 평가
개선해야 할 점이 있을까요?

답하기 원하지 않습니다

의견을 보내 주셔서 감사드립니다!

유용한 링크

마지막 업데이트: 2024년 3월 26일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!