stera terminal(ステラターミナル)のカード読み取り機能を使う
カード読み取り機能とは
stera terminal(ステラターミナル)には非接触ICカードリーダー、接触ICカードリーダー、磁気ストライプリーダーが搭載されています。
非接触ICカードリーダーは非接触EMVカードおよび、TypeA/TypeB/MifareUltralight/Felicaカードの一部領域の読み取りができます。
接触ICカードリーダーは接触ICカードからJIS-Ⅰおよび、JIS-Ⅱタグデータの読み取りができます。
磁気カードリーダーは磁気カードのJIS-Ⅰおよび、JIS-Ⅱの読み取りができます。
各種カードリーダーの制御はすべてCardReaderLibrary.aarおよびPaymentAPI.jar経由で行います。
stera terminal unit/mobile(ステラターミナルユニット/モバイル)はCardReaderLibrary2.aarおよびPaymentAPI2.jar
読出し可能媒体と提供機能
読出し可能なカード媒体、提供機能について、下記に記します。
表の詳細については横スクロールさせて確認することができます。
No | 媒体 | 提供機能 | 備考 |
---|---|---|---|
1 | 磁気カード | 磁気カードのJIS-I, JIS-IIを読出す機能を提供します。 | ※1 |
2 | 接触ICカード | 接触ICカードからJIS-I, JIS-IIタグデータを読出す機能を提供します。 | ※1、※3 |
3 | 非接触EMVカード | 非接触EMVカードから顧客情報タグデータを読出す機能を提供します。 | ※1、※4 |
4 | 非接触ICカード(Type A) | TypeAカードから共通領域および個別領域を読出す機能を提供します。 | ※2、※3 |
5 | 非接触ICカード(Type B) | TypeBカードから共通領域および個別領域を読出す機能を提供します。 | ※2、※3 |
6 | 非接触ICカード(MifareUltralight) | UIDおよびユーザエリアを読出す機能を提供します。 | |
7 | FeliCaカード | FeliCaカードから共通領域(鍵不要領域)を読出す機能を提供します。(IDmの呼び出しについては提供済み) |
1:多面待ちの場合はクレジット一体型の媒体のみ対応。多面待ちの場合で単体媒体(クレジット機能非搭載の会員証やポイントカード)は保証対象とならない
2:媒体内のアクセス鍵不要領域のみアクセス可能
3:EMV仕様に準拠しない接触ICカード、非接触ICカード(TypeA/TypeB)は、読出し対象とならない
4:MastercardおよびVisaのみ読出し対応。ほかブランドは読出し対象とならない
機能概要
磁気カード
1.待ち受け開始
カスタマー画面に磁気カード待ち受け画面を表示し、磁気カードの待ち受けを開始します。
2.出力対象データ
磁気カードにおける3rdパーティアプリへの出力対象データを以下に示します。
表の詳細については横スクロールさせて確認することができます。
トラック | 出力対象データ | 備考 |
---|---|---|
JIS1 Track1 | Cardholder Name | |
JIS1 Track2 | 全データ | PANはマスク ※1 |
JIS2 | 全データ | PANはマスク ※2 |
1 :PAN桁数が可変長となるため上6桁以降をマスク(マスク桁数はPCI規定に則る)
2 :PAN桁数が固定(16桁)のため上6桁以降の中6桁をマスク
3.ポイント会員番号抽出
3rdパーティアプリからカード読出し時に抽出トラックなどを指定することで、3rdパーティアプリがポイント会員番号を取得できます。
抽出トラックと読出し開始位置、終了位置を指定することができます。
また、検索文字列も指定することが可能であり、存在する場合指定位置のデータが取得でき、存在しない場合全データが取得できます。
接触ICカード
1.待ち受け開始
カスタマー画面に接触ICカード待ち受け画面を表示し、接触ICカードの待ち受けを開始します。
2.出力対象データ
接触ICカードデータにおける3rdパーティアプリへの出力対象データを以下に示します。
表の詳細については横スクロールさせて確認することができます。
Tag番号 | Tag名称 | 備考 |
---|---|---|
Tag ‘5F20’ | Cardholder Name | ※1 JIS1 Track1 |
Tag ‘9F0B’ | Cardholder Name Extended | ※1 JIS1 Track1 |
Tag ‘57’ | Tack 2 Equivalent Data | JIS1 Track2 |
Tag ‘DF4F’ | JIS II Equivalent Data | JIS2 |
1 :Tag'9F0B'が設定されている場合、Tag'9F0B'の値を出力
Tag'9F0B'が設定されていない場合、Tag'5F20'の値を出力
3.ICカード取り忘れ防止機能
接触ICカードの読み取り終了後における接触ICカード抜き忘れを防止するため、カード抜き取り誘導画面を表示します。
カード抜き取り誘導画面表示後、接触ICカードが抜かれるまでカード抜き取り誘導画面を継続表示します。
3rdパーティアプリがデータ取得できるのは、接触ICカードの抜き取り後となります。
4.ポイント会員番号抽出
3rdパーティアプリからカード読込時に抽出トラックなどを指定することで、3rdパーティアプリがポイント会員番号を取得できます。
抽出トラックと読出し開始位置、終了位置を指定することができます。
また、検索文字列も指定することが可能であり、存在する場合指定位置のデータが取得でき、存在しない場合全データが取得できます。
非接触EMVカード
1.待ち受け開始
カスタマー画面に非接触EMVカード待ち受け画面を表示し、非接触EMVカードの待ち受けを開始します。
2.出力対象データ
非接触EMVカードデータにおける3rdパーティアプリへの出力対象データを以下に示します。
表の詳細については横スクロールさせて確認することができます。
ブランド | Tag番号 | Tag名称 | 備考 |
---|---|---|---|
Master card | Tag ‘9F6E’ | Third Party Data | |
Visa | Tag ‘9F7C’ | Customer Exclusive Data(CED) |
非接触ICカード(TypeA/TypeB)
1.待ち受け開始
カスタマー画面に非接触IC(TypeA/TypeB)カード待ち受け画面を表示し、非接触ICカードの待ち受けを開始します。
2.提供インターフェース
対象となる非接触ICカードを読み取るための、カードにデータ送信するインターフェース(透過 DataThrough)を提供します。
本CardReaderLibraryは、3rdパーティアプリから受信したデータをカードに送信後、カードからの応答データをレスポンスに設定して3rdパーティアプリが取得できます。
待ち受け開始時にキャリアON、カード検出、活性化まで行いますので、3rdパーティアプリにて対象となるICカードに合わせてカードからデータ読出しを行ってください。
なお、CardReaderLibraryは複合機能を未搭載のため読出しデータが暗号化されている場合は3rdパーティアプリで復号化してください。
非接触ICカード(Mifare Ultralight)
1.待ち受け開始
カスタマー画面に非接触IC(Mifare Ultralight)カード待ち受け画面を表示し、非接触ICカードの待ち受けを開始します。
2.提供インターフェース
UIDの読出し機能を提供します。
Mifare Ultralightカードから、読出し開始ページから指定されたページ分のデータを連続してリードするインタフェース(透過 DataThrough)を提供します。
対象は、非暗号化かつ認証なしのエリアのみが対象です。
1回のリードで4ページ分(16バイト)を読み出します。4ページを超えるページ数読み出したい場合は、3rdパーティアプリにて複数回のリードを行ってください。
待ち受け開始時にキャリアON、カード検出、活性化まで行いますので、3rdパーティアプリにて対象となるICカードに合わせてカードからデータ読出しを行ってください。
Felicaカード
1.FelicaのIDm取得
FelicaのIDm読込のみを行います。
2.待ち受け開始
カスタマー画面にFelicaカード待ち受け画面を表示し、Felicaカードの待ち受けを開始します。
3.提供インターフェース
対象となる非接触ICカードを読み取るための、カードにデータ送信するインターフェース(透過 DataThrough)を提供します。
本CardReaderLibraryは、3rdパーティアプリから受信したデータをカードに送信後、カードからの応答データをレスポンスに設定して3rdパーティアプリが取得できます。
待ち受け開始時にキャリアON、カード検出、活性化まで行いますので、3rdパーティアプリにて対象となるICカードに合わせてカードからデータ読出しを行ってください。
なお、CardReaderLibraryはカードの専用領域へのアクセス鍵を保持しておりません。専用領域へアクセスする場合は、3rdパーティアプリからアクセス鍵を含むFelicaコマンドを実行していただくことでアクセス可能になります。
カードの多面待ち
CardReaderLibraryでは、多面待ち機能を提供しています。
多面待ちの対象は磁気カード、接触ICカード、非接触EMVカードです。
非接触ICカード(TypeA/TypeB)、非接触ICカード(Mifare Ultralight)カードおよびFelicaカードは多面待ちに非対応です。
CardReaderLibraryAPIについて
カード読み取り時のカスタマー画面仕様について
CardReaderLibrary ではカスタマー画面の制御を行います。
磁気カード
磁気カードでは以下のタイミングでカスタマー画面の制御を行う。
表の詳細については横スクロールさせて確認することができます。
No | 画面制御タイミング | 制御内容 | 備考 |
---|---|---|---|
1 | カード待ち受け | 待ち受け画面表示 | |
2 | カード読み取り正常終了 | 読み取り完了画面表示 | 完了音はSDKで鳴動 |
3 | カード異常終了 | 読み取り異常画面表示 | 異常音はSDKで鳴動 |
4 | カード終了 | 画面消灯 | |
5 | カード読み取りキャンセル | 画面消灯 |
接触ICカード
接触ICカードでは以下のタイミングでカスタマー画面の制御を行う。
表の詳細については横スクロールさせて確認することができます。
No | 画面制御タイミング | 制御内容 | 備考 |
---|---|---|---|
1 | カード待ち受け | 待ち受け画面表示 | |
2 | カード読み取り正常終了 | 読み取り完了画面表示 | 完了音はSDKで鳴動 |
3 | カード異常終了 | 読み取り異常画面表示 | 異常音はSDKで鳴動 |
4 | カード抜取り待ち | 抜取り待ち画面表示 | |
5 | カード終了 | 画面消灯 | |
6 | カード読み取りキャンセル | 画面消灯 |
非接触EMVカード
非接触EMVカードでは以下のタイミングでカスタマー画面の制御を行う。
表の詳細については横スクロールさせて確認することができます。
No | 画面制御タイミング | 制御内容 | 備考 |
---|---|---|---|
1 | カード待ち受け | 待ち受け画面表示 | |
2 | カード読み取り正常終了 | 読み取り完了画面表示 | 完了音はSDKで鳴動 |
3 | カード異常終了 | 読み取り異常画面表示 | 異常音はSDKで鳴動 |
4 | カード終了 | 画面消灯 | |
5 | カード読み取りキャンセル | 画面消灯 |
非接触ICカード(TypeA/TypeB)
非接触ICカード(TypeA/TypeB)では以下のタイミングでカスタマー画面の制御を行う。
表の詳細については横スクロールさせて確認することができます。
No | 画面制御タイミング | 制御内容 | 備考 |
---|---|---|---|
1 | カード待ち受け | 待ち受け画面表示 タッチしてください LED 青点灯 |
|
2 | カード読み取り正常終了 | 読み取り完了画面表示 読み取りが完了しました LED 青点灯 |
完了音はSDKで鳴動 |
3 | カード異常終了 | 読み取り異常画面表示 読み取りが完了しませんでした LED 赤点灯 |
異常音はSDKで鳴動 |
4 | カード終了 | 画面消灯 | |
5 | カード読み取りキャンセル | 画面消灯 |
非接触ICカード(Mifare Ultralight)
非接触ICカード(Mifare Ultralight)では以下のタイミングでカスタマー画面の制御を行う。
表の詳細については横スクロールさせて確認することができます。
No | 画面制御タイミング | 制御内容 | 備考 |
---|---|---|---|
1 | カード待ち受け | 待ち受け画面表示 タッチしてください LED 青点灯 |
|
2 | カード読み取り正常終了 | 読み取り完了画面表示 読み取りが完了しました LED 青点灯 |
完了音はSDKで鳴動 |
3 | カード異常終了 | 読み取り異常画面表示 読み取りが完了しませんでした LED 赤点灯 |
異常音はSDKで鳴動 |
4 | カード終了 | 画面消灯 | |
5 | カード読み取りキャンセル | 画面消灯 |
Felicaカード
Felicaカードでは以下のタイミングでカスタマー画面の制御を行う。
表の詳細については横スクロールさせて確認することができます。
No | 画面制御タイミング | 制御内容 | 備考 |
---|---|---|---|
1 | カード待ち受け | 待ち受け画面表示 タッチしてください LED 青点灯(500ms 感覚) |
|
2 | カード読み取り正常終了 | 読み取り完了画面表示 読み取りが完了しました LED 青点灯 |
完了音はSDKで鳴動 |
3 | カード異常終了 | 読み取り異常画面表示 読み取りが完了しませんでした LED 赤点灯 |
異常音はSDKで鳴動 |
4 | カード終了 | 画面消灯 | |
5 | カード読み取りキャンセル | 画面消灯 |
カードの多面待ち
磁気カード、接触ICカード、非接触EMVカードの多面待ちの場合、カスタマー側のカード待ち受け画面はクレジットの多面待ちと同じ画面を表示します。
カード読み取り時の鳴音仕様
CardReaderLibrary では読み取り終了時に完了音もしくは異常音を鳴動させます。
表の詳細については横スクロールさせて確認することができます。
No | 名称 | 音源 | 鳴動条件 | 備考 |
---|---|---|---|---|
1 | 完了音 | 許可音 | カード読込みが正常終了したときに1回鳴音 | ピッ |
2 | 異常音 | 拒否音 | カード読込みが異常終了したときに1回鳴音 (タイムアウトは除く) |
ピーピーピー |
実際にカード読み取りしてみる
磁気カード、接触ICカード、非接触EMVカードを例にカード読み取りの手続きを説明します。ほかのカードについてはSDK仕様書を参照ください。
カード読み取りを利用するためには、下記の手続きを実施する必要があります。
1 接触ICカードのみカード読み取りが発生します。磁気カード、非接触ICカードでは発生しません。
2 カード種別の違い、カードかざしの状況により、複数回の通知が発生します。
3 磁気カード、非接触ICカード、非接触EMVカードにより取得するメソッドが変わります。
実際のコードはSDK仕様書に同梱のサンプルアプリのソースをご確認ください。
EMVカードの読み取りはReadEmvActivity.java中に実装されています。