기술 포스트
ID TECH Universal SDK 시작하기
ID TECH 신용카드 리더기를 선택하는 장점 중 하나는, Universal SDK라고 부르는 단일 소프트웨어 개발 키트를 통해 POS 또는 결제 앱 환경에 빠르고 간편하게 기기를 연동할 수 있다는 점입니다.
이 SDK가 "범용(universal)"인 이유는, 지원되는 모든 ID TECH 제품에 걸쳐 공통 API를 제공하며 운영 환경에 관계없이 동일한 방식으로 작동하기 때문입니다.
다만, ID TECH의 Universal SDK는 배포 대상 운영체제와 사용하고자 하는 프로그래밍 언어에 따라 여러 가지 버전으로 제공된다는 점을 이해하는 것이 중요합니다. Windows 환경에서 대부분의 ID TECH 제품을 지원하기 위한 C# 기반(.NET 4.61, .NET Standard 2.0/2.1, .NET Core 3.1) Universal SDK가 제공됩니다. 예를 들어 삼성 스마트폰에서 Bluetooth VP3300 리더기를 지원해야 하는 경우에는 Java 기반의 Android용 Universal SDK를 사용하시면 됩니다. Linux 연동이 필요한 경우에는 C++ 기반의 Universal SDK(선택적으로 Java 버전도 제공)가 준비되어 있습니다. 일부 모바일 리더기는 iPad 또는 iPhone과 함께 사용할 수 있으며, 이를 위한 iOS용 Universal SDK(Swift 또는 Objective-C로 개발 가능)도 물론 제공됩니다. 또한 Raspberry Pi도 지원합니다(C 및 Java 사용 가능).
일부 경쟁사와 달리, ID TECH는 SDK에 별도 비용을 청구하지 않으며 "개발자 프로그램" 가입을 요구하지도 않습니다. 실제로 대부분의 개발자 도구와 문서는 별도의 접근 권한 등록 없이도 바로 이용하실 수 있습니다. 방법은 간단합니다. 저희 지식 베이스에 접속하여 원하는 제품군을 선택한 후, 해당 제품 페이지로 이동하면 SDK 링크를 확인할 수 있습니다. (예를 들어, VP3300 제품 페이지를 참고해 보세요. 페이지를 아래로 스크롤하여 "SDKs" 항목을 찾으시면 됩니다.)또한, 저희 .NET SDK는 NuGet 을 통해 배포되어 Visual Studio와의 연동이 간편합니다. 해당 프로젝트 page for our .NET SDK에는 설명서, 샘플 및 기타 유용한 정보가 포함되어 있으며, 이를 통해 구현 of .NET 프로젝트에 활용하실 수 있습니다.
제공되는 항목 Visual Studio .NET 프로젝트 페이지?
- 링크: NuGet.org에서 호스팅되는 ID TECH .NET 라이브러리
- Windows, Mac 또는 Linux에서 SDK를 활용하는 크로스 플랫폼 예제 ( .NET Core 사용) 3.1
- SDK API 문서 ( HTML 및 PDF 형식 모두 제공)
- iOS 및 Android 모바일 개발을 위한 Xamarin 활용 소스 코드 예제
- 당사 uDemo 소프트웨어의 소스 코드 — USB, 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 데이터) 파싱, 상태 코드 해석, 디바이스 동작 커스터마이징을 위한 편의 메서드를 제공하므로, magstripe, 접촉식 EMV, 비접촉식 거래 등 모든 유형의 거래 처리를 크게 단순화합니다. Universal SDK를 통해 상대적으로 높은 추상화 수준에서 코딩할 수 있어, 데이터 프로토콜, 파싱 루틴, 오류 코드 조회 테이블 및 기타 저수준 세부 사항에 직접 얽매일 필요가 없습니다.
Universal SDK가 할 수 없는 것이 있을까요? 포함하지 않습니다 그렇다면 무엇을 하는 걸까요? 이 SDK는 비즈니스 로직을 포함하지 않습니’다 비즈니스 로직을 포함하지 않습니다: 다그 부분’은 개발자의 몫입니다. 또한’게이트웨이나 프로세서에 종속되지 않습니다. 주요 결제 프로세서들은 모두 온라인 승인 호스트 접속을 위한 자체 SDK를 보유하고 있습니다. 따라서 적절한 시점에 승인(또는 정산 등)을 위해 온라인에 접속하려면 해당 게이트웨이가 권장하는 SDK를’사용해야 합니다.
ID TECH 카드 리더기 연동을 포함한 결제 앱을 개발하는 것이 가능한가요? SDK 없이는 Universal SDK를 사용하는 경우에도 가능합니다. 실제로 ID TECH의’일부 고객들(다양한 공급업체의 하드웨어와 연동해야 하지만 여섯 가지 서로 다른 SDK를 사용하고 싶지 않은 경우)은 이 방식을 선택하기도 합니다.
단, 이 경우 다음 사항들을 직접 처리해야 합니다.
- USB, COM, Bluetooth 또는 해당 기기에 적용되는 방식으로 기기와 통신하기 위한 자체 연결 코드(사실상 별도의 드라이버)를 작성해야 합니다.
- 기기를 제어하는 데 필요한 펌웨어 명령어를 이해해야 합니다(ID TECH는 다양한 제품의 문서를 통해 이 정보를 제공하고 있습니다)..
- 기기의 프로토콜 요구사항(NGA, ITP, NEO 2 또는 해당되는 프로토콜)에 따라 데이터와 명령어의 패키징 및 언패키징을 처리해야 합니다.
- 데이터 파싱을 직접 처리해야 합니다.
- 상태 코드 및 오류 코드를 직접 해석해야 합니다.
- 이 모든 작업을 대상 플랫폼의 특정 하드웨어 및 운영 체제 요구사항에 맞게 구현해야 합니다.
혹시 장점 이 있다면 단 한 가지입니다. SDK를 사용하지 않는 방식은 원시 바이트를 직접 다루기 때문에 기기와의’직접 통신이 기본적으로 프로그래밍 언어에 독립적입니다. 시리얼 포트(또는 USB 포트 등)와 네이티브로 통신할 수 있다면, 어떤 언어를 사용하든 상관없습니다. 따라서 Pascal, Go, Kotlin처럼 현재 Universal SDK에서 지원하지 않는 언어에 익숙하더라도, 다소 번거롭지만 원하는 작업을 수행할 수 있습니다.
Universal SDK를 시작하는 가장 좋은 방법은 무엇인가요? 바로 간단합니다: download 후 문서를 확인하세요! 위의 Knowledge Base 링크를 또는 .NET 프로젝트 페이지를 참조하시면 당일 오후부터 바로 개발을 시작하실 수 있습니다. EMV가 처음이시라면, SDK 자체에 대한 소개와 함께 EMV(칩 카드 거래)에 대한 개요를 제공하는 백서인 EMV Transactions with the Universal SDK를 먼저 살펴보시기를 권장합니다.
디바이스 내장형 애플리케이션
결제 앱을 호스팅하는 것은 어떨까요? 디바이스 자체에서 실행하는 것이 가능한가요? 정말 가능할까요? 실제로 ID TECH의’일부 최신 디바이스(예: VP5300 삽입형 리더, VP6800 등)에서는 앱을 디바이스 자체에서 호스팅하는 것이 가능합니다. 실시간 운영 체제(및/또는 Linux) 환경에서 ANSI C로 임베디드 앱을 작성하는 데 익숙해야 하지만, 가능한 것은 사실입니다. 또한 앱을 디바이스에 상주시킬 수 있도록 특별히 설계된 디바이스 내장형 편의 라이브러리 세트인 ADF(Application Development Framework)가 별도로 제공됩니다.
Universal SDK(또는 ADF)에 대해 궁금한 점이 있으신가요? 사내 전문가에게 직접 문의하세요. 아래로 연락 주시기 바랍니다. 1-800-984-1010. 여러분의 의견을 기다립니다!
