온라인 결제 시스템에서 중복 결제 방지 방법은 어떻게 구현하나요?
730
작성한 질문수 7
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (아마 조금은요)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
안녕하세요. "PRG Post/Redirect/Get" 강의를 듣던 중 궁금한 것이 있어 질문을 드립니다.
온라인 쇼핑몰의 백엔드 시스템을 개발하는 과정에서 한 가지 중요한 문제에 대해 의견을 구하고 싶습니다. 상황은 다음과 같습니다:
고객이 장바구니에 있는 물품을 구매하는 과정에서, 서버로의 결제 요청은 성공적으로 처리되었으나, 네트워크 문제나 기타 이유로 인해 결제 성공 응답을 받지 못하는 경우가 있습니다. 이로 인해 고객은 결제가 실패한 것으로 오해하고 같은 결제를 다시 시도할 수 있습니다. 이는 원치 않는 중복 결제로 이어질 수 있는데, 이러한 상황을 효과적으로 방지하고 관리할 수 있는 방법이 있을까요?
답변 1
0
안녕하세요. ybjeon01님, 공식 서포터즈 David입니다.
어떤 방식으로 주문이 생성되고 결제 정보가 저장되는지에 따라 달라질 것 같습니다.
일반적으로 주문 정보를 통해 결제여부를 확인할 수 있도록 합니다. 특정 식별자를 갖는 주문을 클라이언트에서 다시 결제 시도시 이미 결제가 완료된 주문임을 알려줄 수 있습니다.
이와 별개로 하나의 주문은 하나의 결제를 갖도록 되어 있고 새로운 결제 시도시 또 하나의 주문이 추가로 결제될 수도 있는 코드라면, 주문목록과 결제취소 기능을 제공한다는 가정하에 사용자 입장에서 번거롭지만 결제를 되돌릴 방법이 있기 때문에 괜찮을 것 같습니다.
감사합니다.
0
특별 식별자를 사용하는 경우, 데이터베이스에 이를 저장할 특별한 테이블이 필요하겠군요. 예를 들어, 사용자가 새로운 장바구니를 생성할 때마다 고유한 식별자가 생성되고, 이 식별자는 데이터베이스에 저장되는 방식으로요. 이런 접근 방식은 Idempotent key를 사용하는 방식과 유사한건가요?
servlet과 container에 대한 질문입니다
0
25
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
64
1
jsp 의존성 수정 요청
0
78
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
143
1
save() 메서드 문의
0
67
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
101
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
97
1
RequestMapping을 이용한 핸들러, 어댑터
0
119
2
save 후 결과화면
0
89
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
178
1
수업 코드 제공 관련 문의
0
97
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
100
3
파일 오픈 시
0
70
1
스프링 배치 관련
0
78
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
95
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
79
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
75
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
139
1
html 변경하는 부분 적용 문제
0
103
1
한글 깨짐
0
76
2





