복수PG 사용 시 pg 속성 사용방법


여러분의 서비스에 다양한 이유로 여러 개의 PG사를 사용해야하는 경우가 있을 수 있습니다. 예를들면 카카오페이, PAYCO와 같은 간편결제 수단을 추가하거나 결제 방식별로 다른 PG사를 사용하는 경우가 있습니다.

이와 같은 상황에서 아임포트 관리자 대시보드에서 복수의 PG설정을 저장하고 IMP.request_pay호출 시 parampg속성을 변경하여 상황에 따라 원하는 결제창을 호출하는 방법에 대해 알아보겠습니다.

해당 문서에서는 기본 PG사이니시스를 설정하고 정기결제를 위해 또 다른 이니시스설정을 추가하며, 간편결제를 위해 카카오페이를 추가하는 예제로 설명하도록 하겠습니다.

관리자 대시보드에서 복수PG 설정하기

아임포트 JavaScript 라이브러리를 사용하기 전에 관리자 대시보드에서 사용할 기본 PG사추가 PG사를 설정해야 합니다.
1기본PG사 설정하기
아임포트 관리자 대시보드 > 시스템 설정페이지의 PG 설정 탭의 기본 PG사탭에 접근하여 기본 PG사를 설정합니다. 이때 기본 PG사로는 주로 사용할 PG사를 설정합니다. 기본 PG사로 설정한 PG사는 아임포트 JavaScript 라이브러리의 IMP.request_pay함수 호출시에 기본으로 사용됩니다.본 예시에서는 기본 PG사로 KG이니시스(웹표준방식)을 설정했습니다.

기본 PG사

IMP.request_pay(param, callback)호출 시 parampg속성에 지정한 값이 가르키는 설정을 찾지 못한 경우에 기본 PG사로 설정한 PG사의 설정으로 결제창을 호출합니다. pg속성 값의 착오 혹은 프로그래머의 실수에 의해 이와 같은 상황이 발생할 수 있기 때문에 기본PG사를 설정하여 반드시 결제창을 호출하여 매출 손실을 방지하고자 하는 아임포트의 정책입니다.
2PG사 추가하기
먼저 여러분의 서비스에 정기결제를 추가하도록 하겠습니다. 정기결제를 사용하기 위해 KG이니시스로부터 정기결제를 위한 상점아이디(MID)를 추가로 발급받은 상황을 가정하겠습니다.

좌측의 PG사 추가탭을 클릭하여 추가 PG정보를 설정할 수 있는 탭을 생성합니다.
그 다음, 생성된 추가 PG사탭에 정기결제를 위해 추가로 발급 받은 PG 정보(_i.e. 상점아이디_)를 입력합니다.정기결제를 위해 PG사KG이니시스(웹표준결제창)으로 설정하고 추가로 발급받은 PG상점아이디(MID), 웹표준결제 signKey, 빌링용 merchantKey항목에 정보를 입력했습니다.

이번에는 고객의 결제편의를 위해 간편결제 서비스 중 하나인 카카오페이를 추가하도록 하겠습니다.

마찬가지로 좌측의 PG사 추가탭을 클릭하고 PG사카카오페이로 설정합니다.
위의 과정을 통해 총 3가지의 PG정보를 등록했습니다. 각 PG설정 정보는 다음과 같다고 가정하겠습니다.
PG사상점아이디용도기본PG사
KG이니시스MID-a(예시)일반 결제용O
KG이니시스MID-b(예시)정기 결제용X
카카오페이MID-c(예시)간편 결제용X

IMP.request_pay호출 시 원하는 PG사 사용하기

아임포트 JavaScript라이브러리의 IMP.request_pay(param, callback)를 호출하여 결제 프로세스를 시작할 때 parampg속성을 통해 앞에서 등록한 PG설정 중 원하는 PG사의 결제 창을 사용할 수 있습니다. pg속성에는 다음과 같은 형태의 값을 지정할 수 있습니다.
  • { PG사 코드값 }
  • { PG사 코드값 }.{ PG사 상점아이디 }

pg속성 매칭 우선순위

관리자 대시보드에 저장한 PG설정 순서대로 pg속성의 조건과 일치하는 설정을 찾습니다. 이때 가장 먼저 매칭되는 PG설정에 해당하는 결제창을 호출합니다.

{ pg사 코드값 }으로 PG 구분하기

위의 예시에서 설정한 3가지의 PG설정 중 pg사 코드값으로 구분할 수 있는 PG사는 카카오페이입니다. 따라서 pg사 코드값을 이용해 간단히 구분할 수 있습니다.
  IMP.request_pay({
    pg : "kakaopay",  //카카오페이 결제창 호출
    amount : 1000,
    name : "테스트 주문",
    buyer_name : "구매자",
    buyer_email : "buyer@iamport.kr"
  });
위와 같이 pg속성에 kakaopay를 지정하면 관리자 대시보드의 PG설정의 카카오페이 설정에 해당하는 결제창이 호출됩니다.

pg사 코드값

  • KG이니시스(웹표준방식), 빌링결제 : html5_inicis
  • KCP : kcp
  • KCP(빌링결제) : kcp_billing
  • LGU+ : uplus
  • 나이스페이먼츠 : nice
  • JTNet : jtnet
  • 한국정보통신 : kicc
  • 블루월넛 : bluewalnut
  • 카카오페이 : kakaopay
  • 다날(휴대폰소액) : danal
  • 다날(신용카드/계좌이체/가상계좌) : danal_tpay
  • 모빌리언스 : mobilians
  • 차이 간편결제 : chai
  • 페이코 : payco
  • 시럽페이 : syrup
  • 페이팔 : paypal
  • 엑심베이 : eximbay
  • 네이버페이(주문형) : naverco
  • 네이버페이(결제형) : naverpay

{ pg사 코드값 }.{ pg사 상점아이디 }로 PG구분하기

위의 예시에서 설정한 3가지의 PG설정 중 KG이니시스(일반결제용)KG이니시스(정기결제용)는 PG사 코드값이 동일하기 때문에 pg속성에 htmlt_inicis으로 지정하는 것 만으로는 특정 PG설정을 구분할 수 없습니다. 이때에는 관리자 대시보드에서 설정한 PG설정 중 첫번째 KG이니시스의 PG설정을 사용하게 됩니다.

이러한 문제를 해결하고자 pg사 코드값pg사 상점아이디를 추가로 설정하여 동일한 PG사라도 원하는 PG설정을 가르킬 수 있습니다.

따라서 아래와 같이 pg속성을 html5_inicis.MID-b로 지정하여 KG이니시스(정기결제용)의 PG설정을 가르킬 수 있습니다.
  IMP.request_pay({
    pg : "html5_inicis.MID-b",  // KG이니시스 정기결제창 호출(상점아이디 MID-b 적용)
    amount : 1000,
    name : "테스트 주문",
    buyer_name : "구매자",
    buyer_email : "buyer@iamport.kr"
  });
같은 방식으로 pg속성을 html5_inicis.MID-a로 지정하여 KG이니시스(일반결제용)의 PG설정을 가르킬 수 있습니다.
  IMP.request_pay({
    pg : "html5_inicis.MID-a",  // KG이니시스 일반결제창 호출(상점아이디 MID-a 적용)
    amount : 1000,
    name : "테스트 주문",
    buyer_name : "구매자",
    buyer_email : "buyer@iamport.kr"
  });