ID TECH
문의
기술 게시물 전체 보기

기술 포스트

ID TECH Universal SDK 시작하기

ID TECH의 신용카드 리더기를 선택하면 얻을 수 있는 장점 중 하나는, Universal SDK라고 불리는 단일 소프트웨어 개발 키트를 통해 POS 또는 결제 앱 환경에 디바이스를 빠르고 간편하게 통합할 수 있다는 점입니다.

이것이 "범용(universal)"이라 불리는 이유는, 지원되는 모든 ID TECH 제품에 걸쳐 공통 API를 제공하며 환경에 관계없이 동일한 방식으로 작동하기 때문입니다.

다만, ID TECH의 Universal SDK는 디바이스를 배포할 운영체제의 종류와 사용하고자 하는 프로그래밍 언어에 따라 여러 버전으로 제공된다는 점을 인식하는 것이 중요합니다. C# 기반(.NET 4.61, .NET Standard 2.0/2.1, .NET Core 3.1) Universal SDK는 Windows에서 대부분의 ID TECH 제품을 지원하기 위해 제공됩니다. 하지만 예를 들어 삼성 스마트폰에서 Bluetooth VP3300 리더기를 사용해야 한다면, 이를 위한 Java 기반의 Android용 Universal SDK가 준비되어 있습니다. Linux 환경에 통합해야 하는 경우에는 C++ 기반의 Universal SDK를 제공하며, 선택적으로 Java 버전도 사용할 수 있습니다. 일부 모바일 리더기는 iPad 또는 iPhone과 호환되므로, Swift 또는 Objective-C로 개발할 수 있는 iOS용 Universal SDK도 물론 제공됩니다. 또한 Raspberry Pi(C 및 Java 지원)도 지원합니다.

일부 경쟁사와 달리, ID TECH는 SDK에 대해 별도의 비용을 청구하지 않으며 "개발자 프로그램" 가입을 요구하지도 않습니다. 실제로 대부분의 개발자 도구와 문서는 별도의 접근 권한 등록 없이도 바로 이용할 수 있습니다. 필요한 것은 단지 저희 기술 자료, 제품 패밀리를 선택한 후 해당 제품 페이지로 이동하여 SDK 링크를 확인하세요. (예를 들어, VP3300 제품 페이지를 참조하세요. 페이지를 아래로 스크롤하여 "SDKs" 섹션을 확인하세요.)또한, 저희 .NET SDK는 Visual Studio와의 손쉬운 통합을 위해 NuGet 을 통해 배포됩니다. 해당 프로젝트 page for our .NET SDK에는 문서, 샘플 및 기타 유용한 정보가 포함되어 있으며, 이를 통해 프로젝트에서 .N 구현 을 지원합니다.ET

제공 내용 Visual Studio .N Visual Studio .NET 프로젝트 페이지에서 확인하세요?

  • 링크: ID TECH .NET 라이브러리를 호스팅하는 NuGet.org ID TECH .NET 라이브러리
  • Windows, Mac 또는 Linux에서 SDK를 활용하는 크로스 플랫폼 예제 ( .NET Core 사용) 3.1
  • HTML 및 HTML 로 이동하여 Flash 쿠키를 관리할 수도 있으며, PDF 형식의 SDK API 문서
  • iOS 및 Android 모바일 개발을 위해 Xamarin을 활용한 소스 코드 예제
  • 당사의 uDemo 소프트웨어의 소스 코드로, 모든 ID TECH 기기를 USB, Serial 및 IP로 구동합니다
  • 당사의 uDemo 소프트웨어 컴파일 설치 파일
  • 변경 이력
  • 다양한 .NET 기반 유틸리티로 ID TECH 기기의 구동 및 설정에 활용됩니다

제공 내용 SDK 내 에서 다운로드 패키지를 지식 베이스 (비 .NET 버전)에서? Zip 압축 파일을 풀면 네 개의 폴더를 확인할 수 있습니다:

  • Demo 이 폴더에는 SourceCode 폴더에 제공된 샘플 코드 프로젝트에 해당하는 실행 파일이 이미 빌드되어 포함되어 있습니다. 실행 파일은 두 가지로 구성됩니다: 하나는 문서에 설명된 기본 "튜토리얼" 데모 앱(Simple Demo)이며, 나머지 하나는 보다 정교한 앱으로, Windows SDK의 경우 외관과 기능이 UDemo 유틸리티 포함된 기능 이전 게시물.
  • Docs SDK 문서는 HTML과 PDF 두 가지 형식으로 제공됩니다. 각 형식에는 API에 대한 상세한 설명, 사용 예시, 배경 정보, 튜토리얼 안내 등이 포함되어 있습니다.
  • SDK 여기에서는해당 플랫폼에서 앱을 실행하는 데 필요한 컴파일된 라이브러리 및 기타 리소스를 찾을 수 있습니다. Windows 환경에서는 DLL 파일이 제공되며, MacOS 환경에서는 .DYLIB 파일이, Android 환경에서는 JAR 파일이 제공됩니다.
  • SourceCode 이 폴더에는 Simple Demo(튜토리얼) 앱의 헤더 파일, 프로젝트 파일 및 소스 코드와 함께, 보다 고급 기능을 보여주는 상세한 샘플 앱의 소스 코드가 포함되어 있습니다. 제공되는 내용은 사용 중인 운영 체제에 따라 다릅니다. Linux용 소스 코드는 C와 Java로 제공되며, Windows의 경우 다운로드하는 SDK에 따라 C# 또는 C++ 코드를 제공합니다. Android는 Java, iOS는 Objective-C 또는 Swift 중 선택할 수 있습니다.

SDK 라이브러리는 플랫폼별, 제품별 기기 연결을 처리하므로, RS-232, USB, Bluetooth 또는 오디오 잭(모바일 기기의 경우)을 통한 카드 리더 연결의 저수준 세부 사항을 직접 처리할 필요가 없습니다. 이 라이브러리는 제품별 통신 프로토콜 문제를 처리하고, 펌웨어 수준의 명령을 직접 다루지 않아도 되도록 보호해줍니다. 예를 들어, VP3300의 펌웨어 버전을 조회하려는 경우, 일반적으로 SDK 없이는 시리얼 포트를 통해 원시 바이트 스트림을 전송해야 합니다. 해당 바이트 스트림은 16진수 시퀀스 5669564f74656368320029000000dea0에 해당하며, 다음과 같은 응답을 기다려야 합니다.

그 후에는 응답 끝의 CRC 검증 방법을 알아야 하고, 프레이밍 바이트에서 데이터 페이로드를 파싱하고, 페이로드를 ASCII 문자열로 변환하는 등의 작업을 수행해야 합니다. Universal SDK를 사용하면 API 메서드 device_getFirmwareVersion()을 호출한 후 반환된 문자열을 확인하기만 하면 됩니다. SDK가 데이터 마샬링 및 언마샬링, CRC 계산, 시리얼 포트 버퍼 읽기/쓰기 등의 복잡한 세부 작업을 모두 처리합니다.

Universal SDK는 TLV 데이터(및/또는 MSR 데이터) 파싱, 상태 코드 해석, 기기 동작 커스터마이징을 위한 편의 메서드를 제공하므로, 마그스트라이프, 접촉식 EMV, 비접촉식 거래 등 모든 유형의 트랜잭션 처리를 크게 간소화합니다. Universal SDK를 사용하면 데이터 프로토콜, 파싱 루틴, 오류 코드 조회 테이블 등 저수준 세부 사항에 얽매이지 않고 상당히 높은 추상화 수준에서 코딩할 수 있습니다.

Universal SDK가 지원하지 않는 그렇다면 이 SDK는 어떤 역할을 할까요? 비즈니스 로직은포함하지 않습니다. 해당 부분은 포함하지 않습니다.개발자가 직접 구현해야 합니다. 또한게이트웨이나 프로세서에 종속되지 않으며,주요 결제 프로세서들은 각자의 온라인 인증 호스트에 접근하기 위한 고유한 SDK를 보유하고 있습니다. 따라서 온라인 승인(또는 정산 등)이 필요한 시점에게이트웨이에서 권장하는 SDK를 별도로 사용하여 온라인 인증을 처리해야 합니다.

Universal SDK를 활용하여 ID TECH 카드 리더기와의 연동을 포함한 결제 앱을 개발할 수 있을까요? SDK 없이는 네, 실제로 가능합니다. 그리고 일부 ID TECH고객사(여러 공급업체의 하드웨어와 연동해야 하지만 여섯 가지의 서로 다른 SDK를 사용하고 싶지 않은 경우)가 이 방식을 선택하는 경우도 있습니다.

단, 이 방식을 선택하면 다음과 같은 작업이 필요합니다:

  1. USB, COM, Bluetooth 등 해당 기기와의 통신을 위한 자체 연결 코드(사실상 전용 드라이버)를 직접 작성해야 합니다.
  2. 기기 제어에 필요한 펌웨어 명령어를 숙지해야 합니다. (ID TECH는 다양한 제품의 문서를 통해 이 정보를 제공합니다.).
  3. 기기의 프로토콜 요구사항(NGA, ITP, NEO 2 등 해당 사항)에 따라 데이터와 명령어의 패키징 및 언패키징을 직접 처리해야 합니다.
  4. 데이터 파싱을 직접 처리해야 합니다.
  5. 상태 코드 및 오류 코드를 직접 해석해야 합니다.
  6. 이 모든 작업을 대상 플랫폼의 특정 하드웨어 및 운영 체제 요구사항에 맞게 구현해야 합니다.

그렇다면 장점 SDK 없이 진행하는 방식의 장점은 단 하나입니다. 바로 이 방식이원시 바이트를 직접 다루기 때문에, 디바이스와의 직접 통신이 사실상 원시 바이트를 직접 다루기 때문에, 디바이스와의 직접 통신이 사실상 프로그래밍 언어에 독립적입니다. 시리얼 포트(또는 USB 포트 등)와 네이티브로 통신할 수만 있다면, 어떤 언어를 사용하든 문제가 없습니다. 따라서 Pascal, Go, Kotlin 등 현재 Universal SDK에서 지원하지 않는 언어에 익숙한 개발자라도, 다소 불편함은 있겠지만 원하는 작업을 충분히 수행할 수 있습니다.

Universal SDK를 시작하는 가장 좋은 방법은 무엇인가요? 간단합니다. 바로 이것입니다: 운로드하여 문서를 확인해 보세요! 위의 Knowledge Base 링크를 또는 .NET 프로젝트 페이지를 참조하시면 오늘 오후부터 바로 코딩을 시작할 수 있습니다. 한편, EMV가 처음이신 분들은 먼저 당사의 백서를 살펴보시기 바랍니다. Universal SDK를 활용한 EMV 트랜잭션(Universal SDK)이 백서에서는 EMV(칩 카드 트랜잭션)에 대한 개요와 함께 USDK 자체에 대한 소개도 다루고 있습니다.

디바이스 탑재형 애플리케이션

결제 앱을 디바이스 자체에 탑재하는 것은 어떨까요? 그게 가능할까요? 실제로 ID TECH의일부 최신 디바이스(예: VP5300 삽입형 리더기, VP6800 등)의 경우, 앱을 디바이스 자체에 탑재하는 것이 실제로 가능합니다. 실시간 운영체제(및/또는 Linux) 환경에서 ANSI C로 임베디드 앱을 개발하는 방법에 익숙해야 하지만, 이는 분명히 가능한 일입니다. 또한 앱을 디바이스에 직접 탑재할 수 있도록 전용으로 설계된 ADF(Application Development Framework)라는 특별한 디바이스 내장형 편의 라이브러리 세트도 제공됩니다.

Universal SDK(또는 ADF)에 대해 궁금한 점이 있으신가요? 사내 전문가와 직접 상담해 보세요. 아래를 통해 문의하실 수 있습니다. 1-800-984-1010. 여러분의 연락을 기다립니다!