영수증 검증에서 중복 영수증 로그

  • 베이스/채팅/데이터베이스/월드 SDK 버전 : 5.18.17
  • 프로젝트명 : Merge Cooktopia

뒤끝 영수증 검증 페이지에서 일부 구매의 중복을 발견하여 원인을 확인하고자 문의드립니다.

주문 ID와 Token, 거래일시까지 완벽하게 동일합니다.
실제로 영수증 검증 요청이 중복되었는지? 혹은 콘솔상의 단순 오류인지 확인해주시면 감사하겠습니다.

아래는 중복된 주문 ID들입니다.

  • GPA.3350-6184-4963-38551
  • GPA.3341-7594-7280-59668
  • 510002916709210

안녕하세요 개발자님,
콘솔 조회 미동의로 인해 상세 정보 확인에 어려움이 있습니다.
영수증 ID만으로는 정확한 검증 내역 확인이 불가합니다.

프로필 메뉴 내 콘솔조회 동의 후 회신하여주시면 확인하여 안내드리겠습니다.

커뮤니티에서 일반관리자로 로그인이 불가능해서 프로젝트와 무관한 개인 계정으로 문의드립니다. 혹시 다른 방법이 있을까요?

관리자 계정을 통해 커뮤니티가 아닌 콘솔 내에서 설정해주셔야합니다.
[콘솔 => 프로필 설정 => 콘솔조회 동의] 경로에서 진행 가능합니다.

image

콘솔조회 동의 완료했습니다.

확인 결과, 해당 유저들의 동일한 결제 건에 대한 영수증 검증 요청이 약 0.03초 미만 간격으로 두 차례 뒤끝 서버에 전달된 것으로 확인되었습니다.
두 요청의 결제 정보는 동일했으며, 실제로 결제가 두 번 발생한 것이 아니라 클라이언트의 IAP 처리 과정에서 같은 결제 건이 중복으로 전달된 것으로 보입니다.

IAP 결제 과정에서는 아래와 같은 경우 동일한 결제 건의 검증 요청이 두 번 이상 전달될 수 있습니다.

1. 검증 요청 재시도
검증 요청을 보낸 뒤 네트워크 지연, 응답 타임아웃, 앱 종료 등으로 결과를 받지 못하면, 클라이언트가 결제가 완료되지 않은 것으로 판단하여 같은 결제 정보를 다시 보낼 수 있습니다.

2. 여러 처리 경로에서 동일 거래 전달
결제 직후 실행되는 처리 로직과 미완료 거래를 감지하는 리스너가 같은 거래를 각각 처리하면, 검증 요청이 중복으로 전달될 수 있습니다.

중복요청 내역들은 모두 스토어 검증에서 모두 유효한 영수증으로 확인되어 각각 성공으로 반환되었습니다.
스토어의 검증 성공은 전달된 영수증이 유효하다는 의미이며, 결제가 두 번 발생했다는 의미는 아닙니다.

뒤끝에서도 영수증 정보를 기준으로 동일 결제 건의 중복 처리를 막는 로직을 적용하고 있습니다.
다만 이번처럼 같은 요청이 거의 동시에 처리되는 경우, 요청 간 경합으로 중복 방지 로직이 온전히 동작하지 않을 수 있음을 확인했습니다.
이는 보완이 필요한 부분으로 판단하여 내부 담당 부서에 전달했으며, 동시 요청 상황에서도 중복 처리가 발생하지 않도록 개선을 검토하겠습니다.

클라이언트에서도 영수증 검증 요청이 동기처리 방식을 사용하여 동시에 전달되지 않도록 구성해 주시기를 권장드립니다.
동일한 결제 건에 대해 검증 요청이 여러 번 발생하더라도, 이전 요청의 응답을 받은 뒤 다음 요청이 전달되도록 순차적으로 처리해 주시면 뒤끝의 중복 방지 로직이 적용되게 됩니다.

좋아요 1

넵 확인 감사합니다!
클라 로직도 검토해보겠습니다.

좋아요 1