# 복수 PG설정 및 사용하기

{% hint style="warning" %}
**Deprecated**

이 문서는 더 이상 관리되지 않습니다.

[PortOne 개발자센터](https://developers.portone.io/)를 이용해주세요.
{% endhint %}

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

### 1. 인증결제(일반결제) 설정하기

[**포트원 관리자 콘솔 > 시스템 설정 > PG 설정 탭 > 기본 PG사 탭**](https://admin.portone.io/settings#tab_pg)에서 `기본 PG사`를 **주로 사용할 PG사**로 설정합니다.

![인증결제(일반결제) 설정하기](/files/9bBPrC2wqO8vPKcIbfy4)

### 2. 정기 결제용(비 인증/**PG사 결제창 이용**) PG사 추가하기

PG사로부터 정기결제용(비 인증) 상점ID(MID)를 추가로 발급 받은 이후 해당 MID정보를 [**포트원 관리자 콘솔 > 시스템 설정 >PG설정(일반결제 및 정기결제)**](https://admin.portone.io/settings#tab_pg) 메뉴에 추가 합니다.

![새로운 PG사 추가 화면](/files/QiHDh4bFMdNDKpKkNAuf)

### 3. **간편결제(카카오페이) 추가하기**

동일한 방법으로 카카오페이를 추가 합니다.

![간편결제 카카오페이 등록 예시](/files/d0YUKYJ0G8ifPbYmFVXv)

## 특정 PG사의 결제창 열기 <a href="#pg" id="pg"></a>

결제창을 호출하기 위한 [**JavaScript SDK**](/docs/sdk/javascript-sdk-old.md) `IMP.request_pay`를 호출할 때 `param.pg` 속성에 미리 등록한 PG사를 지정하여 해당 PG사의 결제 창을 호출 할 수 있습니다. `pg` 속성에는 다음과 같은 형태로 [PG 값](https://docs.iamport.kr/sdk/javascript-sdk?lang=ko#request_pay-pg)을 지정할 수 있습니다.

* **`{ PG사 코드값 }`**
* **`{ PG사 코드값 }.{ PG사 상점아이디 }`**

만약 포트원 관리자 콘솔 PG사 등록 현황이 아래와 같이 **3개의 PG설정**을 등록했다고 가정해 봅시다.

|      PG사     |    상점아이디    |     용도     | 기본 PG사 |
| :----------: | :---------: | :--------: | :----: |
| **`KG이니시스`** | `MID-a`(예시) | **일반 결제용** |    O   |
| **`KG이니시스`** | `MID-b`(예시) | **정기 결제용** |    X   |
|    `카카오페이`   | `MID-c`(예시) |   간편 결제용   |    X   |

위에서 등록한 PG 설정 중 `pg사 코드값`\*\*`{ PG사 코드값 }`\*\*으로만 구분할 수 있는 PG사는 `카카오페이`입니다. 다음과 같이 `pg` 속성에 \*\*`kakaopay`\*\*를 지정하면 등록한 카카오페이 설정으로 결제창이 호출됩니다

{% code title="client-side" %}

```javascript
 IMP.request_pay({
    pg : "kakaopay",  //카카오페이 결제창 호출
    amount : 1000,
    name : "테스트 주문",
    buyer_name : "구매자",
    buyer_email : "buyer@iamport.kr"
  });
```

{% endcode %}

위에서 등록한 PG 설정 중 \*\*`KG이니시스(일반결제용)`\*\*와 \*\*`KG이니시스(정기결제용)`\*\*는 \*\*<mark style="color:red;">**PG사 코드값이 동일**</mark>**하기 때문에 `pg` 속성을 코드값과 상점아이디를 조합한 값**`{ PG사 코드값 }.{ PG사 상점아이디 }`\*\*으로 설정해서 구분해야 합니다.

{% tabs %}
{% tab title="KG이니시스 일반결제창 호출" %}
{% code title="JavaScript" %}

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

{% endcode %}
{% endtab %}

{% tab title="KG이니시스 정기결제창 호출" %}
{% code title="JavaScript" %}

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

{% endcode %}
{% endtab %}
{% endtabs %}

{% hint style="info" %}
**pg 속성 매칭 우선순위**

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://portone.gitbook.io/docs/console/pg.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
