복수PG 설정 및 사용하기


이 문서는 아임포트 관리자 콘솔에서 복수의 PG사를 설정하여 원하는 결제 수단으로 결제창을 수행하는 방법을 설명합니다.

이 문서의 예제는 다음의 PG 설정들을 순서대로 추가하는 방법을 설명합니다.

  1. 기본 PG사로 KG이니시스 설정
  2. 정기 결제용 KG이니시스 설정
  3. 간편 결제용 카카오페이 설정

관리자 콘솔에서 복수PG 설정하기

아임포트 라이브러리를 사용하기 전에 관리자 콘솔에서 사용할 기본 PG사와 필요 시 추가 PG사를 설정해야 합니다.
1기본 PG사 설정하기
아임포트 관리자 콘솔 > 시스템 설정 > PG 설정 탭 > 기본 PG사 탭에서 기본 PG사주로 사용할 PG사로 설정합니다. 해당 PG사는 IMP.request_pay 함수로 결제창을 호출할 때 param.pg 속성의 기본값으로 사용됩니다. 기본값은 별도로 설정한 pg 속성 값이 없거나 유효하지 않을 경우 사용됩니다.

본 예제에서는 기본 PG사로 KG이니시스(웹표준방식)을 다음과 같이 설정했습니다.
2PG사 추가하기

정기 결제용 PG사 추가하기

먼저 KG이니시스로부터 정기 결제용 상점아이디(MID)를 추가로 발급 받습니다.

좌측의 PG사 추가 탭을 클릭합니다.
생성된 추가 PG사 탭에 정기결제를 위해 발급 받은 상점아이디 및 PG사 정보를 다음과 같이 입력합니다.

간편 결제(카카오페이)용 PG사 추가하기

이번에는 간편결제 서비스인 카카오페이를 추가합니다.

먼저 카카오페이로부터 가맹점코드(CID)를 발급 받습니다.

다시 좌측의 PG사 추가 탭을 클릭하고 PG사카카오페이로 설정합니다.

위의 과정을 통해 다음과 같이 3개의 PG 설정을 등록했습니다.
PG사상점아이디용도기본 PG사
KG이니시스MID-a(예시)일반 결제용O
KG이니시스MID-b(예시)정기 결제용X
카카오페이MID-c(예시)간편 결제용X

특정 PG사의 결제창 열기

IMP.request_pay를 호출할 때 param.pg 속성에 미리 등록한 PG사를 지정하여 해당 PG사의 결제 창을 열 수 있습니다. pg 속성에는 다음과 같은 형태의 PG 값을 지정할 수 있습니다.
  • { PG사 코드값 }
  • { PG사 코드값 }.{ PG사 상점아이디 }

pg 속성 매칭 우선순위

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

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

위에서 등록한 PG 설정 중 pg사 코드값으로만 구분할 수 있는 PG사는 카카오페이입니다.

다음과 같이 pg 속성에 kakaopay를 지정하면 등록한 카카오페이 설정으로 결제창이 호출됩니다.
  IMP.request_pay({
    pg : "kakaopay",  //카카오페이 결제창 호출
    amount : 1000,
    name : "테스트 주문",
    buyer_name : "구매자",
    buyer_email : "buyer@iamport.kr"
  });

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

위에서 등록한 PG 설정 중 KG이니시스(일반결제용)KG이니시스(정기결제용)는 PG사 코드값이 동일하기 때문에 pg 속성을 코드값과 상점아이디를 조합한 값으로 설정해서 구분해야 합니다. 구분하지 않을 경우 우선순위에 따라 설정됩니다.

KG이니시스(일반결제용) 결제창을 호출하는 예제입니다.
  IMP.request_pay({
    pg : "html5_inicis.MID-a",  // KG이니시스 일반결제창 호출(상점아이디 MID-a 적용)
    amount : 1000,
    name : "테스트 주문",
    buyer_name : "구매자",
    buyer_email : "buyer@iamport.kr"
  });
KG이니시스(정기결제용) 결제창을 호출하는 예제입니다.
  IMP.request_pay({
    pg : "html5_inicis.MID-b",  // KG이니시스 정기결제창 호출(상점아이디 MID-b 적용)
    amount : 1000,
    name : "테스트 주문",
    buyer_name : "구매자",
    buyer_email : "buyer@iamport.kr"
  });