사용자 주문 상태 가져오기
사용자 주문 상태 가져오기
사용자 주문 상태를 가져오는 방법:
웹훅을 통해 서버 측에서 사용자 주문 상태 가져오기
서버에서 웹훅을 구성한 후 이를 사용하여 주문 세부 정보 및 상태를 가져올 수 있습니다.WebSocket API 또는 IGS API를 통해 클라이언트 측에서 사용자 주문 상태 가져오기
서버가 없거나 클라이언트 측에서 구매 처리 로직을 구현하는 경우 사용할 수 있는 방법:WebSocket API를 사용하여 클라이언트 측에서 주문 상태 가져오기
이 솔루션은 websockets를 사용하여 주문 상태를 가져옵니다. 이때 주문에 대한 자세한 정보는 가져오지 않습니다. 이 메소드는 클라이언트(예: 웹사이트 또는 모바일 애플리케이션)와 엑솔라 서버 사이에 단 하나의 연결만 생성하므로 클라이언트나 서버에 추가 부하가 발생하지 않아 권장됩니다.
알림
웹훅을 처리할 자체 서버가 없거나 클라이언트 측 구매 처리 로직을 사용하는 경우, Centrifuge SDK를 사용하는 WebSocket API를 사용할 수 있습니다.
다음 단계를 완료해 주세요.
- 엑솔라 웹 소켓 서버와 클라이언트가 주문 상태 메시지를 식별할 수 있도록 연결을 생성합니다.
Copy
- javascript
const client = new Centrifuge(
connectionURL,
{
data: {
user_external_id: user_external_id,
auth: auth,
project_id: project_id
}
}
)
connectionURL - wss://ws-store.xsolla.com/connection/websocket
auth - user JWT token
- 주문 상태에 대한 새 메시지를 받으려면
client.on
함수를 사용하여 이벤트를 구독해 주세요.
Copy
- javascript
client.on('publication', (ctx) => {
//handle the status
});
- 실제 연결 설정 트리거:
Copy
- javascript
client.connect()
- 주문 상태의 변경 사항 기록을 받으려면 API 기록 메소드를 연결합니다.
Copy
- javascript
client.on('subscribed', function (ctx) {
client.history(ctx.channel, { limit: -1, since: { offset: 0 }, reverse: false }).then(function (resp) {
resp.publications.forEach((ctx) => {
/handle the status
});
}, function (err) {
//handle the status
});
});
메시지 본문 예시:
Copy
- javascript
{
order_id: 59614241,
status: 'new'
}
다음 주문 상태가 가능합니다.
New
- 주문이 생성되었지만 지불되지 않음Paid
- 주문 지불 완료Done
- 주문 전달이 완료됨(모든 영수증 전송 완료, 엑솔라 및 외부 플랫폼 등에서 전달됨)Canceled
- 주문이 취소되었으며 사용자에게 환불이 완료됨
웹 소켓을 통한 응답에 필요한 시간은 5분입니다. 이후에 또는 웹 소켓에 문제가 있는 경우 쇼트 폴링을 사용하는 것이 좋습니다.
쇼트 폴링
상태로 전환한 후 주문 아이템에 대한 자세한 정보를 가져오려면 주문 가져오기 API를 호출하세요.
알림
정기 주문 상태 폴(주문 상태 및 주문 정보를 수신하는 간단한 HTTP 요청)을 사용합니다. 요청 사이에 권장되는 지연 시간은 3초입니다.
이 기사가 도움이 되었나요?
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.