본문 바로가기
개발준비

모바일 이니시스 결제통보 및 결제오류

by 장김치 2016. 11. 25.

[모바일 이니시스 결제통보 및 결제오류]


P_NEXT_URL : INIStdPayNext.php         (이니시스에서 결제정보를 받음) - 1step

P_NOTI_URL : INIVBankCallback.php     (이니시스에서 결제정보를 받음) - 계좌이체에서 사용됨

P_RETURN_URL : INIStdPayReturn.php (결제내역 조회만 가능)



* 이니시스 결제 통보 플로우


1. 주문버튼 누를경우 

가. order_proc.php : od 테이블 Insert 

- od_state : 무통장,가상계좌,계좌이체의 경우 입금대기 

- od_flag : 무통장 제외 모두 A (가결제) 


2. 신용카드, 가상계좌 : P_NEXT_URL로 이동

    계좌이체 : P_NOTI_URL로 이동


가. 계좌이체(P_NOTI_URL) : od select(od_idx) -> od update (od_state:1, od_flag=B)

나. 신용카드(P_NEXT_URL) : od select(od_idx) -> od update (od_state:5, od_flag=B)

다. 가상계좌(P_NEXT_URL) : od select(od_idx) -> od_pay insert(od_idx, moid, od_flag=A)  -> P_NOTI_URL : od_pay select(moid) -> od_pay update(op_flag:B) -> od update(od_state:1)







* 결제 중간에 취소할경우 관리자에 입금완료라고 들어가는 오류 해결


플로우 : 

가맹점 주문페이지 -> 이니시스 결제모듈 -> PG Bank App -> 이니시스 결제모듈로 돌아감(P_NOTI_URL로 데이터를 쏴줌) -> P_RETURN_URL로 이동 -> 사이트내 결제 완료 페이지로 이동 


1) P_NOTI_URL에서 이니시스에서 쏴주는 데이터를 받은 후 가결제 주문건에 대해 update를 해주어야 한다. 


2) P_RETURN_URL에서는 2가지를 체크해주어야 한다. PG Bank App을 실행했으나 최종 결제까지 가지않고 취소하는 경우에 대한 예외처리를 해야하기 때문이다. 이것을 안하게 되면 돈은 결제되지 않았는데 관리자에서는 입금완료주문이라는 아주 큰 불상사가 생긴다.


가. 주문테이블에서 결제수단 체크 (계좌이체인경우)

나. 계좌이체인 경우 가결제인지 체크

다. 가결제라면 에러메세지 띄워주기


3) PG Bank App을 종료했을때 P_NOTI_URL에서 받아지는 데이터가 없기 때문에 업데이트가 되지 않는다. 그래서 2번과 같은 체크하는 분기문으로 들어가게 되고 그래서 관리자/사용자 모두에게 불상사가 일어나지 않는다.