내통장결제

헥토파이낸셜에서 제공하는 오픈뱅킹 기반 계좌간편결제 연동 방법을 안내합니다.

이 문서는 V1(구 아임포트) 연동 고객사 대상입니다. 신규 연동의 경우 V2 버전 사용을 권장합니다.

1. 내통장결제 채널 설정하기

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

2.결제 요청하기

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

Javascript SDK
IMP.request_pay( { // param channelKey: "{콘솔 내 연동 정보의 채널키}", pay_method: "trans", merchant_uid: "ORD20180131-0000011", name: "노르웨이 회전 의자", buyer_email: "gildong@gmail.com", buyer_name: "홍길동", buyer_tel: "010-1234-5678", buyer_addr: "서울특별시 강남구 삼성동", m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", amount: 1000, bypass: { settle: { addDeductionYn: "N", // 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) criPsblYn: "N", // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) custCi: "<회원 연계정보(Connecting Information)>", // 고객사가 보유한 회원 CI를 설정하면 내통장 결제에 등록한 CI와 비교하여 동일인인지 자동검증되며 일치하지 않은 경우 결제가 중단됩니다. }, }, }, function (rsp) { // callback // 생략 }, );

주요 파라미터 설명

channelKey: string

채널키

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

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

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

pg(deprecated)?: string

PG사 구분코드

settle_acc.MID 형태로 지정해야 합니다.

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

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

pay_method: string

결제수단 구분코드

trans만 사용 가능합니다.

merchant_uid: string

고객사 고유주문번호

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

buyer_tel: string

구매자 연락처

필수 파라미터 입니다.

amount: integer

결제금액

bypass?: oneof object

PG사 결제창 호출 시 PG사로 그대로 bypass할 값들의 모음

custCi: string

주문자 CI

본인인증 후 전달받은 CI 값을 AES-256-ECB 방식을 사용해 암호화하여 16진수로 인코딩한 결과를 입력해야합니다. 암호화 키(key)는 포트원 관리자콘솔 채널 등록 시 "암호화 키" 항목에 입력한 값을 사용합니다.

INPUT: ci (string), key (string)
OUTPUT: custCI (string)

BEGIN
# Step 1: CI 데이터를 AES-256-ECB 방식으로 암호화
binaryData ← AES256ECB(key, ci)

# Step 2: 암호화된 데이터를 16진수 문자열로 변환
custCI ← ConvertToHex(binaryData)

# Step 3: 결과 반환
RETURN custCI
END

고객사가 보유한 회원 CI를 설정하면 내통장 결제에 등록한 CI와 비교하여 동일인인지 자동검증되며 일치하지 않은 경우 결제가 중단됩니다.

addDeductionYn?: string

추가공제구분

대중교통: Y, 도서 및 공연비: C, 추가공제없음: N

계약 후 사용 가능합니다.

criPsblYn?: string

현금영수증 발행가능 여부

Y or N or "", 빈문자열은 Y로 인식

  1. 내통장결제는 팝업 형태로 제공됩니다.
  2. 매출전표가 제공되지 않습니다.
  3. 선불충전금 ( ex: 카카오페이, 네이버페이 충전금)으로만 결제하는 경우 계좌정보(은행코드)가 제공되지 않습니다.

인증결제창 호출 파라미터에서 customer_uid 값을 추가하면 빌링키 발급 결제창을 호출할 수 있습니다. 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다.

Javascript SDK
IMP.request_pay( { channelKey: "{콘솔 내 연동 정보의 채널키}", pay_method: "trans", merchant_uid: "ORD20180131-0000011", name: "노르웨이 회전 의자", buyer_email: "gildong@gmail.com", buyer_name: "홍길동", buyer_tel: "010-1234-5678", buyer_addr: "서울특별시 강남구 삼성동", m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", customer_uid: "A00001-001", // 빌링키와 맵핑되는 amount: 1000, bypass: { settle: { addDeductionYn: "N", // 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) criPsblYn: "N", // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) custCi: "<회원 연계정보(Connecting Information)>", // 고객사가 보유한 회원 CI를 설정하면 내통장 결제에 등록한 CI와 비교하여 동일인인지 자동검증되며 일치하지 않은 경우 결제가 중단됩니다. }, }, }, function (rsp) { if (rsp.success) { alert("빌링키 발급 성공"); } else { alert("빌링키 발급 실패"); } }, );
  • 헥토파이낸셜과 정기결제 계약 후 사용 가능합니다.

  • 일반적으로 빌링키 발급과 동시에 결제가 발생합니다. 빌링키만 발급하시려면 amount0 으로 입력하신 후 요청하세요.

주요 파라미터 설명

channelKey: string

채널키

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

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

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

pg(deprecated)?: string

PG사 구분코드

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

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

customer_uid?: string

빌링키

등록 계좌정보와 1:1로 매칭될 빌링키를 지정합니다.

amount?: integer

결제금액

0원으로 입력시 빌링키만 발급됩니다. 금액 설정시 결제와 동시에 빌링키가 발급됩니다.

bypass?: oneof object

PG사 결제창 호출 시 PG사로 그대로 bypass할 값들의 모음

custCi: string

주문자 CI

본인인증 후 전달받은 CI 값을 AES-256-ECB 방식을 사용해 암호화하여 16진수로 인코딩한 결과를 입력해야합니다. 암호화 키(key)는 포트원 관리자콘솔 채널 등록 시 "암호화 키" 항목에 입력한 값을 사용합니다.

INPUT: ci (string), key (string)
OUTPUT: custCI (string)

BEGIN
# Step 1: CI 데이터를 AES-256-ECB 방식으로 암호화
binaryData ← AES256ECB(key, ci)

# Step 2: 암호화된 데이터를 16진수 문자열로 변환
custCI ← ConvertToHex(binaryData)

# Step 3: 결과 반환
RETURN custCI
END

고객사가 보유한 회원 CI를 설정하면 내통장 결제에 등록한 CI와 비교하여 동일인인지 자동검증되며 일치하지 않은 경우 결제가 중단됩니다.

addDeductionYn?: string

추가공제구분

대중교통: Y, 도서 및 공연비: C, 추가공제없음: N

계약 후 사용 가능합니다.

criPsblYn?: string

현금영수증 발행가능 여부

Y or N or "", 빈문자열은 Y로 인식

빌링키(customer_uid)로 결제 요청하기

빌링키 발급이 성공하면 실 빌링키는 customer_uid 와 1:1 매칭되어 포트원 서버에 저장됩니다. customer_uid를 고객사 내부서버에 저장하시고 비 인증 결제요청 REST API 호출 시 해당 값을 지정하신 후 호출해야 합니다.

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