동시 주문처리 방법 문의

동시 주문처리 방법 문의

QA

동시 주문처리 방법 문의

본문

안녕하세요.

 

영카트의 관련된 질문은 아닙니다.

 

그러나 PG사 이용에 관한 내용이라서 올려봅니다.

 

예를들어 한정수량인 경우 1개가 남았는데

 

두사람이 동시에 주문하면 어떻게 처리되는지요?

 

PG사 결제창이 뜨기 전에는 체크가 가능하지만

 

뜨고나서 결제하는 동안에

 

다른 사람이 먼저 주문을 끝냈을 경우

 

어떻게 처리하면 좋을지 모르겠습니다.

 

PG사에 문의를 해봐야 하나요?

 

즐거운 하루되세요.

이 질문에 댓글 쓰기 :

답변 3

thumb-661910739_1547100691.4313_730x455.png

영카트에서 결제요청 이후 orderformupdate.php 에서 승인요청하기 전에 체크합니다.

 

늦게 결제 하신 분은 제고가 없어서 결제 승인이 안될겁니다.

https://sir.kr/qa/178819?stx=%EB%8F%99%EC%8B%9C+%EC%A3%BC%EB%AC%B8&sst=wr_num&unanswered=0&s_tag=

여기 참고 하시면될것 같아요.

PHP로 MySql을 이용한 처리방법들에서는

보통 단발성 (즉각 수행 되는 형태) 처리 라서 큰 무리가 없지만

시스템이 복잡해지고 연동이 많아지면 많아질수록

머무르는 시간이 길어지게되서 트랜잭션 처리를 합니다.

 

트랜잭션 처리를 하더라도 질문하신 내용과 같이 

동시에 동일 Record 의 요소(item)을 접근하는경우

 

상태를 누구에게 주도권을 줄것이지에 대한 고민은 항상 따라옵니다.

 

보통 지정석 / 한정물품 따위들에 대해 이런 현상이 나옵니다만

 

이럴때는 선점(진행중)자에게 lock 을 걸어주는 경우도 있습니다.

 

그누보드 방식에서는 lock 처리가 안되기때문에

 

상태를 미리 변경해주는것도 방법입니다.

하지만

장바구니 라던지 / 진행중인 대상이 처리가 완료되지 않고 

머무르기도하고, 시스템이 다운되기도하고, 사용자가 화장실을 갔다가 잊어버리도 하고 등등

발생할수있는 케이스는 다양합니다.

 

따라서, 

진행중인 대상이 특정시간/혹은 일자가 경과할때 상태를 환원시켜주는게 필요하고

 

진행중인상태(수량 가감)에 대한 처리가 이루어지면

이후 발생건은 동시진행이 불가능하게 됩니다.

(임의의 예를들어서)

item 상태가 

1. 가능

2. 진행중

3. 완료

4. 취소

가 있다고 하면

 

주문상태는 

1.  대기 <-- 대기가 필요한경우

2.  신청중 또는 결제중 

3. 입금대기 또는 결제완료

4.  주문완료

5.  주문취소

(중간에 배송단계가 추가될수도 있지만)

 

위 주문상태에서 item과 연결되 키값이 존재해야 합니다.

item의 수량 혹은 상태와 직결되는 정보가 있다면

취소/완료시에 함께 완료/수량값을 변경처리 해야죠

 

item의 상태에 따라

단일물품, 장소, 시간예약 등에 해당될경우 

상태를 가능여부로 관리해줘야 합니다.

 

단일물품,상태를 관리한느경우

Record를 수정관리하는것보다

Record 가 새로 생성되는 인스턴스 개념으로 관리하는게 

훨씬 효율적이라고 생각합니다.

 

방법은 다양하니, 연관관계를 설계해서 진행하실때 참고하세요

 

네..저도 다방면으로 검토를 해봤는데요.
db에 저장하고 일정시간 지나면 지우는 방식으로 할까?
세션을 구워서 처리할까?
등등 생각해 봤는데요. 마땅한 방법이 없는듯 하네요.
다양한 방법 조언 고맙습니다. 즐거운 하루되세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 17,127
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT