LogoLogo
  • 포트원 서비스 업데이트 안내
    • 관리자콘솔 릴리즈노트
      • 2023-05-08 업데이트
      • 2023-04-24 업데이트
    • API/SDK 릴리즈노트
      • 2023-05-08 업데이트
      • 2023-04-24 업데이트
  • 🧩포트원 결제 연동 Docs
    • 🚗GET STARTED
  • 🛫결제 연동 준비하기
    • 🖥️1. 포트원 회원가입 하기
    • 🧷2. PG정보 설정하기
      • 🏢Payment Gateway
        • ⌨️NHN KCP 설정
        • ⌨️KG 이니시스 설정
        • ⌨️NICE페이먼츠 설정
        • ⌨️토스페이먼츠 설정
        • ⌨️KSNET 설정
        • ⌨️KICC 설정
        • ⌨️페이먼트월 설정
        • ⌨️다우 설정
        • ⌨️다날 설정
        • ⌨️JTNET 설정
        • ⌨️핵토파이낸셜 설정
          • 🚩내통장 결제
        • ⌨️KG모빌리언스 설정
        • ⌨️스마트로 설정
        • ⌨️페이팔 설정
        • ⌨️페이팔 SPB 일반결제 설정
        • ⌨️엑심베이 설정
        • ⌨️블루월넛 설정
      • ⛺간편 결제사
        • ⌨️네이버페이(결제형) 설정
        • ⌨️카카오페이 설정
        • ⌨️페이코 설정
        • ⌨️알리페이 설정
        • ⌨️토스간편결제 설정
    • ✔️3. 연동정보 확인하기
  • 결제창 연동하기
    • 🖥️인증결제 연동하기
      • 📒인증결제 정의
      • 🌠1. 포트원 라이브러리 추가
      • 💡2. 객체 초기화 하기
      • 🪧3. 결제 요청하기
      • 🎁4. 결제결과 처리하기
        • 🪟iframe 결제창 결과처리
        • 🖼️redirect 결제창 결과처리
      • 🔦5. 결제정보 검증하기
        • ⬅️결제정보 사전 검증하기
        • ➡️결제정보 사후 검증하기
      • 🛬6. 결제완료 처리하기
    • ⏰비 인증결제 연동하기
      • 🏍️빌링키 결제 요청하기
        • 🖱️REST API 이용하기
        • 🛡️PG결제창 이용하기
      • 💳카드정보를 이용한 키인결제
      • 🪧빌링키를 이용한 정기결제
    • 💸결제취소(환불) 연동하기
      • 💷가상계좌 환불하기
  • 결제결과 연동하기
    • ⚒️웹훅(Webhook) 연동하기
    • ✔️가상결제 입금통보 설정
  • 기타 서비스 연동하기
    • 📱휴대폰 본인인증 연동하기
      • 📔1. 본인인증 준비하기
      • 🥏2. 본인인증창 호출하기
      • 🚚3. 인증 완료정보 전달하기
      • 🤹4. 인증정보 조회 및 활용하기
    • 🚚통합인증 연동하기
      • 📒통합인증 준비하기
      • 🥏통합인증 요청하기
      • 🚚인증 완료정보 전달하기
      • 🤹인증정보 조회 및 활용하기
    • 💳신용카드 본인인증 연동
      • 📒1. 본인인증 준비하기
      • 🥏2. 본인인증 요청하기
      • 🚚3. 인증 완료정보 전달하기
      • 🤹4. 인증정보 조회 및 활용하기
    • 💻결제 URL 생성하기
    • 🛩️버짓핸들러 연동하기
    • 📟네이티브 모바일 SDK
  • TIP
    • 🌽결제금액 면세 적용방법
    • ✅오픈 전 체크사항
    • 🔏Confirm Process
    • 🎼포트원 결제 FLOW
    • 🎈Agency & Tier 란?
    • 📦PG사별 빌링키 획득 규칙
    • 🏦PG사별 은행코드표
    • 🧾PG사 코드표
    • 🚚택배사 코드표
    • 🪧리디렉션이란?
    • 📰PG사 오류코드
  • 관리자 콘솔 사용하기
    • 🎡관리자 콘솔 가이드
      • 전자결제 신청
      • 내 식별코드, API Keys
      • 관리자 및 하위 상점 계정 관리
      • 결제 연동 하기
      • 결제 내역
    • 💻복수 PG설정 및 사용하기
  • API
    • 📋포트원 API 소개
    • 🖇️REST API Access Token
    • 💳결제관련 API
      • ⌨️결제취소 API
      • ⌨️결제내역 단건조회 API
      • ⌨️결제내역 복수조회 API
      • ⌨️결제상태기준 복수조회 API
      • ⌨️결제 복수조회(주문All) API
      • ⌨️결제 복수조회(주문UQ) API
      • ⌨️빌링키 결제 복수조회 API
      • ⌨️결제금액 사전등록 API
      • ⌨️결제금액 단건 수정 API
      • ⌨️결제금액 단건조회
      • ⌨️결제 상세내역 조회 API
    • 📝빌링키 관리 API
      • ⌨️빌링키 발급 API
      • ⌨️빌링키 삭제 API
      • ⌨️빌링키 정보 단건조회 API
      • ⌨️빌링키 정보 복수조회 API
      • ⌨️빌링키 결제예약 조회 API
    • 🧭정기결제 관련 API
      • ⌨️결제 예약 API
      • ⌨️결제 예약취소 API
      • ⌨️결제예약 복수조회 API
      • ⌨️결제예약 단건조회 API
      • ⌨️결제예약 복수조회(빌키) API
    • 🪂비 인증 결제관련 API
      • ⌨️비 인증 결제(빌링키) API
      • ⌨️비 인증 결제(일회성) API
    • 🌏해외PG 관련 API
      • ⌨️페이먼트월 배송등록 API
    • 👮본인인증 관련 API
      • ⌨️본인인증 결과조회 API
      • ⌨️본인인증 정보삭제 API
      • ⌨️본인인증 요청 API
      • ⌨️본인인증 완료 API
    • 🎫간편결제 서비스 API
      • 🧽카카오페이
        • ⌨️주문내역 조회 API
      • 🛩️KCP Quick Pay
        • ⌨️구매자 정보 단건 삭제 API
      • 🧰페이코
        • ⌨️주문상태 단건 수정 API
      • 📗네이버페이 결제형
        • ⌨️에스크로 주문확정 API
        • ⌨️포인트 적립 API
        • ⌨️현금영수증 발급 가용액 조회 API
    • 🏦에스크로 관련 API
      • ⌨️배송정보 단건조회 API
      • ⌨️배송정보 단건등록 API
      • ⌨️배송정보 단건수정 API
    • 💵현금영수증 API
      • ⌨️포트원 발급분 취소 API
      • ⌨️발급내역 단건 조회 API
      • ⌨️현금영수증 단건발급 API
      • ⌨️외부 발급분 취소 API
      • ⌨️외부 발급내역 단건 조회 API
      • ⌨️현금영수증 발급(외부) API
    • 🏛️가상계좌 관련 API
      • ⌨️가상계좌 발급 API
      • ⌨️가상계좌 발급취소 API
      • ⌨️가상계좌 발급정보 수정 API
      • ⌨️예금주 조회 API
    • 🍶기타 API
      • 🎽베네피아 포인트
        • ⌨️포인트 단건조회 API
        • ⌨️포인트 결제 요청
      • 🏪편의점 결제
        • ⌨️수납번호 발급 API
        • ⌨️수납취소 API
      • 🗃️기관코드 조회
        • ⌨️카드사코드 전체조회 API
        • ⌨️카드사명 단건조회 API
        • ⌨️은행코드 전체조회 API
        • ⌨️은행명 단건조회 API
      • 🛖PG 정보
        • ⌨️PG MID 복수조회 API
  • SDK
    • 🔖JavaScript SDK
      • 💿결제요청 파라미터
      • 📀결제응답 파라미터
      • 💿본인인증 요청 파라미터
      • 📀본인인증 결과 파라미터
    • 📚JavaScript SDK (구버전)
      • ✏️SDK Release Note
  • FAQ
    • ⁉️자주 묻는 질문
  • 🔑PG사별 결제 연동 가이드
    • 🏢Payment Gateway
      • ⌨️NHN KCP
      • ⌨️KG 이니시스
      • ⌨️토스페이먼츠 (구 모듈)
      • ⌨️토스페이먼츠
        • 📍연동 유의사항
      • ⌨️(주)케이에스넷
        • 🚩연동 주의사항
      • ⌨️NICE페이먼츠
      • ⌨️KICC
      • ⌨️다우 (키움페이/페이조아)
        • 📍페이조아 유의사항
      • ⌨️KG모빌리언스
      • ⌨️페이먼트월
      • ⌨️다날
      • ⌨️핵토파이낸셜
        • 🏦내통장 결제
      • ⌨️JTNET
      • ⌨️스마트로
      • ⌨️페이팔
      • ⌨️페이팔 SPB 일반결제
        • 😲연동 유의사항
      • ⌨️엑심베이
      • ⌨️블루월넛
    • ⛺간편 결제사
      • ⌨️네이버페이(결제형)
      • ⌨️카카오페이
      • ⌨️페이코
      • ⌨️알리페이
      • ⌨️토스 간편결제
  • 워드프레스 플러그인 사용하기
    • 워드프레스 플러그인
      • 우커머스 플러그인
        • 일반결제 연동하기
        • 정기결제 연동하기
        • 가상계좌 입금통보 URL 설정하기
      • Easy Digital Downloads 플러그인
      • 결제버튼생성 플러그인
  • V2 연동하기 (beta)
    • ⚠️V2 연동 시작하기
    • 🖥️인증결제 연동하기
      • 1. 포트원 SDK 설치
      • 2. 결제 요청하기
      • 3. 결제검증 API 구현하기 (서버)
      • 4. 결제완료 처리하기 (클라이언트)
        • iframe 방식의 결과처리
        • redirect 방식의 결과처리
    • ⏰비인증결제 연동하기
      • 빌링키 결제
        • 1. 빌링키 발급하기
          • PG 결제창 이용하기
            • 1. 빌링키 결제 API 구현하기 (서버)
            • 2. 결제창을 통해 빌링키 발급하기
          • 포트원 API 이용하기
        • 2. 정기(예약)/반복결제 구현하기 (서버)
      • 키인(수기) 결제
    • 💸웹훅 연동하기
    • 🚀JavaScript SDK
      • 결제요청 파라미터
      • 결제응답 파라미터
      • 빌링키 발급 요청 파라미터
      • 빌링키 발급 응답 파라미터
    • 🏢PG사별 연동 가이드
      • ⌨️카카오페이
    • 🛬온보딩 연동 가이드 - 별도 계약 필요
  • API (V2 beta)
    • ⚠️V2 API 시작하기
    • 채널 관련 API
    • 인증 관련 API
    • 결제 관련 API
    • 현금영수증 관련 API
    • 정기결제 관련 API
    • 빌링키 관련 API
    • 가맹점 관리 API - 별도 계약 필요
    • 온보딩 API - 별도 계약 필요
  • 영문 연동가이드
Powered by GitBook
On this page
  • STEP 01. 발급 요청하기
  • STEP 02. 발급 응답 처리하기
  • STEP 03. 결제 요청하기

Was this helpful?

  1. 결제창 연동하기
  2. 비 인증결제 연동하기
  3. 빌링키 결제 요청하기

PG결제창 이용하기

PG사에서 제공하는 결제창을 이용하여 빌링키를 획득합니다

PreviousREST API 이용하기Next카드정보를 이용한 키인결제

Last updated 2 years ago

Was this helpful?

Deprecated

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

를 이용해주세요.

PG사가 제공하는 일반 결제창에 고객이 카드정보를 입력하여 빌링키를 발급 받을수 있습니다.

  • 장점: 카드정보가 서버 또는 포트원의 서버를 거치지 않고 직접 PG사로 전달되기 때문에 데이터 및 통신구간 암호화 등의 추가 보안 프로세스가 없다.

  • 단점: PG사의 일반결제창을 통해 카드정보를 입력받기 때문에 웹브라우저를 통해서만 빌링키 발급이 이루어지며, 카드정보 입력란을 커스터마이징 할 수 없다.(가맹점 사이트 친화적인 UI/UX 구성불가)

STEP 01. 발급 요청하기

인증결제와 동일하게 JavaScript SDK 를 이용하여 PG사 결제창을 호출합니다. 빌링키를 획득하기 위해 아래 파라미터를 추가적으로 설정하면 모든 준비가 완료됩니다.

customer_uid : 빌링키와 1:1로 매칭될 고유키

client-side
  IMP.request_pay({ 
    customer_uid: "gildong_0001_1234", // 카드(빌링키)와 1:1로 대응하는 값
    /* ...생략... */
  }, function (rsp) { // callback
    if (rsp.success) {
      // 빌링키 발급 성공
    } else {
      // 빌링키 발급 실패
    }
  });

customer_uid 란?

PG사가 발급한 빌링키와 1:1로 맵핑되는 가맹점이 지정한 고유값입니다. customer_uid 는 카드번호 단위로 구분되서 저장되어야 합니다.

예) 홍길동 고객이 A카드 빌링키를 요청하는 경우 customer_uid는 회원 별 카드번호 단위로 고유하게 발급되어야 합니다.

STEP 02. 발급 응답 처리하기

client-side
  IMP.request_pay({ 
    /* ...중략... */
  }, function (rsp) { // callback
    if (rsp.success) {
      // 빌링키 발급 성공
      // jQuery로 HTTP 요청
      jQuery.ajax({
        url: "{customer_uid를 받을 서비스 URL}", 
        method: "POST",
        headers: { "Content-Type": "application/json" },
        data: {
          customer_uid: "gildong_0001_1234", // 카드(빌링키)와 1:1로 대응하는 값
        }
      });
    } else {
      // 빌링키 발급 실패
    }
  });

빌링키가 성공적으로 발급되면 가맹점 서버로 customer_uid 를 전달합니다. 서버에서는 클라이언트로부터 customer_uid를 전달받는 API endpoint를 생성합니다. 서버에서 해당 customer_uid 를 사용하여 차후에 결제를 요청할 수 있습니다.

server-side
  app.post("/billings", async (req, res) => {
    try {
      const { customer_uid } = req.body; // req body에서 customer_uid 추출
        ...
    } catch (e) {
      res.status(400).send(e);
    }
  });

전달받은 customer_uid 를 가맹점 내부서버 DB에 저장 후 추후 해당 정보를 이용하여 결제를 요청 합니다.

STEP 03. 결제 요청하기

server-side
app.post("/billings", async (req, res) => {
    try {
      const { customer_uid } = req.body; // req의 body에서 customer_uid 추출
      // 인증 토큰 발급 받기
      const getToken = await axios({
        url: "https://api.iamport.kr/users/getToken",
        method: "post", // POST method
        headers: { "Content-Type": "application/json" }, 
        data: {
          imp_key: "imp_apikey", // REST API 키
          imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret
        }
      });
      const { access_token } = getToken.data; // 인증 토큰
      ...
      // 결제(재결제) 요청
      const paymentResult = await axios({
        url: \`https://api.iamport.kr/subscribe/payments/again\`,
        method: "post",
        // 인증 토큰을 Authorization header에 추가
        headers: { "Authorization": access_token }, 
        data: {
          customer_uid,
          merchant_uid: "order_monthly_0001", // 새로 생성한 결제(재결제)용 주문 번호
          amount: 8900,
          name: "월간 이용권 정기결제"
        }
      });
      ...
      const { code, message } = paymentResult;
      if (code === 0) { // 카드사 통신에 성공(실제 승인 성공 여부는 추가 판단이 필요함)
        if ( paymentResult.status === "paid" ) { //카드 정상 승인
          res.send({ ... });
        } else { //카드 승인 실패 (예: 고객 카드 한도초과, 거래정지카드, 잔액부족 등)
          //paymentResult.status : failed 로 수신됨
          res.send({ ... });
        }
        res.send({ ... });
      } else { // 카드사 요청에 실패 (paymentResult is null)
        res.send({ ... });
      }
    } catch (e) {
      res.status(400).send(e);
    }
  });

위에서 저장된 customer_uid 를 이용하여 를 호출하여 결제를 요청합니다.

REST API 를 이용하기 위해서는 획득이 선행되어야 하는점 잊지 마세요

⏰
🏍️
🛡️
비 인증 결제(빌링키)API
Access Token
PortOne 개발자센터
PG사 카드정보 획득 결제창 예제