ISO 8583: 신용카드의 언어

6 hours ago 2

  • ISO 8583: 신용카드의 언어

  • ISO 8583은 주요 카드 네트워크 간에 실시간 메시지를 주고받기 위한 표준임. 이 표준은 판매 시점 장치에서 카드를 터치하거나 온라인에서 "구매"를 클릭할 때 발생하는 메시지를 정의함. 초기에는 판매 시점 장치나 ATM이 직접 ISO 8583 메시지를 생성하여 수취인에게 보냈으나, 현재는 상인에서 결제 처리기로 메시지가 전달된 후 카드 네트워크의 ISO 8583 기반 형식으로 변환됨.

  • 기본 형식

  • ISO 8583 메시지는 메시지 유형 지시자, 비트맵, 데이터 요소로 구성됨. 메시지 유형 지시자는 4자리 코드로, 메시지의 유형을 나타냄. 비트맵은 각 필드의 존재 여부를 나타내며, 데이터 요소는 비트맵에 따라 순차적으로 직렬화됨.

  • 데이터 요소

  • 데이터 요소는 원시 값이나 복합 값으로 구성될 수 있으며, 각 필드의 인코딩 방식은 다양함. EBCDIC, ASCII, Packed BCD, Binary 등의 인코딩 방식이 사용됨. 필드는 고정 길이 또는 가변 길이로 직렬화될 수 있음.

  • 중첩 메시지

  • ISO 8583 표준은 네트워크가 필요에 따라 사용자 정의 데이터를 직렬화할 수 있는 "개인용" 필드를 예약함. 중첩 메시지는 테이블, 중첩 비트맵 메시지, 태그 길이 값(TLV) 메시지로 직렬화될 수 있음.

  • 파서 구축

  • ISO 8583 메시지를 파싱하는 것은 비트맵 파서와 각 필드의 길이 정의를 구현하는 것으로 시작됨. 복잡한 중첩 하위 메시지를 처리하는 것이 주요 과제임. Increase에서는 Ruby와 Sorbet 타입 시스템을 사용하여 ISO 8583 파서를 정의함.

  • 오류 처리

  • 파서에서 오류를 우아하게 처리하는 것이 중요함. 특히 발급 처리기는 전 세계의 많은 수취인으로부터 승인 요청을 받기 때문에 메시지를 파싱하지 못하면 카드 소지자에게 불편을 초래할 수 있음. 하위 메시지에서 오류가 발생할 경우 다음 필드를 계속 처리할 수 있도록 바이트 스트림을 분할하여 처리함.

  • 결론

  • ISO 8583 메시지를 파싱하는 과정에서 발생하는 복잡성을 탐구하고, 1987년에 정의된 초기 ISO 8583 표준에서 어떻게 발전해왔는지를 살펴봄. Increase는 카드 네트워크 메시지를 파싱하여 제품 개발에 집중할 수 있도록 지원함.

Read Entire Article