통신 및 전문 구성
VAVS는 전용회선 또는 암호화 인터넷 구간에서 TCP/IP 소켓으로 고정길이 전문을 송수신합니다.
통신 환경
| 구분 | 전용회선 | 인터넷 |
|---|---|---|
| 회선 | 1회선 또는 2회선(Active-Active) | 계약 시 제공되는 접속 정보 사용 |
| 권장 속도 | 64 Kbps 이상 | 네트워크 환경에 따름 |
| 프로토콜 | X.25 또는 TCP/IP | TCP/IP |
| 암호화 | 별도 암호화 없음 | SEED/CBC/PKCS5Padding |
전용회선을 신청하는 경우 헥토파이낸셜 측 DSU 장비 임대도 함께 협의합니다.
인터넷 구간 암호화
인터넷 연결의 암호화 규격은 개발지원사이트의 기존 펌뱅킹 암호화 규격과 동일합니다.
| 항목 | 값 |
|---|---|
| 알고리즘 | SEED |
| 운용 모드 | CBC |
| 패딩 | PKCS5Padding |
| IV | 0123456789012345 |
| 키 | 1234567890123456 |
암호화·복호화 전 평문 전문은 아래의 EUC-KR 및 고정길이 규칙을 먼저 적용합니다.
연결 방식
Sync 방식
입금 업무만 사용하는 경우 주로 사용합니다.
- 이용기관이 서버 프로세스로 약속된 포트에서 연결을 대기합니다.
- 거래가 발생하면 헥토파이낸셜이 이용기관 서버에 접속합니다.
- 동일 연결에서 요청 전문을 전송하고 응답 전문을 수신합니다.
- 응답 수신 후 연결을 종료합니다.
이용기관의 수신 프로세스는 여러 연결을 동시에 처리할 수 있어야 합니다.
Async 방식
송신과 수신 프로세스를 분리하고 연결을 유지하면서 전문을 처리합니다.
- 양측에 송신용 클라이언트와 수신용 서버 프로세스가 필요합니다.
- 송수신 프로세스와 실제 업무 처리 프로세스 사이의 연계가 필요합니다.
- 세션 유지 여부와 재연결 정책은 연동 협의 사항에 맞춰 구현합니다.
요구·응답 전문 구분
요구 전문의 두 번째 자리는 0, 응답 전문의 두 번째 자리는 1입니다.
| 업무 | 요구 | 응답 |
|---|---|---|
| 수취조회 | 2000 | 2100 |
| 입금 | 1000 | 1100 |
| 입금이체 | 3000 | 3100 |
| 송금 | 6010 | 6110 |
| 성명조회 | 2001 | 2101 |
| 집계 | 7000 | 7100 |
데이터 모드
| MODE | 의미 | 정렬 및 채움 |
|---|---|---|
A | 영문 문자 | 좌측 정렬, 공백 채움 |
N | 숫자 | 우측 정렬, 0 채움 |
AN | 영문 및 숫자 | 좌측 정렬, 공백 채움 |
AH | 한글 및 영문 | 좌측 정렬, 공백 채움 |
YYYY | 연도 | 4자리 |
MM | 월 또는 분 | 문맥에 따라 2자리 |
DD | 일 | 2자리 |
HH | 시 | 2자리 |
SS | 초 | 2자리 |
NOTE
문자열 길이는 바이트 기준
고정길이 전문은 EUC-KR로 인코딩한 바이트 길이를 기준으로 구성합니다. AH 필드의 한글은 완성형 한글코드 기준 2바이트이며, 필드 길이를 맞춘 뒤 암호화를 적용하세요.
전문 구조
실제 TCP 전송 단위는 204바이트입니다.
| 구분 | 길이 | 값 및 설명 |
|---|---|---|
| 통신 Length 헤더 | 4바이트 | 0200; Length 자신을 제외한 뒤쪽 전문 길이 |
| VAVS 전문 | 200바이트 | 공통부 70바이트 + 개별부 130바이트 |
| 전체 TCP 프레임 | 204바이트 | 통신 Length 헤더를 포함한 실제 송수신 길이 |
VAVS 전문의 공통부도 첫 필드로 LENGTH를 가지므로, 200바이트 전문은 공통부 LENGTH=0200으로 시작합니다. 실제 프레임은 앞쪽에 통신 Length 헤더 0200이 한 번 더 추가됩니다.
통신 Length(4, 0200) + 공통부(70, LENGTH 0200으로 시작) + 개별부(130)
= 204바이트
업무별 표의 위치는 200바이트 VAVS 전문을 기준으로 한 오프셋입니다. 실제 TCP 프레임의 바이트 위치는 통신 Length 헤더 4바이트를 더해 계산합니다.
거래 코드
| 구분 | 요구 전문 | 설명 |
|---|---|---|
| 입금 | 1000 | 입금 |
| 입금 | 1001 | 입금 Retry |
| 입금 | 1010 | 입금 취소 |
| 입금이체 | 3000 | 입금이체 |
| 입금이체 | 3001 | 입금이체 Retry |
| 입금이체 | 3010 | 입금이체 취소 |
| 결번 | 1003 | 결번 입금 |
| 결번 | 1013 | 결번 취소 |
| 조회 | 2000 | 수취조회(은행 발생) |
| 조회 | 2001 | 성명조회(이용기관 발생) |
| 송금 | 6010 | 송금 |
| 보험사 | 1030 | 실입금자명 통보 |
| 집계 | 7000 | 집계 |
구현 체크리스트
- 수신 버퍼에서 한 전문의 경계를 정확히 분리합니다.
- 숫자 필드는 우측 정렬 후
0, 문자 필드는 좌측 정렬 후 공백으로 채웁니다. - 한글 문자열은 EUC-KR로 인코딩한 뒤 바이트 길이에 맞춥니다.
- 요구 코드를 응답 코드로 변경하고 송수신코드를 이용기관 송신 값으로 설정합니다.
- 알 수 없는 예약영역은 임의 사용하지 않고 수신 값을 유지하거나 규격의 기본값으로 설정합니다.
- 전문 원문과 개인정보가 운영 로그에 그대로 남지 않도록 마스킹합니다.
