이니시스 모바일 결제 연동

PG사를 통한 결제 연동

자사 서비스에 결제를 붙이기 위해서는 PG사와 계약 후 진행해야 합니다.

각 카드사별로 계약을 한 후 연동이 어려울 뿐만 아니라 일정 볼륨이 되지 않으면 카드사에서 개별 계약이 되지 않기 때문에 PG를 통해 결제를 연동하는 방법이 좋습니다.

우리나라 PG사는 이니시스, LG U+, KCP 등이 있는데 그중에서 이니시스 모바일 결제 모듈 INIpay(Mobile) 연동 구성을 정리하겠습니다.

결제 연동 시 사용되는 인프라 구성

  • WEB Server: Node 6
  • API Server: Spring 4
  • DB: MariaDB
  • Infra: AWS

결제 프로세스 정리

자사 결제 페이지 부터 결제 프로세스의 시작으로 보면 됩니다.

자사 결제 관련 정보(상품명, 가격, 수량 등)을 DB에 저장 후 이니시스 결제 페이지로 redirect가 되는 구조입니다.

자세한 내용은 아래에서 정리합니다.

1. 자사 서비스 결제 화면

  1. 자사 서비스의 주문페이지 요청
  2. 주문 페이지를 사용자 화면에 노출
  3. 주문 정보(상품명, 가격, 수량 등)을 DB에 저장
  4. 이니시스 결제 페이지로 redirect

2. 이니시스 결제 화면

여기서 부터는 이니시스 페이지가 보여집니다.

이니시스 페이지에서 약관동의 후 결제할 카드를 선택합니다.

그러면 선택한 카드사 결제페이지에서 결제완료 후 자사 결제 완료 화면으로 redirect 되며 결제가 완료됩니다.

시스템 구성도에서는 위와 같은 플로우로 움직입니다.

이니시스 결제 시 일어나는 network 패킷

위의 그림은 이니시스 서버에서 사용자 결제가 끝난후 WebServer로 Callback을 주는데 까지의 내용입니다.

이니시스에서 마지막으로 응답을 주는 check.php에서 WebServer로 결제 관련 내용을 전달합니다.

P_TID, P_REG_URL 등의 정보를 자사 callback 으로 전달합니다.

파라미터의 상세 내용은 이니시스 문서를 참고하시면 됩니다.

check.php 응답 내용

1
2
3
4
5
function returnAuth() {
var form = document.getElementById("return_form");
form.action = "http://localhost:8080/order/callback";
form.submit();
}

결론

처음 결제 연동을 할 때 자사 서비스와 PG사와 통신 부분이 잘 들어오지 않습니다.

그러나 해당 프로세스를 이해하고 나면 HTTP 통신으로 다 끝나기 때문에 크게 어렵지 않습니다.

  • PC 결제는 INIpay(WebStandard) 모듈을 연동되며 크게 다르지 않습니다.