키움페이 (다우데이타/페이조아)

키움페이 연동 방법을 안내합니다.

1. 키움페이 채널 설정하기

결제대행사 채널 설정하기 페이지의 내용을 참고하여 채널 설정을 진행합니다.

2.결제 요청하기

JavaScript SDK IMP.request_pay(param, callback)을 호출하여 키움페이 결제창을 호출할 수 있습니다. 결제 결과는 PC의 경우 IMP.request_pay(param, callback) 호출 후 callback으로 수신되고 모바일의 경우 m_redirect_url로 리디렉션됩니다.

키움페이 결제창 연동을 위해서는 JS SDK Version 1.2.0 이상을 사용하셔야 합니다.

Javascript SDK
IMP.request_pay( { channelKey: "{콘솔 내 연동 정보의 채널키}", pay_method: "card", merchant_uid: "mid_1234567890", escrow: false, amount: 1004, name: "노스페이스 롱패딩 M", buyer_name: "홍길동", buyer_email: "hello@world.com", buyer_tel: "01012345678", digital: false, // 디지털로 계약되었다면 true로 설정 m_redirect_url: "https://allerts.com/payments/complete", bypass: { // 키움페이 전용 파라미터 daou: { PRODUCTCODE: "portone", CASHRECEIPTFLAG: 0, }, }, app_scheme: "portoneappscheme", }, function (rsp) { // callback 로직 // * ...중략... * }, );

주요 파라미터 설명

channelKey: string

채널키

결제를 진행할 채널을 지정합니다.

포트원 콘솔 내 [결제 연동] - [연동 정보] - [채널 관리] 에서 확인 가능합니다.

(최신 JavaScript SDK 버전부터 사용 가능합니다.)

pg(deprecated)?: string

PG사 구분코드

daou 로 지정하면 됩니다.

pg 파라미터는 지원 중단 예정입니다.

JS SDK를 가장 최신 버전으로 업그레이드 후 channelKey 파라미터로 채널 설정(PG사 구분)을 대체해주세요.

pay_method: string

결제수단 구분코드

  • card (신용카드)
  • trans (실시간 계좌이체)
  • vbank (가상계좌)
  • kakaopay (카카오페이)
  • naverpay (네이버페이)
  • payco (페이코)
  • samsung (삼성페이)
  • applepay (애플페이)
merchant_uid: string

주문번호

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

digital: string

디지털 컨텐츠 여부

고객사 <-> 키움페이간 계약 상태에 따라 정해진 올바른 값을 넣어야 함. 그렇지 않은 경우 결제 진행 불가

bypass.daou.PRODUCTCODE?: string

결제 상품 고유 번호

값에 대해 정해진 규격이 없고 보내지 않을 경우 포트원에서 기본값(iamport)을 설정해 키움페이 측으로 전달

bypass.daou.CASHRECEIPTFLAG?: number

현금영수증 발급 구분코드

실시간 계좌이체, 가상계좌, 카카오페이 거래 시 키움페이에서 현금영수증 자동발급 여부 구분코드

  • 실시간 계좌이체, 가상계좌인 경우

    • 1: 허용
    • 0: 차단
  • 카카오페이인 경우

    • Y: 허용
    • N: 차단
app_scheme?: string

모바일 앱 URL Scheme

모바일 앱 환경에서 결제시 필수 파라미터

amount: number

결제금액

string 이 아닌 점에 유의하세요.

escrow?: boolean

에스크로 설정여부

계좌이체,가상계좌만 지원됩니다.

API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.

일회성 결제 요청하기

REST API POST /subscribe/payments/onetime을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다.

curl -H "Content-Type: application/json" \
     -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \
     https://api.iamport.kr/subscribe/payments/onetime

빌링키 발급 요청하기

REST API POST /subscribe/customers/{customer_uid}를 호출하여 빌링키 발급을 요청합니다.

curl -H "Content-Type: application/json" \
     -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \
     https://api.iamport.kr/subscribe/customers/your-customer-unique-id

빌링키 발급 및 최초 결제 요청하기

REST API POST /subscribe/payments/onetime을 호출하여 빌링키 발급과 최초 결제를 요청합니다.

  • customer_uid : 빌링키 등록을 위해서 지정해야 합니다.
curl -H "Content-Type: application/json" \
     -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \
     https://api.iamport.kr/subscribe/payments/onetime

빌링키로 결제 요청하기

빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 customer_uid 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 customer_uid를 이용해서 재결제(POST /subscribe/payments/again) REST API를 다음과 같이 호출합니다.

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

자세한 가이드는 아래 링크를 참조하세요

비인증결제 연동하기

3. 부가기능

{
  "display": {
    "card_quota": [6] // 할부개월 6개월까지만 활성화
  }
}

파라미터 설명

display?: object

결제창에 렌더링될 카드 할부 개월수 리스트 설정값

card_quota: number[]

할부 개월수

예시

  • []: 일시불만 결제 가능
  • 2,3,4,5,6: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능
  • 3: 일시불을 포함한 2,3개월까지 할부개월 선택 가능

할부결제는 5만원 이상 결제 요청시에만 이용 가능합니다.

{
  "card": {
    "direct": {
      "code": "367",
      "quota": 3
    }
  }
}

파라미터 설명

card?: object
direct?: object
code?: string

카드사 금융결제원 표준 코드

카드사 코드 참조

quota?: number

할부 개월 수

일시불일 시 0 으로 설정됩니다.

에스크로 결제를 위해서는 escrow 파라미터를 추가하고 true 값으로 설정해야 합니다. 에스크로 결제가 완료되면 고객사는 배송정보 등록을 진행해야 하며 해당 작업이 누락되는 경우 정산이 진행되지 않습니다. 배송정보 등록배송수정 API 를 이용하여 배송정보를 관리할 수 있습니다.

API Body 예시
{ "logis": { "invoice": "1728384716123", "company": "CJGLS", "receiving_at": "20220215", "address": "성수이로20길16" }, "receiver": { "name": "홍길동" }, "sender": { "relationship": "본인" } }

주의사항

  • 에스크로 배송정보 등록/수정 시 고객사가 전달한 배송정보(운송장 번호, 택배사 이름 등)에 대해 키움페이 측에서 유효성 체크를 하지 않습니다.