技術記事
ID TECH のUniversal SDK 入門
ID TECH 製のクレジットカードリーダーを選ぶメリットの一つは、Universal SDK と呼ばれる単一のソフトウェア開発キットを通じて、POS や決済アプリ環境へのデバイス統合を迅速かつスムーズに行える点です。
これは 「ユニバーサル」と呼ばれる理由は、サポート対象のすべてのID TECH 製品にわたって共通の API を提供し、 環境に関係なく同じように動作するためです。
とはいえ、ID TECH のUniversal SDK には、デバイスを展開する OS の種類や使用したい特定のプログラミング言語に応じて、いくつかのバリエーションがあることを認識しておくことが重要です。Windows 上で大半のID TECH 製品をサポートするためのC#ベース(.NET 4.61、.NET Standard 2.0/2.1、.NET Core 3.1)のUniversal SDK が用意されています。一方、たとえばSamsung のスマートフォンで当社の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 は、Visual Studio との容易な統合のため、 NuGet を通じて配布されています。 当社の プロジェクトページ (.NET SDK に関する)には、プロジェクトへの 実装 に関する.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 上のすべての シリアル 、IP 接続のデバイスを制御します
- 当社の uDemo ソフトウェアのコンパイル済みインストーラー
- 変更履歴
- 各種 .NET ベースのユーティリティ。 ID TECH デバイスの制御・設定用
当社の SDK 内 SDK パッケージをダウンロード元 ナレッジ ベース (非 .NET バージョン)? Zip アーカイブを解凍すると、4 つのフォルダが見つかります:
- デモ — このフォルダには、以下に提供されているサンプルコードプロジェクトに対応するビルド済み実行ファイルが含まれています: ソースコード フォルダ。実行ファイルは 2 つあります。1 つはドキュメントで説明されているごく基本的な「チュートリアル」デモアプリ(Simple Demo と呼ばれます)で、もう 1 つは より高機能なアプリです(少なくとも Windows SDK の場合)。ルックアンドフィールは UDemo ユーティリティ で紹介されている もの 以前の投稿.
- ドキュメント — SDK ドキュメントは HTML と PDF の 2 形式で提供されます。それぞれに API の詳細な説明、使用例、背景情報、チュートリアルのウォークスルーなどが含まれています。
- SDK — ここでは、’対象プラットフォーム上で実行中のアプリをサポートするために必要な、コンパイル済みライブラリやその他のリソースが含まれています。Windowsマシンの場合はDLLが、MacOSの場合は 拡張子DYLIB のファイルが、Androidの場合はJARファイルが含まれています。
- ソースコード — このフォルダには、ヘッダーファイル、プロジェクトファイル、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は、(磁気ストライプ、接触型EMV、非接触型のいずれであっても)取引の実行を大幅に簡素化します。TLVデータ(および/またはMSRデータ)の解析、ステータスコードの解釈、デバイス動作のカスタマイズのための便利なメソッドが用意されているためです。Universal SDKを使えば、データプロトコル、解析ルーチン、エラーコード参照テーブル、その他の低レベルな詳細に煩わされることなく、かなり高い抽象度でコーディングできます。
Universal SDKに できない ことはあるのでしょうか? はい、 SDKには’、 ビジネスロジックは含まれていません。 、その部分は’ユーザー側で実装する必要があります。また、’ゲートウェイやプロセッサーには対応していません。主要な決済プロセッサーはいずれも、オンラインの認証ホストにアクセスするための 独自の SDKを提供しています。つまり、適切なタイミングで認証(あるいは決済処理など)のためにオンライン接続を行うには、’ご利用のゲートウェイが推奨するSDKを使用する必要があります。
Universal SDKを使って決済アプリを構築する(ID TECHカードリーダーとの統合を含む)ことは可能でしょうか? SDKなしで 実は可能です。そして、ID TECHの’顧客の中には(多くの場合、様々なプロバイダーのハードウェアと統合する必要があるものの、そのために6種類もの異なるSDKを使いたくないという顧客が)、その道を選ぶ方もいらっしゃいます。
ただし、その場合は以下のことを行う必要があることを忘れないでください:
- USB、COM、Bluetooth、その他何であれ、デバイスと通信するための独自の接続コード(本質的には独自の専用ドライバー)を作成する。
- デバイスを制御するために必要なファームウェアコマンドを理解する(ID TECHは各種製品のドキュメントでこの情報を提供しています)。.
- デバイスのプロトコル要件(NGA、ITP、 NEO 2など該当するもの)に従って、データやコマンドのパッケージ化および解凍を処理する。
- データ解析を自分で行う。
- ステータスコードやエラーコードを自分で解釈する。
- これら全てを、対象とするプラットフォーム固有のハードウェアおよびオペレーティングシステム要件に合わせて実装する。
何らかの 利点 SDKを使わない方法を選ぶ場合のメリットは何でしょうか?それはただ一つ: なぜなら お客様は’ 生のバイトデータを扱うことになり、デバイスとの直接通信は基本的に プログラミング言語に依存しないためです。シリアルポート(またはUSBポートなど)とネイティブに通信できれば、どの言語を使用しても問題ありません。 したがって 、Pascal、Go、Kotlin(あるいは現在Universal SDKでサポートされていない言語)でのプログラミングに慣れている場合でも、容易ではないにせよ、作業を完了させることができます。
Universal SDKを使い始めるには、どうすればよいでしょうか? それは 簡単です: ダウンロードして、ドキュメントを読むだけです!ナレッジベースのリンク または .NET プロジェクトページ (上記)にアクセスすれば、今日の午後からでもコーディングを始められます。それまでの間、EMVに不慣れな方は、まず当社のホワイトペーパーをご覧になることをお勧めします。 Universal SDKを用いたEMVトランザクションでは、EMV(チップカード取引)の概要に加えて、USDK自体の入門的な解説も提供しています。
デバイス常駐型アプリケーション
決済アプリをホストする方法について デバイス自体に搭載することは可能でしょうか? それは可能でしょうか?実は、ID TECHの’新しいデバイス(例:VP5300挿入式リーダーやVP6800など)の一部では、デバイス自体にアプリをホストすることが実際に可能です。ANSI Cでリアルタイムオペレーティングシステム(および/またはLinux)向けの組み込みアプリを記述する知識が必要ですが、はい、可能です。そして、お客様のアプリをデバイス上で動作させることを可能にするための、ADF(Application Development Frameworkの略)と呼ばれる、デバイス常駐型に特化した便利なライブラリ群も用意されています。
Universal SDK(またはADF)についてご質問がございますか?当社の社内エキスパートにご相談ください。お問い合わせは下記まで: 1-800-984-1010. お気軽にお問い合わせください!
