以下、添付図面を参照しながら、決済端末及びプログラムの実施形態について詳細に説明する。
図1は、電子決済システムの全体構成図である。図1に示すように、電子決済システム1は決済端末10とセンタサーバ11を含むネットワークシステムより構成される。決済端末10は、チェーン店などの各店舗が有している。各店舗には、店舗の規模などにより一台〜数十台の決済端末10が備わっている。センタサーバ11はカード会社が備えている。
決済端末10は、電子決済に係る一連の処理を行う装置である。例えば、決済端末10は、電子決済に係る一連の処理として、案内画面を表示し、その案内に従いオペレータ(ユーザ)から決済データに含むべき情報の入力を受け付けるなどの処理を行う。また、決済端末10は、内蔵の磁気カード読取部10a、若しくは外付けのICカードリーダ付きピンパッド(以下、ピンパッドと略す)100又は非接触リーダ/ライタ装置101などの読取装置を通じて顧客のカード情報を読み取り、オペレータの入力情報と共に決済データを生成する処理を行う。
ピンパッド100は、ICカードリーダ部(図示せず)と、ICカードの暗証番号を入力するための入力パッド100aとを備えた装置である。ICカードリーダ部は、クレジットカードやデビットカードなどのIC部が接触することにより、カードIDや有効期限等のカード情報の読み取りを行う。
非接触リーダ/ライタ装置101は、NFC(Near Field Communication)等の近距離無線通信技術を用いた装置である。非接触リーダ/ライタ装置101は、電子的に金銭情報を記憶する非接触式のICカードから、カード情報としてカードIDや電子マネー情報等の読み取りを行う。
センタサーバ11は、カード会社が管理するサーバ装置である。センタサーバ11は、カード情報の認証処理や、決済データの登録処理や、決済額分の金銭マイナス処理などを行う。
決済端末10は、例えばクレジット決済の場合、入力部から電子決済に係るデータの入力を受け付けると決済データを生成する。そして、決済端末10は、通信ネットワークNに接続し、その決済データをセンタサーバ11に送信する。センタサーバ11は、決済端末10から受信した決済データを基に認証処理を行い、認証が成立した場合に決済データを登録する。一方、決済端末10は、センタサーバ11から認証成立を示す情報を受信した場合に、当該取引の明細をレシート用紙に印字して排出し、電子決済に係る一連の手続きを終了する。
続いて、決済端末10の構成について説明する。
図2は、決済端末10の外観斜視図である。
決済端末10の本体21において、右側面の下部に、電源スイッチ22が設けられている。電源スイッチ22は、ON/OFFの切替スイッチである。オペレータが電源スイッチ22をON側に切り替えると、電源ラインが接続され、内蔵バッテリの電力が本体21の各部や後述する外部機器に供給される。また、オペレータが電源スイッチ22をOFF側に切り替えると、電源ラインが切断され、電力供給が停止する。
本体21の背面には、外部機器等を接続するためのケーブルの接続口が設けられている。不図示であるが、本例では、ピンパッド100(図1参照)と、非接触リーダ/ライタ装置101(図1参照)と、ネットワーク機器と接続するための接続口が設けられている。
本体21の上部には、本体21に対して開閉可能な上面パネル23が設けられている。上面パネル23は、操作部24と表示部25を有する。操作部24は、オペレータのタッチ入力を検出して本体21の内部の制御回路に信号を出力するタッチパネルである。表示部25は、制御回路から送信された案内画面やエラー画面や操作キー等を表示する液晶等のディスプレイである。タッチパネルはディスプレイ画面上に配設されている。ディスプレイ画面に表示された操作キー等の操作子をオペレータが操作すると、その操作信号が決済端末10の制御回路に入力される。
本体21の内部には、取引の明細や、売上レポートや、エラー内容等をレシート用紙に印字する印字部27(図3参照)が設けられている。印字部27には、ロール状のレシート用紙が着脱自在にセットされている。印字部27は、ロールからレシート用紙を所定量だけ引き出し、引き出した領域に取引の明細やエラー内容等を印字する。印字後のレシート用紙は、本体21と上面パネル23との間に設けられているレシート発行口26から排出される。ロール状のレシート用紙は上面パネル23を開閉することにより交換することができる。
図3は、決済端末10のハードウェアのブロック図である。図3に示すように、決済端末10は、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303、RTC(Real Time Clock)部304、メモリ部305、コントローラ306、通信I/F307、308、309を備える。各部301〜309は、バス310により相互に接続される。これらの内のCPU301、ROM302、及びRAM303は、決済端末10全体の制御を司る制御部30である。
CPU301は、中央演算処理装置である。CPU301は、プログラムを実行し、適宜演算処理を行って、決済端末10全体の制御を行う。
ROM302は、不揮発性メモリである。ROM302には、ブートプログラム等の固定のプログラムやデータを記憶させる。
RAM303は、揮発性メモリである。RAM303には、メモリ部305のプログラムやデータをロードするための領域や、CPU301の処理結果を一時的に保存しておくためのワーク領域などを設ける。
RTC部304は、現在の日時を計時する。
メモリ部305は、フラッシュROM等の不揮発性メモリである。メモリ部305には、表示用データ3051や、エラー出力情報3052や、ログ情報3053や、エラー再出力情報3054や、制御プログラム3055などを記憶させる。
表示用データ3051は、決済端末10の各種処理に使用される画面データであり、操作子となる入力キー等を含む。画面データの一つに、決済処理に係る操作を案内するための案内画面データがある。
案内画面データは、具体的には、選択画面データや、入力画面データや、指示画面データや、確認画面データや、メッセージ画面データなどである。
選択画面データは、カードの種類をオペレータに選択させるための案内画面データである。入力画面データは、取引金額や暗証番号等をオペレータに入力させるための案内画面データである。指示画面データは、カード情報読取装置でカードを読み取らせることをオペレータに指示するための案内画面データである。確認画面データは、決済内容を表示してオペレータに内容を確認させるための案内画面データである。メッセージ画面データは、決済端末10の動作状態をメッセージでオペレータに知らせるための案内画面データである。
エラー出力情報3052は、エラー画面のレイアウトデータや、その詳細内容の確認画面のレイアウトデータや、エラーコードの対応情報など、エラー出力に必要な情報からなる。決済端末10の制御部30は、正常処理から外れるものを検出した場合に、その検出内容に対応するエラーコード又はエラーメッセージをエラー出力情報3052から取得する。そして、制御部30は、取得したエラーコード又はエラーメッセージを所定のエラー画面のレイアウトデータに組み込んでエラー画面データを生成する。
ログ情報3053は、決済端末10の制御部30が自機の動作情報を逐次書き出すところ、又はその動作情報が書き出されたファイル(ログファイル)である。
エラー再出力情報3054は、決済端末10の制御部30がエラーを検出した際に取得又は生成するエラー詳細情報を、後の再出力のために保存しておくところ、又はその保存情報である。制御部30は、エラーが発生する度に、メモリ部305のエラー再出力情報3054を一つ前のエラー詳細情報から最新のエラー詳細情報(つまり直近エラー情報)に上書きする。
制御プログラム3055は、決済端末10に対し決済処理などの処理を所定手順に従って動作させるためのプログラムである。制御プログラム3055には、エラー詳細情報を再出力する処理(後述の再出力処理)のプログラムなども含まれる。
メモリ部305には、その他、エラー時の問合せデスクの電話番号情報や、自機の端末番号情報などが記憶されている。
コントローラ306には、操作部24、表示部25、印字部27、及びカード読取部10aが接続されている。コントローラ306は、各部24、25、27、100aの信号或いはデータの入出力の制御を司る。
操作部24は、本例ではタッチパネルであり、オペレータが表示部25に対して行ったタッチ入力の操作信号や入力したデータをコントローラ306に出力する。
表示部25は、本例では液晶ディスプレイであり、制御部30が出力する画面データをコントローラ306から受け取り、液晶ディスプレイ画面に表示する。
印字部27は、制御部30が出力する印字データをコントローラ306から受け取り、レシート用紙に印字データの示す内容を印字する。具体的に、印字部27は、ロールを回転制御する。そして、ロールから引き出されたレシート用紙に、熱転写等を施し、印字データの示す内容を印字する。
カード読取部10aは、磁気カードのカード情報を読み取り、読み取ったデータをコントローラ306に出力する。
通信I/F307は、ピンパッド100(図1参照)と通信を行うための通信インタフェースである。ピンパッド100が決済端末10の不図示の接続口にケーブルにより接続されると、通信I/F307は、ピンパッド100の接続を検出する。そして、制御部30の制御の下にピンパッド100と通信を確立し、制御部30からの命令により通信を開始する。
通信I/F308は、非接触リーダ/ライタ装置101(図1参照)と通信を行うための通信インタフェースである。非接触リーダ/ライタ装置101が決済端末10の不図示の接続口にケーブルにより接続されると、通信I/F308は、非接触リーダ/ライタ装置101の接続を検出する。そして、制御部30の制御の下に非接触リーダ/ライタ装置101と通信を確立し、制御部30からの命令により通信を開始する。
通信I/F309は、通信ネットワークNのネットワーク機器と通信を行うための通信インタフェースである。ネットワーク機器が決済端末10の不図示の接続口にケーブルにより接続されると、通信I/F309は、ネットワーク機器の接続を検出する。そして、制御部30の制御の下にネットワーク機器と通信を確立し、制御部30からの命令により通信を開始する。
なお、ここでは図示を省略しているが、決済端末10は、各部301〜309、24、25、27、10aに電力を供給するためのバッテリや、バッテリに動作電圧を供給する電源部などを備えている。電源スイッチ22(図2参照)は上記電源部に接続されている。オペレータが電源スイッチ22をONにすると、電源ラインが導通し、電源部が各部301〜309、24、25、27、10aにバッテリの電力を供給する。オペレータが電源スイッチ22をOFFにした場合は、バッテリからの電力供給が停止する。
次に、決済端末10の動作について説明する。
決済端末10は、オペレータが電源スイッチ22をONにすることにより、バッテリの電力が電源部から各部に供給され、所定の起動処理を経て起動する。
起動処理において、CPU301は、先ずROM302のブートプログラムを読み込んで実行する。続いて、CPU301はメモリ部305の制御プログラム3055の内のOS(Operating System)やアプリケーションプログラムなどを、順に、主記憶装置として使用するRAM303にロードして実行する。そして、決済端末10は初期画面(業務選択画面)を表示し、オペレータからの入力待ち状態となる。
業務選択画面には、「業務」、「集計」、「設定」、「練習」などの選択キーが含まれている。「業務」キーは、オペレータが決済端末10に決済処理を行うことを宣言するための選択キーである。「集計」キーは、オペレータが決済端末10に過去の取引履歴を集計することを宣言するための選択キーである。「設定」キーは、オペレータが決済端末10に設定値を設定することを宣言するための選択キーである。「練習」キーは、オペレータが決済端末10に決済処理の操作を練習することを宣言するための選択キーである。
これらの選択キーの中からオペレータが「業務」キーを選択するとする。すると、CPU301はアプリケーションプログラムに含まれる決済処理のためのプログラムを実行し、後述する機能部を実現する。
図4は、決済端末10の機能ブロック図である。図4に示すように決済端末10は、電子決済部400や、出力部401や、保存部402や、指示部(受付部を含む)403や、再出力部404などの機能部をプログラムの実行により実現する。
電子決済部400は、オペレータからの入力を受け付けて所定順序で電子決済処理を進める処理を行う。
出力部401は、電子決済処理時に発生したエラーを検出し、そのエラー情報を表示部25や印字部27などへ出力する処理を行う。
保存部402は、出力部401が出力したエラー情報をメモリ部305にエラー再出力情報3054として保存する処理を行う。
指示部403は、エラー情報の再出力を要求するための操作子を表示部25に供給し、表示部25に供給した操作子からの操作信号をエラー情報の再出力の指示として受け付ける処理を行う。
再出力部404は、指示部403で受け付けた再出力の指示に基づき、メモリ部305に保存されているエラー再出力情報3054をエラー情報として再出力する処理を行う。
図5は、決済端末10の決済に係るメイン処理のフロー図である。
先ず、CPU301(電子決済部400)は、処理番号1、処理番号2、…、処理番号n、…、処理番号N(Nは整数)の内の処理番号n(n=1、2、…、N)の処理を開始する(S1)。
ここで、処理番号とは、説明を単純化するために付与した一塊の処理の識別番号である。具体的に、後述する選択画面を用いた受付処理や入力画面を用いた受付処理など、画面の表示処理及びその画面における受付処理を含む一塊の処理を示す識別番号である。ここでは、開始の処理番号n=1、終了の処理番号n=Nとし、処理番号nの表示する画面を画面nとして示す。
ステップS1の処理において、CPU301(電子決済部400)は、主に案内画面nを表示し、オペレータなどからの入力を受け付ける処理を行う。一巡目は、n=1とし、業務選択画面(画面0とする)の「業務」キーに遷移先として割り当てられている業務一覧選択画面(画面1)を表示し、オペレータのカードの種類を示す情報の入力を受け付ける。
次に、CPU301(電子決済部400)は次の処理番号に進むための信号を受け付けたか否かを判定する(S2)。一巡目では、オペレータにより業務一覧選択画面上のカードの種類を示す選択キーが押下される。CPU301(電子決済部400)は、その押下信号を次の処理に進むための信号として受け付ける。
また、二巡目以後の他の選択画面においても、CPU301(電子決済部400)は、オペレータが押下する選択キーの押下信号を、次の処理に進むための信号として受け付ける。
また、二巡目以後の案内画面が決済金額等の入力画面である場合は、オペレータにより入力画面の入力ボックスへの決済金額等のデータ入力が行われる。この場合は、CPU301(電子決済部400)は、オペレータがデータ入力後に押下する確定キーの押下信号などを、次の処理に進むための信号として受け付ける。
また、二巡目以後の案内画面が決済内容等の確認画面である場合は、CPU301(電子決済部400)は、オペレータが決済内容の確認後に押下する確定キーの押下信号などを、次の処理に進むための信号として受け付ける。
また、二巡目以後の案内画面が指示画面やメッセージ画面である場合は、カード情報読取装置やネットワーク機器などから、カード情報や、決済の成立結果などを示す通知信号が送信される。CPU301(電子決済部400)は、それらの通知信号を次の処理に進むための信号として受け付ける。
CPU301(電子決済部400)は、押下信号や通知信号などを検出するとステップS2の判定処理でYesと判定する。一方、それらの信号を検出しない場合にはステップS2の判定処理でNoと判定し、ステップS3に処理を移行する。
ステップS3では、CPU301(電子決済部400)はリセットキーの押下信号を受け付けたか否かを判定する。
リセットキーは、決済処理の操作を最初からやり直すことをオペレータがCPU301(電子決済部400)に宣言するためのキーである。リセットキーは主に案内画面の内の指示画面に設けている。
CPU301(電子決済部400)は、このリセットキーをオペレータが押下するときに発する押下信号を検出する。CPU301(電子決済部400)は、この押下信号を検出すると、ステップS3でYesと判定する。一方、その押下信号を検出しない場合にはNoと判定し、ステップS4に処理を移行する。
ステップS4では、CPU301(電子決済部400)は戻るキーの押下信号を受け付けたか否かを判定する。
戻るキーは、決済処理の画面を一つ前の画面に戻すことをオペレータがCPU301(電子決済部400)に宣言するためのキーである。戻るキーは主に案内画面の内の選択画面や入力画面や確認画面などに設けている。
CPU301(電子決済部400)は、この戻るキーをオペレータが押下するときに発する押下信号を検出する。CPU301(電子決済部400)は、戻るキーの押下信号を検出すると、ステップS4の判定処理でYesと判定する。一方、戻るキーの押下信号を検出しない場合にはステップS4の判定処理でNoと判定し、ステップS2の処理に戻る。
以下、CPU301の各ステップS2、S3、S4のYes判定時の処理について説明する。
ステップS2でYes判定となった場合、CPU301(出力部401)は、エラー処理の判定を行う(S5)。
例えば、入力画面で確定キーの押下信号を受け付けたとすると、その入力データが所定形式且つ所定範囲の正常な値をとる場合に、エラー処理が不要なものとしてYesと判定する。
また、通信信号を受け付けたとすると、その通信信号が正常な処理を示す信号である場合に、エラー処理が不要なものとしてYesと判定する。
なお、本例では、選択画面で選択キーの押下信号を受け付けた場合は、全てエラー処理が不要なものとしてYesと判定する。
このようにCPU301(出力部401)はエラー処理が不要な場合にステップS5の判定処理でYesと判定し、続くステップS7の処理に移行する。
一方、CPU301(出力部401)はエラー処理が必要な場合にはステップS5の判定処理においてNoと判定し、ステップS6の処理に移行し、エラー処理を行う。エラー処理後はステップS1に戻って処理を行う。なお、ステップS6のエラー処理については後に詳しく説明する。
ステップS7において、CPU301(電子決済部400)は、ステップS1で受け付けた信号がセンタサーバ11からの決済の成立結果を示す通知信号であるか否かを判定する。
ステップS1で受け付けた信号が、その通知信号でない場合、CPU301(電子決済部400)は、ステップS1に戻り、次の処理番号をセットする。そして、この処理番号の表示処理や受付処理を行う。
例えば、選択キーとして「クレジット」キーを検出した場合、CPU301(電子決済部400)は決済金額の入力に係る処理番号をセットする。選択キーとして「電子マネー」キーを検出した場合は、CPU301(電子決済部400)は電子マネーの種類の選択に係る処理番号をセットする。
ここで、次にセットする処理番号は、ステップS1で受け付け可能な信号の種類と次にセットする処理番号とを予め対応付けてなる対応情報から、CPU301(電子決済部400)が抽出するものとする。
二巡目以後のステップS1からの処理も、一巡目で説明した処理の流れと同様に説明できる。説明が重複することになるため、ここではその説明を省略する。
以上のようにして、CPU301(電子決済部400)は、ステップS1において処理番号1から必要な処理番号の処理を対応情報に示す順に行い、処理番号Nに至る。
これにより、CPU301(電子決済部400)は、各処理番号の処理で受け付けた選択情報、入力データ、又はカード情報等をRAM303上に一時的に保管し、それらを決済データとして生成する。
また、CPU301(電子決済部400)は、決済データの生成後、その決済データをセンタサーバ11に送信し、電子決済を成立させる。
決済データの生成や、電子決済の成立までの一連の流れは、後に例を挙げて説明することとする。
さて、ステップS7において、CPU301(電子決済部400)が、ステップS1で受け付けた信号がセンタサーバ11からの決済の成立結果を示す通知信号であると判定するとする。この場合、CPU301(電子決済部400)は、処理をステップS8に移行する。
ステップS8において、CPU301(電子決済部400)は、印字部27に対して取引明細を示す印字データを出力し、レシートの出力を指示する。また、表示部25に対してメッセージ画面データを出力し、取引が成立した旨を表示する。そして、レシートの出力後、CPU301(電子決済部400)は本処理を終了し、業務選択画面(画面0)を表示して、入力待ち状態をとる。
次に、ステップS3でYes判定となった場合の処理について示す。この処理は、指示画面などにおいてオペレータがリセットキーを押下することにより開始する。
CPU301(電子決済部400)は、それまでに作成した決済データに係る一連のデータをRAM303から消去する(S9)。
データ消去後、CPU301(電子決済部400)はステップS1に戻り、対応情報にリセットキーが押下された場合の次の処理対象として設定されている最初の処理番号「処理番号1」をセットする。
次に、ステップS4でYes判定となった場合の処理について示す。この処理は、選択画面や入力画面や確認画面などにおいてオペレータが戻るキーを押下することにより開始する。
CPU301(電子決済部400)は、ステップS1に戻り、次の処理対象として一つ前の処理番号をセットする。
以上がメイン処理の流れである。
CPU301(電子決済部400)は、決済処理の実行中、決済端末10の状態を逐次時系列順にログファイルに書き出す。画面を表示した場合は画面コードを、キー入力や信号の入力などがあった場合はそれぞれの操作内容を示す情報を、時刻情報などと共に書き出す。
書き出す内容として、例えば、選択画面においてオペレータが選択キーを押下した場合には、その選択画面の画面コードや押下された選択キーの種類を示す情報などを書き出す。入力画面においてオペレータが決済金額などをデータ入力した場合には、その画面コードや決済金額データなどを書き出す。指示画面の表示中であれば、その画面コードやカード情報読取装置から送信されるカード情報などを書き出す。メッセージ画面の表示中であれば、その画面コードやセンタサーバ11(図1参照)から送信された成立情報(成立番号)などを書き出す。
また、エラー発生情報や、エラー発生時の操作情報などを書き出す。
続いて、決済データの生成と、電子決済の成立までの一連の流れを具体例を挙げて説明する。
先ず、CPU301(電子決済部400)は処理番号1の処理において、メモリ部305の業務一覧選択画面データを表示部25に表示し、オペレータからの入力を受け付ける。
業務一覧選択画面(画面1)において、カードの種類を示す「クレジット」や「デビット」や「電子マネー」の選択キーの内から一つをオペレータがタッチ入力するとする。
すると、CPU301(電子決済部400)は、その入力信号を受け付け、そのカードの種類を示す情報を決済データの一部としてRAM303に一時的に保管する。
そして、CPU301(電子決済部400)は、対応情報を参照し、受け付けた入力信号の種類に対応する処理番号を、次の処理対象としてセットする。
例えば、「クレジット」や「デビット」のキー入力を受け付けた場合には、オペレータに決済金額を入力させるための処理を行う処理番号2をセットする。
また、「電子マネー」のキー入力を受け付けた場合には、更に電子マネーの種類をオペレータに選択させるための処理を行う処理番号3をセットする。
処理番号3の処理においては、CPU301(電子決済部400)は、電子マネーの種類の選択画面(画面3)を表示し、オペレータからの入力を受け付ける。CPU301(電子決済部400)は、オペレータから電子マネーの種類を示す情報の入力を受け付けると、決済データの一部としてRAM303に電子マネーの種類を示す情報を一時的に記憶させる。そして、次の処理対象として処理番号2をセットする。
続いて、CPU301(電子決済部400)は処理番号2の処理において、メモリ部305の決済金額入力画面データを表示部25に表示し、オペレータからの入力を受け付ける。
決済金額入力画面(画面2)において、オペレータが決済金額を入力するとする。すると、CPU301(電子決済部400)は、その入力データを受け付ける。
また、CPU301(出力部401)が、データの内容に異常がないかを判定する。この例では、文字形式やデータのとる範囲などに異常がないかを判定する。
正常の場合、CPU301(電子決済部400)は、入力データをRAM303に決済データの一部として一時的に保管する。そして、次の処理対象として処理番号4をセットする。
続いて、CPU301(電子決済部400)は処理番号4の処理において、メモリ部305の、カード読み取りを促す指示画面データを、表示部25に表示する。そして、オペレータの選択したカードに対応するカード情報読取装置からの入力を受け付ける。
オペレータがカード情報読取装置にカードを挿入するなどし、カード情報読取装置にカード読み取りを行わせるとする。
すると、CPU301(電子決済部400)は、そのカード情報についての信号を通信I/F307(又は通信I/F308)を介して受け付ける。
CPU301(出力部401)は受付内容に異常がないかを判定する。この例では、信号が読取エラーを示すもので無いかを判定する。
正常の場合、CPU301(電子決済部400)は、カード情報をRAM303に決済データの一部として一時的に保管する。
そして、次の処理対象として処理番号5をセットする。
続いて、CPU301(電子決済部400)は、処理番号5の処理において、確認画面データを表示部25に表示し、オペレータからの入力を受け付ける。
確認画面データは、CPU301(電子決済部400)が、メモリ部305の確認画面データ(レイアウト情報)に、RAM303に一時的に保管した決済データを組み込むなどして生成する。
確認画面(画面5)において確認キーをオペレータがタッチ入力したとする。すると、CPU301(電子決済部400)がその押下信号を受け付ける。そして、CPU301(出力部401)がその押下信号を正常なものとして判定する。
続いて、CPU301(電子決済部400)は、付加情報として端末番号等を取得するなどの処理を施して、RAM303上に決済データを完成させる。そして、CPU301(電子決済部400)は、次の処理対象として処理番号6をセットする。
続いて、CPU301(電子決済部400)は、処理番号6の処理において、メモリ部305の通信中を示すメッセージデータを表示部25に表示する。そして、センタサーバ11に認証処理や取引の登録処理を要求し、処理対象の決済データを送信する。
送信後、CPU301(電子決済部400)は、センタサーバ11から応答があるまで待機する。その後、CPU301(電子決済部400)がセンタサーバ11から応答信号を受け付けたとする。すると、CPU301(出力部401)は受付内容に異常がないかを判定する。
この例では、信号が通信エラーや、残高不足などの決済の不成立などを示すもので無いかを判定する。正常の場合、CPU301(電子決済部400)は、成立を示す信号に対応する処理番号(処理番号N)を次の処理対象としてセットする。
続いて、CPU301(電子決済部400)は、処理番号Nの処理において、メモリ部305の「決済が成立しました。印字を行っています」等を示すメッセージ画面データを表示部25に表示する。
そして、RAM303の決済データを含む明細データを印字部27に出力し、印字部27にレシートを発行させる。
レシートの発行後、CPU301(電子決済部400)は決済処理を終わらせて、初期画面(業務選択画面)の処理に戻り、表示部25に業務選択画面(画面0)を表示する。
なお、以上は、決済処理の一例を示すものであり、カードの種類に応じて他の処理順序をとることもある。例えば処理順序が前後したり、処理数や画面数が増減したりすることもありうる。
次に、決済処理の途中にエラーが発生した場合のCPU301の処理について説明する。
図6は、CPU301におけるエラー処理(ステップS6)のフロー図である。
CPU301(出力部401)はエラーを検出すると(ステップS5:No判定)、先ず、決済処理を中断する(S60)。この中断処理において、CPU301(出力部401)は、実行中の処理番号をRAM303に一時的に保管し、エラー処理に係る処理番号をセットする。また、エラーの発生した処理番号の一つ前の処理番号までの生成データをRAM303に保管する。
続いて、CPU301(出力部401)は、エラー処理として、先ずエラー画面を表示する(S61)。
この処理において、CPU301(出力部401)は、検出したエラーに対応するエラーコードやエラーメッセージなどをエラー出力情報3052から取得する。また、CPU301(出力部401)は、エラー出力情報3052からエラー画面のレイアウトデータを取得する。そして、CPU301(出力部401)は、エラー出力情報3052から取得したエラーコードやエラーメッセージなどをレイアウトデータに組み込んでエラー画面データを生成し、そのエラー画面(図12参照)を表示部25に出力する。
続いて、CPU301(保存部402)は、エラー詳細情報をメモリ部305にエラー再出力情報3054として保存する(S62)。
この処理において、CPU301(保存部402)は、エラー出力情報3052から取得したエラーコードやエラーメッセージをメモリ部305にエラー再出力情報3054として保存する。また、CPU301(保存部402)は、エラー発生までの時系列順の操作内容等を示す情報をログ情報3053から取得し、それらをエラーコードやエラーメッセージに対応付けてメモリ部305にエラー再出力情報3054として保存する。
続いて、CPU301(出力部401)は、エラー画面に設けたリセットキーが押下されたか否かを判定する(S63)。リセットキーが押下されていないと判定すると(No判定)、続いてCPU301(出力部401)は、エラー画面に設けた戻るキーが押下されたか否かを判定する(S64)。戻るキーも押下されていないと判定すると(No判定)、CPU301(出力部401)はステップS63に戻り、判定処理を繰り返す。
ステップS63において、リセットキーが押下されたと判定すると(Yes判定)、CPU301(出力部401)は取引データを消去する(S65)。この処理では、エラー発生前までに生成したRAM303上の決済データや、退避させた処理番号を全て消去する。
そして、エラー処理を終了し、ステップS1の処理に戻る。ステップS1の処理では、次の処理番号として、リセットキーの受け付けに対応する処理番号1をセットし、決済処理を最初からやり直す。
また、ステップS64において、CPU301(出力部401)が、戻るキーが押下されたものと判定したとする(Yes判定)。すると、CPU301(出力部401)はステップS1の処理に戻り、ステップS1において、RAM303に一時的に退避したエラー発生時の処理番号をセットし、その処理の先頭から処理を再開する。つまり、エラーが発生した時のオペレータによる操作をやり直す。
以上のエラー処理により、エラーの詳細を示す情報をメモリ部305にエラー再出力情報3054として保存する。
次に、メモリ部305のエラー再出力情報3054の再出力処理について説明する。
再出力処理は、オペレータが決済処理の終了後の任意のタイミングでエラー内容を確認するための処理のことである。
ここでは、一例として、オペレータに再出力処理を宣言させるためのヘルプキーを業務選択画面(図8参照)に設け、そのヘルプキーから再出力処理の開始を実行させる態様のものについて示す。
以下、再出力処理について、フロー図(図7)と画面構成図(図8〜図15)を参照しながら説明する。なお、画面構成図(図8〜図15)に示す画面のパーツは予めメモリ部305に表示用データ等として記憶させる。
先ず、業務選択画面の構成について説明する。
図8は、ヘルプキーを設けた業務選択画面の構成図である。
図8に示す業務選択画面G1は、業務の種類を選択するための選択キーとして「業務」タブT1、「集計」タブT2、「設定」タブT3、「練習」タブT4、「再印字」タブT5を備える。更に、業務選択画面G1は、再出力の処理を選択するための指示キーとしてヘルプキーK1を備える。
オペレータは、表示部25に表示された業務選択画面G1の「業務」タブT1をタッチ入力することにより、決済端末10に決済処理の開始を宣言する。或いは、ヘルプキーK1をタッチ入力することにより、ヘルプ処理(主に再出力処理)の開始を宣言する。
続いて、業務選択画面G1に設けたヘルプキーK1からオペレータが再出力処理を指示したときのCPU301の処理フローについて説明する。
図7は、CPU301が実行する再出力処理のフロー図である。
先ず、CPU301(指示部403)は、業務選択画面G1を、ヘルプキーK1を含めて表示部25に出力する(S700)。
続いてCPU301(指示部403)は、ヘルプキーK1が押下されたか否かを判定する(S701)。この判定でヘルプキーK1が押下されていないと判定すると、続いてCPU301(指示部403)は、「業務」タブT1が押下されたか否かを判定する(S702)。何れの選択キーも押下されていないと判定すると、CPU301(指示部403)は、ステップS701の処理に戻り、判定処理を繰り返す。
オペレータが業務選択画面G1上のヘルプキーK1をタッチ入力するとする。すると、CPU301(指示部403)は、ステップS701の判定処理でYesと判定する。
この場合、CPU301(指示部403)は、案内メッセージ画面を表示部25に出力する(S703)。
ここで、案内メッセージ画面の構成について説明する。
図9は、案内メッセージ画面の構成図である。
図9に示す案内メッセージ画面G2は、オペレータにヘルプとして提供する項目を選択させるための選択キーを含む。同図には、それらの選択キーの内の一つとして「エラーの再出力」キーK10を示している。
案内メッセージ画面G2は、その他、戻るキーK15などの操作子を含む。
ここで、図7のフローに戻り、続きを説明する。
ステップS703に続き、CPU301(指示部403)は、「エラーの再出力」キーK10が選択されたか否かを判定する(S704)。
ここで、「エラーの再出力」キーK10が選択されていないと判定すると(No判定)、CPU301(指示部403)は続いて戻るキーK15が押下されたか否かを判定する(S705)。
この処理において、戻るキーK15が押下されていないと判定すると(No判定)、CPU301(指示部403)は、その他のキーが押下されたか否かを判定する。なお、図7において、その他のキーの判定処理や、その他のキーの判定処理後の動作を示すステップは便宜上省略している。
そして、何れのキーも押下されていない場合は、ステップS704の判定処理に戻る。
CPU301(指示部403)は、それらの一連の判定処理により、表示部25の案内メッセージ画面G2上においてオペレータにタッチ入力されたキーの種類を検出する。
ステップS705においてYes判定の場合、CPU301(指示部403)は、案内メッセージ画面G2を閉じてステップS700の処理に戻る。
一方、ステップS704がYes判定になる、つまりCPU301(指示部403)がオペレータにより「エラーの再出力」キーK10が選択されたことを検出する。すると、CPU301(指示部403)はメニュー画面をユーザインタフェースとして出力し、表示部25に表示する(S706)。
ここで、メニュー画面の構成について説明する。
図10は、メニュー画面の構成図である。
図10に示すメニュー画面G3は、再出力対象のエラーの詳細内容をオペレータに項目別に選択させるための、複数のメニュー項目を含む。これらのメニュー項目は、選択キーとして設けたものである。
ここでは、一例として、「エラー画面再表示」キーK20、「エラーレシート印字」キーK21、「問合せ先TEL確認」キーK22、「時間/内容表示」キーK23、「端末番号確認」キーK24を設けている。
「エラー画面再表示」キーK20は、CPU301(出力部401)がエラー発生時に表示部25に出力したエラー画面をCPU301(再出力部404)に再表示させることを指示するための選択キーである。
「エラーレシート印字」キーK21は、エラーの詳細情報をレシート用紙に印字させることをCPU301(再出力部404)に指示するための選択キーである。
「問合せ先TEL確認」キーK22は、問合せデスクの電話番号を表示させることをCPU301(再出力部404)に指示するための選択キーである。
「時間/内容表示」キーK23は、エラーの発生時間やエラーの発生に至った操作内容を表示させることをCPU301(再出力部404)に指示するための選択キーである。
「端末番号確認」キーK24は、使用中の端末の端末番号を表示させることをCPU301(再出力部404)に指示するための選択キーである。
メニュー画面G3には、その他、戻るキーK25などの操作子を設けている。
ここで、図7のフローに戻り、続きを説明する。
ステップS706に続き、CPU301(指示部403)は、メニュー画面G3におけるオペレータの操作信号を受け付ける(S707)。
続いて、CPU301(指示部403)は、受け付けた操作信号が「エラーレシート印字」キーK21の操作信号であるか否かを判定する(S708)。
ステップS708において、「エラーレシート印字」キーK21の操作信号と判定した場合(Yes判定)、CPU301(再出力部404)は、エラー情報の読み出しを行う(S709)。この読出処理で、CPU301(再出力部404)は、メモリ部305のエラー再出力情報3054として記憶されているエラー詳細情報をRAM303に読み出す。
続いて、CPU301(再出力部404)は、エラー詳細情報を印字出力する(S710)。
この処理で、CPU301(再出力部404)は、印字中を示すメッセージ画面をメモリ部305から読み出して表示部25に出力する。更に、CPU301(再出力部404)は、RAM303に読み出したエラー詳細情報から印字データを生成する。そして、印字部27に印字の実行を指示し、印字データを出力する。この処理によりエラー詳細情報はレシート用紙に印字された形態で、決済端末10の外部に排出される。
図11は、印字中を示すメッセージ画面の構成図である。
図11に示すメッセージ画面G4では、印字中であることを示す文字M1とイラストM2が含まれている。
ステップS710の処理の終了時は、印字中を示すメッセージ画面を閉じ、ステップS706の処理に戻る。
ステップS708においてNo判定の場合は、続いて、CPU301(指示部403)は、受け付けた操作信号が「エラー画面再表示」キーK20の操作信号であるか否かを判定する(S711)。
ステップS711において、「エラー画面再表示」キーK20の操作信号と判定した場合(Yes判定)、CPU301(再出力部404)は、エラー情報の読み出しを行う(S712)。この読出処理では、CPU301(再出力部404)は、メモリ部305のエラー再出力情報3054の内のエラーコードやエラーメッセージを抽出してRAM303に読み出す。また、エラー画面データ(レイアウトデータ)をRAM303に読み出す。
続いて、CPU301(再出力部404)は、エラー画面を表示部25に出力する(S713)。この処理で、CPU301(再出力部404)は、RAM303に読み出したエラーコードやエラーメッセージをレイアウトデータに組み込んでエラー画面データを生成する。そして、CPU301(再出力部404)は、生成したエラー画面を表示部25に出力する。この処理によりエラー時に表示したエラー画面を表示部25に再表示する。
図12は、エラー画面の構成図である。
図12のエラー画面G5は、エラーコードとエラーメッセージを表示するための領域を備えている。本例では、この領域に、カード読み取り時に通信エラーが発生した際のエラー情報としてエラーコードJ1とエラーメッセージJ2を示している。また、エラー画面G5は、リセットキーK26を備えている。オペレータがリセットキーK26を押下することにより、エラー画面G5が閉じてメニュー画面G3の表示に戻る。
ステップS713の処理後、CPU301(再出力部404)は、リセットキーK26又は実行キーK27、K28、K29(図13〜図14参照)の入力があるか否かを判定する(S714)。リセットキーK26又は実行キーK27、K28、K29の入力を検出しない場合は(No判定)、検出するまで待機する。
ステップS714において、CPU301(再出力部404)はリセットキーK26の入力を検出すると(Yes判定)、エラー画面G5を閉じてステップS706の処理に戻る。
ステップS711においてNo判定の場合は、続いて、CPU301(指示部403)は、受け付けた操作信号が「問合せ先TEL確認」キーK22の操作信号であるか否かを判定する(S715)。
ステップS715において、「問合せ先TEL確認」キーK22の操作信号と判定した場合(Yes判定)、CPU301(再出力部404)は、問合せデスクの電話番号情報の読み出しを行う(S716)。この読出処理では、CPU301(再出力部404)は、メモリ部305に予め記憶した問合せデスクの電話番号情報をRAM303に読み出す。また、エラーの詳細内容の確認画面データ(レイアウトデータ)をRAM303に読み出す。
続いて、CPU301(再出力部404)は、第一の確認画面を表示部25に出力する(S717)。この処理で、CPU301(再出力部404)は、RAM303に読み出した問合せデスクの電話番号情報をレイアウトデータに組み込むなどし、詳細内容についての第一の確認画面データを生成する。そして、CPU301(再出力部404)は、生成した第一の確認画面データを表示部25に出力する。
図13は、第一の確認画面の構成図である。
図13に示す第一の確認画面G6は、情報表示領域を備えている。この領域に、同図に例示するように問合せデスクの電話番号情報J3を組み込む。また、第一の確認画面G6は、実行キーK27を備えている。オペレータが実行キーK27を押下することにより、第一の確認画面G6が閉じてメニュー画面G3の表示に戻る。
ステップS717の処理後、CPU301(再出力部404)は、ステップS714の判定処理に移行し、実行キーK27の入力があるか否かを判定する。実行キーK27の入力を検出しない場合は(No判定)、検出するまで待機する。
ステップS714において、CPU301(再出力部404)は実行キーK27の入力を検出すると(Yes判定)、第一の確認画面G6を閉じてステップS706の処理に戻る。
ステップS715においてNo判定の場合は、続いて、CPU301(指示部403)は、受け付けた操作信号が「時間/内容表示」キーK23の操作信号であるか否かを判定する(S718)。
ステップS718において、「時間/内容表示」キーK23の操作信号と判定した場合(Yes判定)、CPU301(再出力部404)は、エラー詳細情報の読み出しを行う(S719)。
この読出処理では、CPU301(再出力部404)は、メモリ部305のエラー再出力情報3054の内からエラー詳細情報の一部の時系列順の操作履歴等を抽出してRAM303に読み出す。また、エラーの詳細内容の確認画面データ(レイアウトデータ)をRAM303に読み出す。
続いて、CPU301(再出力部404)は、第二の確認画面を表示部25に出力する(S720)。この処理で、CPU301(再出力部404)は、RAM303に読み出したエラー詳細情報の一部をレイアウトデータに組み込んで第二の確認画面データを生成する。そして、CPU301(再出力部404)は、生成した第二の確認画面データを表示部25に出力する。
図14は、第二の確認画面の構成図である。
図14に示す第二の確認画面G7は、情報表示領域を備えている。この領域に、エラー詳細情報J4を組み込む。
ここでは、一例として、メモリ部305のエラー詳細情報に含まれるエラー発生日時と、そのときの時系列順の操作履歴とを抽出して組み込んだときの状態を示している。時系列順の操作履歴においては、業務一覧表示画面(図8参照)でオペレータがクレジットを選択し、続く決済金額入力画面(不図示)でオペレータが決済金額を入力し、更に、指示画面(不図示)でオペレータがカード情報を読み取らせたことが分かる。
第二の確認画面G7は、更に、実行キーK28を備えている。オペレータが実行キーK28を押下することにより、第二の確認画面G7が閉じてメニュー画面G3の表示に戻る。
ステップS720の処理後、CPU301(再出力部404)は、ステップS714の判定処理に移行し、実行キーK28の入力があるか否かを判定する。実行キーK28の入力を検出しない場合は(No判定)、検出するまで待機する。
ステップS714において、CPU301(再出力部404)は実行キーK28の入力を検出すると(Yes判定)、第二の確認画面G7を閉じてステップS706の処理に戻る。
ステップS718においてNo判定の場合は、続いて、CPU301(指示部403)は、受け付けた操作信号が「端末番号確認」キーK24の操作信号であるか否かを判定する(S721)。
ステップS721において、「端末番号確認」キーK24の操作信号と判定した場合(Yes判定)、CPU301(再出力部404)は、端末番号情報の読み出しを行う(S722)。この読出処理では、CPU301(再出力部404)は、メモリ部305に予め記憶した端末番号情報をRAM303に読み出す。また、エラーの詳細内容の確認画面データ(レイアウトデータ)をRAM303に読み出す。
続いて、CPU301(再出力部404)は、第三の確認画面を表示部25に出力する(S723)。この処理で、CPU301(再出力部404)は、RAM303に読み出した端末番号情報をレイアウトデータに組み込むなどし、詳細内容についての第三の確認画面データを生成する。そして、CPU301(再出力部404)は、生成した第三の確認画面データを表示部25に出力する。
図15は、第三の確認画面の構成図である。
図15に示す第三の確認画面G8は、情報表示領域を備えている。この領域に、同図に例示するように端末番号情報J5を組み込む。また、第三の確認画面G8は、実行キーK29を備えている。オペレータが実行キーK29を押下することにより、第三の確認画面G8が閉じてメニュー画面G3の表示に戻る。
ステップS723の処理後、CPU301(再出力部404)は、ステップS714の判定処理に移行し、実行キーK29の入力があるか否かを判定する。実行キーK29の入力を検出しない場合は(No判定)、検出するまで待機する。
ステップS714において、CPU301(再出力部404)は実行キーK29の入力を検出すると(Yes判定)、第三の確認画面G8を閉じてステップS706の処理に戻る。
ステップS721においてNo判定の場合は、続いて、CPU301(再出力部404)は、受け付けた操作信号が戻るキーK25の操作信号であるか否かを判定する(S724)。
ステップS724において、CPU301(再出力部404)は戻るキーK25の操作信号を検出すると(Yes判定)、メニュー画面G3を閉じ、ステップS703の処理に移行する。
ステップS724において、No判定の場合は、CPU301(再出力部404)はステップS707の処理に移行する。
本実施形態では、エラーが発生すると、メモリ部305にエラー再出力情報3054として最新のエラー詳細情報を記憶させる態様のものについて示した。従って、エラーが発生すると、一つ前に発生したエラーのエラー詳細情報を、新たに発生したエラーのエラー詳細情報により上書きする態様のものとなっている。これにより、エラー再出力情報3054を常に直近のエラーの詳細情報のみを保持できる最小の記憶領域に止め、メモリの使用を抑止した。
しかし、本実施形態の決済端末は、これに限定されるものではない。メモリ部に、例えば発生したエラーの詳細情報を直近から複数回前の分までを記憶する記憶領域を確保するように変形しても良い。例えばリングバッファを使用し、新たにエラーが発生すると、最も古いエラーの詳細情報を最新のエラーの詳細情報で上書きする構成のものにしても良い。
この場合、オペレータにエラー履歴から一つのエラーを選択させるために、エラーの選択画面を更に設けることが好ましい。エラーの選択画面は、案内メッセージ画面G2でオペレータに「エラーの再出力」キーK10が選択された後の画面として設ける。この選択画面には、例えば複数の選択キーを設け、各選択キーにエラーの発生日時を示す情報を表示可能なように割り当てる。
すると、オペレータは再出力するエラー情報を、エラーの発生日時から選び、対応する選択キーをタッチ入力することができる。
CPU301(再出力部404)では、メニュー画面G3を表示し、オペレータによりタッチ入力された発生日時の情報からエラー情報を絞る。そして、その絞られた範囲を対象に、オペレータによる、メニュー画面G3からのエラーのメニュー項目の入力を受け付ける。
本実施形態では、エラー時に表示部25に出力したエラー画面の情報を、CPU301(保存部402)がメモリ部305にエラーコードやエラーメッセージなどの文字情報として残す態様のものについて示した。そして、再出力時に、CPU301(再出力部404)がエラーコードやエラーメッセージを再び画面データに組み込み、この再現したエラー画面を表示部25に出力した。
しかし、本実施形態の決済端末は、エラー画面の再表示方法をこれに限定するものではない。CPU301(保存部402)がメモリ部305にエラー画面を画面のイメージデータとして残すように変形しても良い。例えば、エラーコードやエラーメッセージなどの文字情報を含むエラー画面をイメージデータとして残す。このような場合、CPU301(再出力部404)には、再出力時に、そのイメージデータを表示部25に出力させるようにする。
本実施形態では、業務選択画面G1(図8参照)にヘルプキーK1を設け、そのヘルプキーK1から再出力処理の開始を実行させる態様のものについて示した。しかし、本実施形態の決済端末は、再出力処理の開始の指示を業務選択画面G1におけるヘルプキーK1の選択に限定するものではない。例えば、業務選択画面G1の他の画面にもヘルプキーK1を供給し、その画面でヘルプキーK1をオペレータが押下すると、案内メッセージ画面G2に切り替わる構成に変形しても良い。
また、ヘルプキーK1ではなく、エラー詳細情報を直接読み出すための再表示専用のキーを業務選択画面G1や他の画面に設けるなどの変形を行っても良い。
本実施形態及び変形例の決済端末で使用する各種プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供し、決済端末のフラッシュROMなどに読み込ませて実行してもよい。
また、当該プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
以上の構成から、本実施形態及び変形例の決済端末においては、発生したエラーの内容(特に直近のエラーの内容)をユーザがそのエラーの解消後の任意の時点で確認することが可能になる。従って、問合せデスクに問合せした際にも、エラーの詳細内容を正確に伝えることができ、また、それを第三者が確かめることも可能になる。
以上の実施形態及び変形例において、決済端末及びプログラムについての構成を説明したが、この実施形態及び変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態及び変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。