[모바일 이니시스 결제통보 및 결제오류]
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번과 같은 체크하는 분기문으로 들어가게 되고 그래서 관리자/사용자 모두에게 불상사가 일어나지 않는다.
'개발준비' 카테고리의 다른 글
카카오톡 링크보내기 여러개 / 카카오톡 캐시삭제 (0) | 2017.03.21 |
---|---|
도메인 포워딩서비스 이용시 유의사항 (0) | 2016.11.29 |
이니시스 2 [js] (0) | 2016.11.18 |
이니시스 정리 1 [모바일] (0) | 2016.11.18 |
읽기 좋은 코드가 좋은코드다 (0) | 2016.11.18 |