# 페이코

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

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

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

### 1. 페이코 PG 설정하기

[**페이코 설정**](https://portone.gitbook.io/docs/ready/2.-pg/pg/payco) 페이지의 내용을 참고하여 PG 설정을 진행합니다.

![](https://2409678497-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwWX2hlvRZLZrXeH1aacF%2Fuploads%2Fgit-blob-57936e5541b414edca2f4fab604af7820c24960f%2F%EC%8A%A4%ED%81%AC%EB%A6%B0%EC%83%B7%202022-06-01%20%EC%98%A4%ED%9B%84%206.25.22.png?alt=media)

### 2.결제 요청하기

[JavaScript SDK](https://portone.gitbook.io/docs/sdk/javascript-sdk-old) IMP.**request\_pay**(param, callback)을 호출하여 페이코 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 IMP.request\_pay(param, callback) 호출 후 <mark style="color:red;">**callback**</mark> 으로 수신되 모바일의 경우 <mark style="color:red;">**m\_redirect\_url**</mark> 로 리디렉션됩니다.

{% tabs %}
{% tab title="인증결제창 요청" %}
{% code title="Javascript SDK" %}

```javascript
IMP.request_pay({
    pg : 'payco.{CPID}',
    merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호
    name : '주문명:결제테스트',
    amount : 1004,
    buyer_email : 'test@portone.io',
    buyer_name : '구매자이름',
    buyer_tel : '010-1234-5678',
    buyer_addr : '서울특별시 강남구 삼성동',
    buyer_postcode : '123-456'
}, function(rsp) { // callback 로직
	//* ...중략... *//
});
```

{% endcode %}

**주요 파라미터 설명**

**`pg`** <mark style="color:green;">**string**</mark>

**PG사 구분코드**

**`payco`** 로 지정하면 됩니다.

**`pay_method`** <mark style="color:red;">**\***</mark> <mark style="color:green;">**string**</mark>

**결제수단 구분코드**

* card (신용카드)
* trans (실시간 계좌이체)
* vbank(가상계좌)

**`merchant_uid`** <mark style="color:red;">**\***</mark> <mark style="color:green;">**string**</mark>

**`주문번호`**

매번 고유하게 채번되어야 합니다.

**`buyer_tel`** <mark style="color:red;">**\***</mark> <mark style="color:green;">**`string`**</mark>

**구매자 연락처**

필수 파라미터 입니다.

**`amount`** <mark style="color:red;">**\***</mark> <mark style="color:purple;">**`integer`**</mark>

**결제금액**

<mark style="color:green;">**string**</mark> 이 아닌점에 유의하세요

{% embed url="<https://codepen.io/chaiport/pen/PoQebLQ>" %}
페이코 인증결제 창 예시
{% endembed %}
{% endtab %}

{% tab title="정기 결제창 요청" %}
인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다.

{% hint style="info" %}
**amount 금액**

* 금액이 설정되어도 실결제는 발생되지 않습니다.
  {% endhint %}

{% code title="JavaScript SDK" %}

```javascript
IMP.request_pay({
        pg : 'payco.{CPID}', 
	merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호
	name : 'PAYCO 자동결제 등록',
	amount : 1000, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다.
	customer_uid : 'your-customer-unique-id', // 필수 입력.
	buyer_email : 'test@portone.io',
	buyer_name : '포트원',
	buyer_tel : '02-1234-1234'
}, function(rsp) {
	if ( rsp.success ) {
		alert('빌링키 발급(자동결제 등록) 성공');
	} else {
		alert('빌링키 발급(자동결제 등록) 실패');
	}
})
```

{% endcode %}

**주요 파라미터 설명**

**`pg`** <mark style="color:green;">**string**</mark>

**PG사 구분코드**

**`payco`** 로 지정하면 됩니다.

**`customer_uid`** <mark style="color:green;">**string**</mark>

**카드 빌링키**

비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다.

**`amount`** <mark style="color:purple;">**Integer**</mark>

**결제금액**

금액이 설정되어도 실 결제는 발생되지 않습니다.

**빌링키(customer\_uid)로 결제 요청하기**

빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer\_uid를 가맹점 내부서버에 저장하시고 [<mark style="color:blue;">**비 인증 결제요청 REST API**</mark>](https://portone.gitbook.io/docs/api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다.

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

```
curl -H "Content-Type: application/json" \   
     -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \
     https://api.iamport.kr/subscribe/payments/again
```

{% endcode %}
{% endtab %}

{% tab title="정기결제 API 방식" %}
**페이코는 API 비 인증 결제를 지원하지 않습니다.**
{% endtab %}
{% endtabs %}
