보통 결제모듈을 달면 (이니페이 다우페이 뱅크웰 등등)
클라가 결제 요청 후 결제가 성공시에 PG사에서 결제결과를 특정 제사이트 URL 경로로 결과값을 보내주잖아요?
저는 보통 이렇게 결제결과를 PG사에서 보내줄때 DB에 결제내역을 INSERT 시키는데
요번에 장바구니 기능을 구현 도중 한번에 여러 상품들을 결제 시켜야해서 상품코드를 :로 구분해서 1:2:3:4 이런식으로 PG사에 보내는데
파라미터가 최대 제한이 100이라서 만약 상품코드가 19087:9232:2342:.. 이런식으로 많아져서 나중에 100자가 넘게되는경우 최대제한이 100이라서 짤리게 되서 치명적인 오류가 발생할텐데
그래서 생각한 방식이 클라가 결제 요청시 미리 DB에 INSERT를 시키고 결제내역테이블의 시퀀스값을 PG사로 보내고 결제 성공시 PG사가 백노티로 요청이 오면 안의 정보랑 시퀀스를 비교해서 맞으면 결제내역테이블 컬럼값 예를들어 isSuccess 같은 컬럼값을 true로 변경해서 결제를 완료시키는 방법으로 할까 하는데
주위에 조언할 사람이 아무도 없어서 항상 혼자 생각대로 코드로직을 구현했는데 이번엔 뭔가 조언을 좀 구해야 할 것 같아서..
아이티계 왕따 초짜에게 조언좀 부탁드립니다^^
디비에 인서트하기전까진 시퀀스가 생성되지않으니 디비에 먼저넣고 그 시퀀스를 받아다가 pg사로 넘기려는 것이군
구매한 모든 상품의 코드를 넘기는건 당연히 미친짓이니까 시퀀스만 넘기는게맞지. 통신실패나 오류시에 이미 인서트된 로우를 어떻게할지만 잘 해놓으면 될듯
오.. 조언 감사드립니다 덕분에 좀더 확신이 생겼네요!