【解決手段】実施形態のサーバ装置は、電子レシート情報を情報処理装置からの閲覧が可能なように管理する電子レシート管理サーバと、上記電子レシート管理サーバが管理する上記電子レシート情報を生成するPOS端末との、通信経路に配置されるサーバ装置を前提に、一つ又は複数の上記POS端末が生成した上記電子レシート情報及び該電子レシート情報の取消情報を、上記POS端末における生成順に受信する受信手段と、上記受信手段における上記電子レシート情報及び上記取消情報の受信順序を、上記電子レシート情報及び上記取消情報の処理順序として対応づける整列手段と、上記整列手段が整列する上記処理順序で上記電子レシート情報及び上記取消情報を上記電子レシート管理サーバに送信する送信手段とを有する。
電子レシート情報を情報処理装置からの閲覧が可能なように管理する電子レシート管理サーバと、前記電子レシート管理サーバが管理する前記電子レシート情報を生成するPOS端末との、通信経路に配置されるサーバ装置であって、
一つ又は複数の前記POS端末が生成した前記電子レシート情報及び該電子レシート情報の取消情報を、前記POS端末における生成順に受信する受信手段と、
前記受信手段における前記電子レシート情報及び前記取消情報の受信順序を、前記電子レシート情報及び前記取消情報の処理順序として対応づける整列手段と、
前記整列手段が整列する前記処理順序で前記電子レシート情報及び前記取消情報を前記電子レシート管理サーバに送信する送信手段と、
を備えることを特徴とするサーバ装置。
前記整列手段は、前記送信手段が送信した、前記整列手段の処理順序の先頭の前記電子レシート情報及び前記取消情報を、前記電子レシート管理サーバにおける登録のたびに削除するものであり、
前記送信手段は、
前記電子レシート管理サーバから前記電子レシート情報の登録可否の結果を示す登録可否情報を受け取って判定する判定手段と、
前記判定手段により前記登録可否情報が電子レシート管理サーバ又は通信上のトラブルを含むものであると判定された場合に、前記整列手段の処理順序の先頭の前記電子レシート情報又は前記取消情報を前記電子レシート管理サーバにリトライ送信するリトライ部と、
を備えることを特徴とする請求項1又は2に記載のサーバ装置。
電子レシート情報を情報処理装置からの閲覧が可能なように管理する電子レシート管理サーバと、前記電子レシート管理サーバが管理する前記電子レシート情報を生成するPOS端末との、通信経路に配置されるサーバ装置を制御するコンピュータを、
一つ又は複数の前記POS端末が生成した前記電子レシート情報及び該電子レシート情報の取消情報を、前記POS端末における生成順に受信する受信手段と、
前記受信手段における前記電子レシート情報及び前記取消情報の受信順序を、前記電子レシート情報及び前記取消情報の処理順序として対応づける整列手段と、
前記整列手段が整列する前記処理順序で前記電子レシート情報及び前記取消情報を前記電子レシート管理サーバに送信する送信手段と、
として機能させるためのプログラム。
【発明を実施するための形態】
【0009】
会員登録すると紙のレシートの代わりに消費者の端末装置(以下、消費者端末と呼ぶ)で電子レシートの提供を受けられるようになる電子レシートシステムと呼ばれる仕組みがある。
電子レシートは客が店舗で行った商品取引の内容を示すレシート情報を電子情報化することにより生成されたもの(以下では、電子レシートの生成を便宜的に発行と言う)である。
【0010】
電子レシートの発行は、店舗内に設置されている、客との商品取引を直接行うPOS(Point of Sales)端末が行う。
POS端末はレジ入力などにより商品取引を行い、締めキーの入力により一連の取引(一取引)を完了する。締めキーは、現金又はカードによる決済後の一取引の締め処理を宣言するための入力キーである。
【0011】
締め処理により一取引が完了すると、POS端末はそのレシート情報を生成し、レシート情報を伝送路へ送り出す。
締め処理を行った後に、客から決済方法の変更などの取引内容の変更の申し出があった場合は、POS端末はレジ入力の打ち直しにより、締め処理の行われた取り引きの一部をレジマイナスする。そして、そのレジマイナスした情報を含むレシート情報を取消情報として伝送路へ送り出す。
【0012】
POS端末から送り出された電子レシート情報や取消情報は、各種の通信網を介し電子レシート管理サーバへ送り届けられる。
電子レシート管理サーバは、第三者機関の電子レシートセンタが運用するものであり、各企業に属するPOS端末で発行された電子レシートを企業ごとに一括管理する。
電子レシート管理サーバは、電子レシート情報を受け取るとそれをデータベースに登録し、また取消情報を受け取るとデータベース内の対応する電子レシート情報をそのレジマイナスした情報に更新する。
【0013】
客は、消費者端末で電子レシート管理サーバにアクセスすることにより、電子レシート管理サーバから電子レシートの配信を受け、店舗で行った商品取引の内容を表示画面上で確認できる。
【0014】
本実施形態に係るサーバ装置は、上述した電子レシートシステムにおいてPOS端末と電子レシート管理サーバの通信経路途中に設けて利用されるものである。
図1は、本実施形態に係るサーバ装置の概略説明図である。
同図に示すように、本実施形態に係るサーバ装置1は、受信手段10、整列手段11、及び送信手段12により構成される。
【0015】
受信手段10は、POS端末2で一取引ごとに順次発行された電子レシート情報R1〜Rn+1(nは整数)やその取消情報T1〜Tn+1を発行順に受け付け、整列手段11にその受け付けた順序(つまり発行順)で渡す手段である。受信手段10とPOS端末2は専用線の高速ネットワークN1により接続される。
【0016】
整列手段11は、受信手段10が受け付けた電子レシート情報R1〜Rn+1や取消情報T1〜Tn+1を受け付けた順番に処理順序に対応付けて整列する手段である。具体的には、整列手段11はFIFO(First In First Out)により実現される。整列手段11は電子レシート情報や取消情報を受信手段10が受け付けた順序で順番管理してバッファし、順番の早い情報から処理対象として送信手段12に出力する。整列手段11には多数の電子レシート情報と取消情報をバッファするだけの十分な記憶領域が備えられている。
【0017】
送信手段12は、整列手段11に整列されている情報の中から受付順の早い情報を取得し電子レシート管理サーバ3へ送信する手段である。送信手段12は、電子レシート管理サーバ3からの返信情報により送信情報の登録を一つずつ確かめながら、受付順序の早い情報を順次電子レシート管理サーバ3へ送信する。送信手段12と電子レシート管理サーバ3は本実施形態では電話回線などの公衆回線網を含むネットワークN2により接続される。
【0018】
本実施形態に係るサーバ装置1を含む電子レシートシステムは、以上の構成の下に、次のように稼働し、データ伝送においての作用効果を奏する。
本実施形態に係るサーバ装置1の構成では、POS端末2とサーバ装置1の間は高速ネットワークN1で繋ぎ、高速通信を行う。これにより、POS端末2から送信された電子レシート情報はサーバ装置1に遅延なく到着することになる。このため、電子レシート情報がサーバ装置1で受け付けられたか否かを示す結果をPOS端末2で直ぐに(例えば瞬時に)知ることができる。
【0019】
従って、POS端末2は、サーバ装置1から受け付け失敗を示す通知を受ける、或いはサーバ装置1から一定時間応答がなければ、電子レシート情報の再送を行う。この再送までの時間も短く設定できるので、締め処理後に客を待たせることなく電子レシート情報の受け付けを完了させることができる。
【0020】
締め処理後に客から取り引きの変更が要求され、レジマイナスの処理が必要になった場合でも、レジマイナスする対象の電子レシート情報がサーバ装置1で受け付けられたか否かをPOS端末が分かっている。このため、POS端末2は電子レシート情報に対応する取消情報の発行が必要か否かをその場で判断できる。
【0021】
レジマイナス処理後に取消情報を送信する時点では、電子レシート情報がサーバ装置1に受け付けられたことが確定している。このため、POS端末2からサーバ装置1の受信手段10までの間に取消情報が電子レシート情報を追い抜くことは無い。
店舗内にPOS端末2が複数あり、決済を行ったPOS端末と取り消しを行うPOS端末が異なるケースにおいても、他のPOS端末で客が取り消しを申し入れる前には既に受付が完了している。このため、POS端末2からサーバ装置1の受信手段10までの間に取消情報が電子レシート情報を追い抜くことも無い。
【0022】
また、サーバ装置1において、整列手段11は、受信手段10の受け付け順に電子レシート情報や取消情報などの各種の情報を整列する。このため、受信手段10による受け付けから送信手段12による送信までの間に取消情報が電子レシート情報を追い抜くことも無い。
【0023】
整列手段11は、更に、受信手段10で受け付けた情報が電子レシート管理サーバ3側に送信されるまでのバッファとしての機能を果たしている。このため、POS端末2は、電子レシート管理サーバ3のサービス停止などの状態や電子レシート管理サーバ3とサーバ装置1との間のネットワークN2の通信接続状態を意識することなく、電子レシート情報や取消情報を次々に発行し伝送路に送り出すことができる。
【0024】
サーバ装置1において、送信手段12は、電子レシート管理サーバ3からの返信情報(登録の可否を示す登録可否情報)により送信情報が登録されたことを一つずつ確かめながら、受付順に情報を電子レシート管理サーバ3へ送信する。つまり、電子レシート情報とこれに対応する取消情報については、電子レシート管理サーバ3において電子レシート情報が登録されたことを確かめてからその取消情報を送信する送信順序となる。このため、電子レシート情報よりも前にその取消情報が電子レシート管理サーバ3に到着することも無い。
【0025】
以上の構成により、POS端末2において次々と発行される電子レシート情報と取消情報は電子レシート管理サーバ3においてその順に受け付けられるようになる。従って通信経路の途中で順序が入れ替わり電子レシート情報に先行してその取消情報が電子レシート管理サーバ3で受け付けられるようなことを防止できる。
【0026】
続いて、当該電子レシートシステムにおいて、本実施形態に係るサーバ装置を企業の本部に設置のサーバ装置(以下、本部サーバという)に適用した例について説明する。
図2は、本実施形態に係るサーバ装置を本部サーバとして備える電子レシートシステムの全体構成を示す図である。
【0027】
同図に示すように電子レシートシステムSYS1は、本部サーバ1Aと、POS端末2と、電子レシート管理サーバ3と、消費者端末4とを含むようにして構成される。
本部サーバ1Aは、店舗またはチェーン店舗(以下、店舗という)を運営する企業の本部P1に設けられたサーバ装置である。
【0028】
本部サーバ1Aは、各店舗P2のPOS端末2で消費者が決済した商品の取引内容等を示す商品販売データをデータベースに登録して一括して管理する。具体的に、商品販売データは、商品情報や、消費者の購入履歴情報などによって構成される。商品情報には、例えば商品名や、商品を一意に識別するための商品コードや、商品価格などが含まれる。また、購入履歴情報には、消費者の会員コードや、消費者の取引内容を示す情報例えば商品の購入日や、利用店舗名や、購入商品名などが含まれる。
【0029】
また、本部サーバ1Aは、POS端末2で発行され送信された電子レシート情報や取消情報をその順序で電子レシート管理サーバ3に登録させるための追抜き防止手段Xを備えている。この追抜き防止手段Xは、主に受信部と整列部と送信部とにより構成される。各部の構成については図を用いて後述する。
【0030】
POS端末2は、客との商品取引を直接行う対面式の装置であり、各店舗P2に単独で又は複数台を並べて配設されている。POS端末2は、客ごとに商品取引のためのレジ入力等の一連の手続きを行い、締め処理を宣言する締めキー入力によりその取引(一取引)を完了する。具体的には客が購入する商品を店員がスキャナ等の読取装置で読み取り、商品マスタテーブルで一点ずつ商品照会を行い、全ての商品の確定後に決済処理を行う。決済処理では現金決済やカード決済などの決済方法を客に指定させる。そして、代金を支払って締め処理を宣言する締めキーの入力により一取引を完了する。
【0031】
また、POS端末2は、一取引ごとに電子レシートの発行が必要か否かを客に問い合わせ、客から同意が得られた場合に電子レシートを発行する。電子レシートの発行は、客の会員コードをカメラ、バーコードスキャナ、カードリーダ、或いは近距離無線通信等を利用した読取装置から読み取り、会員コードとレジ入力された取引内容等を電子情報化して電子レシート情報を生成することにより行う。POS端末2は電子レシートを発行すると本部サーバ1Aへその電子レシート情報を送信する。本実施形態では、本部サーバ1Aから電子レシート情報の受け付けがなされたか否かの情報を受信し、その旨を表示画面に表示する。
【0032】
また、POS端末2は、決済の完了後に客から決済方法などの取引内容の変更を求められたときのレジ入力のやり直しにおいて、レジマイナスした情報を含む取消情報を発行し、本部サーバ1Aへ送信する。例えばPOS端末2の操作キーに割り当てられた取消キーをキャッシャが押下することにより一度発行した電子レシート情報の一部の取り消しを求める取消情報を発行し、本部サーバ1Aへ送信する。
また、本部サーバ1AとPOS端末2との間は高速ネットワークN1により接続される。
【0033】
電子レシート管理サーバ3は、第三者機関の電子レシートセンタP3に設けられたサーバ装置により構成され、それぞれの企業の電子レシート情報をデータベースDB1で一元管理する。
【0034】
電子レシート管理サーバ3は、各企業の本部サーバ1AからHTTP(Hypertext Transfer Protocol)要求として電子レシート情報や取消情報などを受信し、その処理結果(登録可否情報)を本部サーバ1Aに返信する。例えば、電子レシート情報を受信した場合、データをチェックし、データに誤りが無ければ、管理番号と対応付けてデータベースDB1に登録する。この場合、処理が正常に行われたことを示す情報を処理結果として本部サーバ1Aに返信する。また、取消情報を受信した場合は、同様にデータをチェックし、データに誤りが無ければ、同じ管理番号の電子レシート情報を、一部をレジマイナスした取消情報で更新する。この場合も、処理が正常に行われたことを示す情報を処理結果として本部サーバ1Aに返信する。
【0035】
更に、電子レシート管理サーバ3は、消費者端末4からHTTP要求として電子レシートの送信要求を受信すると、消費者端末4へその電子レシート情報を配信する。電子レシート管理サーバ3は、電子レシートの配信の際に、消費者端末4の環境で表示できるように電子レシート情報を適宜変換する。
【0036】
消費者端末4は、消費者が利用する端末装置(情報処理装置)である。ここでは、スマートフォンやタブレット端末などのような移動式の携帯型端末とする。なお、消費者端末4は情報処理装置で有れば良いので、本実施形態に示す携帯型端末に限定せず、自宅の固定型のパーソナルコンピュータなどに置き換えるなどしても良い。
消費者端末4は会員コードを記憶する記憶部を備えている。
【0037】
消費者が電子レシートの会員登録を行うと会員番号が発行される。その会員コードは、ICカードや磁気カードに記憶されたり、消費者端末4の記憶部に記憶されたりすることにより消費者によって所持される。この会員コードは例えばQRコード(登録商標)や二次元バーコードやその他、暗号化されるなどして記憶部で保存される。消費者はPOS端末2において商品決済を行った際に、POS端末2に備え付けの読取装置にその会員コードを読み取らせて、電子レシートを発行する意思を表明する。
【0038】
また、消費者端末4は、電子レシートを管理し、電子レシートを表示画面に表示させるアプリケーションを備えている。消費者端末4は、電子レシート管理サーバ3に接続してパスワードと会員コードを送信し、それらの認証を終えると、電子レシート管理サーバ3から電子レシートをダウンロードする。上記アプリケーションは、取引日時や取引店舗などをユーザが指定することにより電子レシート管理サーバ3から取得する電子レシートの絞り込みを行う。また、ダウンロードした電子レシートを表示画面に表示させる。
【0039】
なお、上述したそれぞれの装置(本部サーバ1A、POS端末2、電子レシート管理サーバ3、及び消費者端末4)は、相互に通信接続ができるものである。
高速ネットワークN1は、LAN(Local Area Network)やVPN(Virtual Private Network)などの専用線を用いた高速通信ネットワークにより構築されている。本部サーバ1AとPOS端末2は、高速ネットワークN1を介しての高速通信接続が可能となっている。
【0040】
ネットワークN2は、電話回線等の公衆網やプロバイダ間を接続したインターネット網などである。電子レシート管理サーバ3はWeb上に構築されており、本部サーバ1AからネットワークN2を介しての通信接続が可能となっている。
ネットワークN3は、携帯電話網やインターネット網などで構築されている。
消費者端末4は、近くのアクセスポイントから携帯電話網に入り、パケット通信を行う経路でインターネット網内の電子レシート管理サーバ3にアクセスする。
【0041】
次に、電子レシートシステムの主要な装置の構成について説明する。
図3は、本部サーバ1Aの構成図である。
本部サーバ1Aは、主に、制御部11A、記憶部12A、通信I/F13Aを備えている。各部はバス14Aにより相互接続されている。
【0042】
制御部11Aは、本部サーバ1Aの各部を統括的に制御し、演算処理やデータの入出力制御などを行うコンピュータである。制御部11Aは、CPU(Central Processing Unit)、各種のプログラムやデータを記憶するROM(Read Only Memory)、各種のプログラムを展開したりデータを書き換え自在に記憶したりするワークメモリとしてのRAM(Random Access Memory)、現在の日時を計時するRTC(Real Time Clock)部等によって構成される。
【0043】
記憶部12Aは、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置である。
記憶部12Aには、商品販売データに関する各種テーブルの記憶領域12aが設けられている。ここには商品マスタテーブルや購入履歴テーブルなどが記憶されている。
【0044】
また、記憶部12Aには、商品販売データに関する各種テーブルの商品販売データ管理プログラム12b(図面において「プログラム」を「Pro」と略す)が記憶されている。商品販売データ管理プログラム12bは、具体的には、商品販売データに関する各種テーブルを対象にデータの抽出や、登録や、更新や、削除などの処理を行う。
【0045】
また、記憶部12Aには、送受信プログラム12cや整列プログラム12dなどが記憶されている。送受信プログラム12cや整列プログラム12dは、ここでは主に、POS端末2から送信された電子レシート情報や取消情報の受付処理や、受け付けた情報の整列処理や、整列した情報を電子レシート管理サーバ3へ送信する送信処理を行う。なお、受付処理、整列処理、および送信処理については後述する。
【0046】
送受信プログラム12cは、この他にも、POS端末2から送信された客の購入情報の受信処理や、POS端末2のデータと同期をとる際の送受信処理などを行う。
通信I/F13Aは、POS端末2や電子レシート管理サーバ3とデータを送受信するためのネットワーク通信用のインタフェースである。
【0047】
図4は、POS端末2の構成図である。
POS端末2は、主に、制御部21、記憶部22、通信I/F23、操作部24、表示部25、プリンタ26、コードスキャナ27、近距離無線通信部28を備えている。各部はバス29により相互接続されている。
【0048】
制御部21は、POS端末2の各部を統括的に制御し、演算処理やデータの入出力制御などを行うコンピュータである。制御部21は、CPU、各種のプログラムやデータを記憶するROM、各種のプログラムを展開したりデータを書き換え自在に記憶したりするワークメモリとしてのRAM、現在の日時を計時するRTC部等によって構成される。
【0049】
記憶部22は、例えばHDDやSSD等の補助記憶装置である。
記憶部22は、商品販売データ処理を含む各種のPOS業務を実行するためのプログラム22aを記憶する。また、記憶部22は、各商品の商品名、商品コード及び単価等の商品データを格納した商品データファイル等の商品販売データ処理に係る各種データファイル22bを記憶する。また、記憶部22は、商品販売データ処理やレシートデータに係る処理を行うためのレシートデータ処理プログラム22cを記憶する。
【0050】
また、記憶部22は、自己のPOS端末2を他のPOS端末2と識別するためのPOSナンバー、企業コード(店舗を運営する企業の識別コード)、業種・業態コード、当該POS端末2が設置される店舗P2を示す店舗コード等を、識別コード管理領域22dに記憶する。ここで、業種・業態コードは、例えば、コンビニエンスストア、スーパーマーケット、百貨店、薬局、レストラン、飲食店などとして、店舗の業種・業態を区別するコード(分類コード)である。なお、このような業種・業態は、ユーザの好みによって任意に変更可能である。
【0051】
また、記憶部22は、非構造化形式のレシートデータを、構造化形式のレシートデータ(つまり電子レシート情報)に変換する際の、変換規則を記述したレシートデータスキーマ22eを記憶する。
【0052】
操作部24は、オペレータがレジ入力を行うための各種の操作キーを有している。操作キーとしては、例えば、数値を入力するための置数キー、所定の項目を選択するためのカーソルキーや選択決定キー、取引における売上登録が行われる商品の合計出力を指示する小計キー、一取引の締め処理を行って代金を決済することを宣言する締めキー、締め処理の一部取り消しを求める取消キー等が設けられている。
【0053】
表示部25は、例えば液晶ディスプレイ等であり、販売登録された商品の名称、価格、決済が宣言された一取引の合計金額、釣銭額等の各種情報を表示する。表示部25は、キャッシャ向けに各種情報を表示するオペレータ用ディスプレイと、顧客向けに各種情報を表示する客用ディスプレイとを備える。なお、表示部25をタッチパネル構成としてもよく、この場合、タッチパネルは操作部24として機能する。
【0054】
プリンタ26は、レシートやジャーナル等の印字を行うプリンタ装置である。プリンタ26は、印字の対象となるロール紙等の用紙を切断するカット機構を具備し(図示せず)、カットコマンドに従い用紙を切断する。
【0055】
コードスキャナ27は、バーコードや二次元コード等のコードシンボルを光学的に読み取るスキャナ装置である。コードスキャナ27は、例えば、商品に付されたコードシンボルを読み取り、当該コードシンボルに保持された情報を制御部21に出力する。なお、商品に付されたコードシンボルには、その商品を特定するための商品コード等が保持されているものとする。
【0056】
また、制御部21は、バス29を介してNFC(Near Field Communication)やBluetooth(登録商標)等の近距離無線通信部28に接続されており、この近距離無線通信部28を介して消費者端末4との間での近距離無線通信が可能となっている。
本例では当該近距離無線通信部28は消費者端末4に記憶された会員コードを読み取る読取装置として機能するものとする。従って、近距離無線通信部28は、消費者端末4の会員コードを通信により読み取り、当該会員コードを制御部21に出力する。
【0057】
また、制御部21は、バス29を介して通信I/F23に接続されており、通信I/F23を介して高速ネットワークN1に接続することが可能となっている。
【0058】
図5は、電子レシート管理サーバ3の構成図である。
電子レシート管理サーバ3は、主に、制御部31、記憶部32、及び通信I/F33を備えている。各部はバス34により相互接続されている。
制御部31は、電子レシート管理サーバ3の各部を統括的に制御し、演算処理やデータの入出力制御などを行うコンピュータである。制御部31は、CPU、各種のプログラムやデータを記憶するROM、各種のプログラムを展開したりデータを書き換え自在に記憶したりするワークメモリとしてのRAM、現在の日時を計時するRTC部等によって構成される。
【0059】
記憶部32は、例えばHDDやSSD等の補助記憶装置である。
記憶部32には、電子レシート管理テーブルの記憶領域32aが設けられている。ここには電子レシート情報などを格納するためのテーブルが記憶されている。
【0060】
また、記憶部32には、電子レシート管理テーブルを管理するための電子レシート管理プログラム32bが記憶されている。電子レシート管理プログラム32bは、具体的には、電子レシート管理テーブルを対象に電子レシート情報の抽出や、登録や、更新や、削除などの処理を行う。
【0061】
また、記憶部32には、送受信プログラム32cなどが記憶されている。送受信プログラム32cは、例えば、本部サーバ1Aから受信したHTTP要求に対して電子レシート情報や取消情報の形式的なチェックを行い、その結果を本部サーバ1Aに応答する。また、消費者端末4からHTTP要求を受信した場合は、データの形式的なチェックの他、電子レシート管理プログラム32bに客の電子レシート情報を抽出させ、その電子レシート情報を要求元の消費者端末4に送信する。
【0062】
通信I/F33は、ネットワークN2、N3に接続するための通信インタフェースである。
【0063】
続いて、本部サーバ1Aを追抜き防止手段として機能させたときの本部サーバ1Aの動作について説明する。なお、以下においては特に説明しないが、記憶部12Aの送受信プログラム12cや整列プログラム12dなどを制御部11AのRAMにロードしCPUで実行することにより、本部サーバ1Aが追抜き防止手段として機能する。
【0064】
図6は、本部サーバ1Aの追抜き防止手段に係る機能ブロック図である。
図6に示すように、追抜き防止手段100は、受信部101、整列部102、及び送信部103により構成される。
【0065】
受信部101は、POS端末2で次々に発行される電子レシート情報R1〜Rn+1(nは整数)や取消情報T1〜Tn+1などをその順序で受け付け、それらを整列部102にその順序で渡す受付処理を行う。同図の破線は各POS端末2と本部サーバ1Aの間の高速ネットワークN1を表している。受付処理では具体的に、通信I/F13Aで受信したPOS端末2からのフレームデータ(MAC(Media Access Control)フレーム等)の破損等のチェック処理をし、チェック結果を送信元のPOS端末2に通知する処理を行う。そして、チェックを通過して受け付けられたフレームの電子レシート情報R1〜Rn+1や取消情報T1〜Tn+1を、それぞれを単位として整列部102に順次渡す処理を行う。一フレーム内に電子レシート情報や取消情報が連続して含まれる場合や、電子レシート情報や取消情報が複数のフレームに分割されている場合は、電子レシート情報や取消情報のそれぞれの単位(一区切り)をカットコマンドで識別し、各単位で整列部102に渡す。
【0066】
整列部102は、受信部101が受け付けた電子レシート情報R1〜Rn+1と取消情報T1〜Tn+1を受付順に整列する処理を行う。具体的に、整列部102は、キュー(待ち行列)1020により構成される。整列部102は、電子レシート情報や取消情報を一区切りとするデータR1〜Rn+1、T1〜Tn+1を、受信部101が受け付けた順序で配列による添え字(通し番号)で管理する。整列部102は、受信部101で受け付けたデータを、キューイン操作により、最後尾のデータのすぐ後ろの位置に挿入する。また、送信部103からデータの削除要求があると、キュー1020の先頭の位置にあるデータを削除(デキュー)し、それに続く他のデータを一つ前の添え字の位置に移動する(つまり前方に一つ詰める)。これにより、常にキュー1020の先頭を示す添え字は固定となり、送信部103は固定の添え字により先頭のデータを指定できる。なお、キュー1020をリングバッファとして利用することにより、キュー1020から先頭のデータを削除する際に、他のデータを一つ前の位置に移動させる操作を行わないようにしても良い。整列部102は、このような仕組みにより、受信部101で受け付けた受付順に電子レシート情報R1〜Rn+1と取消情報T1〜Tn+1を処理順序として対応付ける。
【0067】
送信部103は、整列部102からキュー1020の先頭のデータを取得して電子レシート管理サーバ3へ送信する処理を行う。電子レシート管理サーバ3からデータの登録処理が行われた旨の返信情報を取得した場合に、キュー1020の先頭のデータの削除を整列部102に要求する。
【0068】
具体的に、送信部103は、
図6に示すようにHTTP送信部1031、判定部1032、リトライ部1033、ログ書出部1034を備えている。
HTTP送信部1031は、キュー1020の先頭にあるデータのコピーをパケットに格納し、そのパケットデータをHTTP要求として電子レシート管理サーバ3に送信する。なお、電子レシート管理サーバ3のアドレス情報は、サーバ装置1Aが所持しているものとし、HTTP送信部1031がパケットに送信先として電子レシート管理サーバ3のアドレスを格納するものとする。
【0069】
判定部1032は、HTTP要求に対する電子レシート管理サーバ3からの応答情報(登録可否情報)を受け取る。そして、判定部1032は、電子レシート管理サーバ3からの応答情報に含まれる登録結果を示す情報に基づいて、続く処理を判定する。登録結果を示す情報は、具体的に言うとHTTPステータスコードである。
【0070】
図7は、HTTPステータスコードの種類と判定処理との対応関係を表にまとめたものである。対応表にはその内の一部が例示されている。
図7の対応表70には、「HTTPステータスコード」700と、「意味」701と、「判定処理」702とが項目として示されている。
【0071】
「HTTPステータスコード」700の値が「200」のものは、「意味」701に「成功」と記されているように、登録処理の成功を意味する。この値が電子レシート管理サーバ3から返されたときは、判定部1032の処理として「判定処理」702に記されている「送信完了」の処理を行う。送信完了の処理は、キューの先頭のデータを削除して、キュー内の続く順序のデータを電子レシート管理サーバ3に送信処理する処理である。
【0072】
図7の対応表70には表示がないが、これ以外にも電子レシート管理サーバ3からの応答情報が正常に処理されたことを示す情報が返されたときは、判定部1032は「送信完了」と判定し、キュー1020の先頭の送信済みのデータを削除する。
【0073】
また、「HTTPステータスコード」700の値「503」は「電子レシート管理サーバ3のサービス利用不可(アクセス数の超過、メンテナンス中など)」を意味するものである。この値が電子レシート管理サーバ3から返されたときは、判定部1032は「再送信処理(リトライ)」と判定し、リトライ部1033へ再送信を要求する。これ以外にも時間切れなど、データそのものの問題以外でデータが受け付けできなかったことを示す情報が返されたときは、判定部1032は「再送信処理(リトライ)」と判定し、リトライ部1033へ再送信を要求する。
【0074】
また、「HTTPステータスコード」700の値「400」は「リクエストが不正である」ことを意味するものである。この値が電子レシート管理サーバ3から返されたときは、判定部1032は「データ退避処理」と判定し、ログ書出部1034へデータ退避を要求し、キューの先頭のデータを削除する。これ以外にも、会員コード誤りや電文エラーなどの、そのままでは電子レシート管理サーバ3で処理できないことを示す情報が返されたときは、判定部1032は「データ退避処理」と判定し、ログ書出部1034へデータ退避を要求し、キュー1020の先頭のデータを削除する。
【0075】
リトライ部1033は、HTTP送信部1031が送信したHTTP要求を電子レシート管理サーバ3へ再送信する。これにより、電子レシート管理サーバ3のサービスが復帰した際や、データが生存時間内に電子レシート管理サーバ3に到着した際などにおいて、電子レシート管理サーバ3から値「200」が返されるようになり、判定部1032で「送信完了」として判定されることになる。
【0076】
ログ書出部1034は、判定部1032の判定結果をログフィルに書き出して保持する。また、特に、登録可否情報エラーのあったデータの送信時刻、電子レシート管理サーバ3からの応答内容、送信データ内容(電子レシート情報や取消情報)などをログファイルに書き出して、それらの情報を保持する。ログ書出部1034は、更に、ログファイルに残したデータを修復プログラムで一括処理し、修復済みのデータを所定のタイミングで電子レシート管理サーバ3へ送信し、それらの受け付けを完了させる。修復プログラムは、過去に生じたエラー内容や想定内のエラーを修復するようにプログラムされたもので、エラーの多くはここで解消できる。
【0077】
なお、修復データの送信は取消情報をキューから取り出す前に行うことが望ましい。このようにするに当たり、例えば取消情報がキューから取り出されるときにそのHTTP送信を一旦停止し、修復データを電子レシート管理サーバ3に登録してから、HTTP送信を再スタートさせるなど、構成を適宜変形しても良い。
【0078】
次に、本部サーバ1Aの追抜き防止手段100の動作について説明する。
図8は、追抜き防止手段100にかかるPOS端末2に対する処理と、電子レシート管理サーバ3に対する処理を示すシーケンス図である。
同図の処理は、電子レシート管理サーバ3の各種サービスが一時的に停止した場合における処理の一例である。
なお、同図の本部サーバ1AはCPUで各種のプログラムが実行され、後述する受付サービスや登録サービスが立ち上がり、追抜き防止手段100として機能できる状態にあるものとする。
【0079】
POS端末2と本部サーバ1Aの間の処理は電子レシート情報や取消情報の受付処理Z1となる。一方、本部サーバ1Aと電子レシート管理サーバ3との間の処理は電子レシート情報や取消情報の登録処理Z2となる。受付処理Z1と登録処理Z2は、本部サーバ1Aの整列部102がバッファとして機能することにより、非同期に独立して動作させることができる。
【0080】
POS端末2と本部サーバ1Aの間の各矢印線、本部サーバ1Aと電子レシート管理サーバ3の間の各矢印線は、それぞれが一取引分の通信を表している。POS端末2から本部サーバ1Aの向きは電子レシート情報または取消情報の受付要求の向きを示し、本部サーバ1AからPOS端末2の向きは受付要求の応答としての受付結果を示す情報の向きを示している。
【0081】
また、本部サーバ1Aから電子レシート管理サーバ3の向きは電子レシート情報または取消情報の登録要求の向きを示し、電子レシート管理サーバ3から本部サーバ1Aの向きはHTTPステータスコードの送信の向きを示している。
同図に示すように電子レシート管理サーバ3において一時的にサービスを停止し(q1)、暫くしてサービスを再開する(q2)期間があるとする。
【0082】
POS端末2は本部サーバ1Aに受付処理を行わせるため、電子レシート管理サーバ3のサービス停止期間q1−q2とは無関係に随時、電子レシート情報(R1−R6)や取消情報(T1、T4)を発行し、本部サーバ1Aに投げ続ける。
本部サーバ1AはPOS端末2から電子レシート情報や取消情報を受け付ける度に受け付けたデータをインキューする整列等の処理SHを行う。
【0083】
本部サーバ1Aから電子レシート管理サーバ3に対しては、キュー1020にデータが有ればデキューする処理SHを行い、電子レシート管理サーバ3に対して順次データの登録を要求する。このタイミングは本部サーバ1Aでの受付処理Z1のタイミングとは別とすることができ、任意のタイミングで登録処理Z2を行って良い。
【0084】
サービスの停止期間中q1−q2は本部サーバ1Aから電子レシート管理サーバ3へ電子レシート情報R2や取消情報(不図示)を送信しても受理されず、本部サーバ1Aからのリトライが繰り返されることとなる。同図に示す○記号が受理されたものを表し、△記号が不受理でリトライとなるものを表している。
【0085】
図9は、
図8の本部サーバ1Aの処理SH、すなわち追抜き防止手段として機能するプログラムの動作フロー図である。
図10は、
図6に示す追抜き防止手段100の機能ブロックの構成にデータのフローを追加したものである。
【0086】
以下において、
図9の動作フローを
図10と照らし合わせて説明する。
先ず、受付処理Z1側の動作フロー(受付サービス)について説明する。
始めに、POS端末2からデータを受信したか否を検知する(S1)。
ステップS1で受信が検知されると、データが壊れていないか、電文か正しいかなどのチェックを行う(S2)。
【0087】
次に、ステップS2のチェック結果に基づいて受け付けして良いか否かを判定する(S3)。
ステップS3がYes判定の場合、破線INが示すようにキュー1020の末尾にデータを格納し(S4、
図10のS101)、POS端末2に受付完了を示す情報を送信する(S5、
図10のS102)。
一方、ステップS3がNo判定の場合、POS端末2に受付エラーを示す情報を送信する(S6)。
【0088】
図11は、POS端末2に表示させる受付確認画面の一例である。
同図(a)は、受付完了を示す画面の例である。
同図(b)は、受付エラーを示す画面の例である。
本例では、画面に受付完了か受付エラーかを示す情報を表示されるので、POS端末2の操作者や客は、即座に受付の結果を確認できる。
【0089】
ステップS5、S6の後は、ステップS1の処理に戻り、同様に処理を繰り返す(
図10のS103)。
なお、ステップS1においてNo判定の場合、本処理を終了するか否かの判定処理(S7)を行う。No判定であればステップS1の処理に移行しYes判定であれば本処理を終了する。ステップS7の判定処理は、例えばシステム管理者が受付処理の終了を示すコマンドをCPUに入力することにより、レジスタに終了フラグを立て、ステップS7の処理においてそのフラグの状態を読み取ることにより、処理を終了する。
【0090】
次に、登録処理Z2側の動作フロー(登録サービス)について説明する。
始めにキュー1020にデータがあるか否かを判定する(S11)。
ステップS11でYes判定の場合、キュー1020の先頭のデータをコピーしてHTTP要求を生成する(S12、
図10のS105)。
【0091】
そして、HTTP要求を電子レシート管理サーバ3に向けて送信する(S13、
図10のS106)。
次に、HTTP要求に対する電子レシート管理サーバ3からの応答を受信する(S14、
図10のS107)。
【0092】
そして、対応表(
図7参照)に基づき、電子レシート管理サーバ3からの応答に対応する処理を次のように判定する。
先ず、送信完了であるか否かを判定する(S15)。ステップS15でYes判定の場合は、破線OUTが示すようにキュー1020の先頭からデータを削除し、キュー1020内の残りのデータを前に詰める(S16、
図10のS108)。ステップS15でNo判定の場合は、ステップS17の処理に移行する。
【0093】
ステップS17ではリトライか否かを判定する。ステップS17でYes判定の場合、ステップS13の処理に戻り(
図10のS109)、ステップS13からの処理を繰り返す。ステップS17でNo判定の場合、ステップS18の処理に移行する。
【0094】
ステップS18では、データの退避処理を行う。具体的には、電子レシート管理サーバ3に送信したHTTP要求の内容(キュー1020の先頭のデータを含む)や送信日時などをログに書き出し、ログ情報として保持する(
図10のS110)。また、キュー1020内の次の順のデータを登録処理するためにキュー1020の先頭のデータを削除し、キュー1020内の残りのデータを前に詰める(
図10のS111)。
【0095】
ステップS16、S18の後は、本処理を終了するか否かの判定処理を行う(S19)。No判定であればステップS11の処理に移行しYes判定であれば本処理を終了する。ステップS19の判定処理は、例えばシステム管理者が登録処理の終了を示すコマンドをCPUに入力することにより、レジスタに終了フラグを立て、ステップS19の処理においてそのフラグの状態を読み取ることにより、処理を終了する。
【0096】
本実施形態では、電子レシート管理サーバ3での電子レシート情報や取消情報の登録がデータ側の問題で失敗した場合にログ書出部1034でログ情報をとるようにした。この場合、送信エラーとなったデータに修復プログラムをかけることにより、電子レシート管理サーバ3へ登録することができる。
【0097】
しかし、修復プログラムをかけても修復できないようなエラーが生じた場合は、即座にそれを検知し、データの修復や取消情報の順番管理を行う必要がある。
変形例は、ログ書出部1034の処理が発生する場合にアラートを出してシステム管理者にそれを気付かせる構成のものとする。
【0098】
図12は、変形例のサーバ装置の構成図である。
同図のサーバ装置1Bは、
図3に示すサーバ装置1Aの構成にアラート部15Bを更に設けた構成のものである。なお、
図3と共通する箇所には同一番号を付し、共通する説明は省略する。
アラート部15Bは、制御部11Aからの制御信号の入力により、周辺に光や音で報知する報知機である。例えば回転灯やブザーなどの報知機である。
【0099】
図13は、変形例のサーバ装置1Bの機能ブロック図である。
同図のサーバ装置1Bは、
図6に示すサーバ装置1Aの送信部103にアラート生成部1035を更に設け、送信部103Bを構成したものである。なお、
図6と共通する箇所には同一番号を付し、共通する説明は省略する。
アラート生成部1035は、判定部1032からログ書出部1034への出力があると、アラート信号を生成してアラート部15Bを制御し、周囲のシステム管理者にログの書出しがあったことを報知する。
【0100】
この報知により、システム管理者は電子レシート管理サーバ3で受け入れられないデータがあったことを知り、即座に対応できる。対応方法としては、HTTP送信を一旦停止して、エラーの有ったデータを修復し、修復データを電子レシート管理サーバ3に登録させる。その後、HTTP送信を復旧する。なお、修復プログラムでは修復できないようなものである場合は、所定の処理においてジャーナルをとり、そのジャーナルを辿ることにより、エラーを見つけて修復する。
【0101】
以上のように、本実施形態及び変形例に示す電子レシートシステムでは、POS端末は、LANやVPNのような高速ネットワーク内に設けられたサーバ装置との間で電子レシート情報や取消情報の受付処理を済ませることができる。このため、POS端末側では、電子レシート管理サーバのサービス停止状態や電子レシート管理サーバまでの公衆網やインターネットなどの通信状態などを意識しないで良い。従って、締め処理後の電子レシート情報の受付確認までの手続きを、客を待たせずに高速に済ませることができる。
また、POS端末から電子レシート管理サーバまでの間に電子レシート情報に先行して取消情報が到着することを防止できる。
【0102】
電子レシート管理サーバでは、レジマイナスなどによる取消情報を受信しても、取消情報の突き合わせの対象となる電子レシート情報が既に登録されているので、正常に取消処理できる。
【0103】
本発明の実施形態及び変形例では、係るサーバ装置を企業の本部サーバに適用した例を示したがこの限りではない。例えば、店舗内にPOS端末を一元管理するストアサーバを設け、各店舗のストアサーバを本部サーバで一元管理するシステム構成のときは、係るサーバ装置をPOS端末の直接の上位機となるストアサーバに適用することが望ましい。この場合、ストアサーバとPOS端末は店舗内のネットワークで接続できるため、より高速性や安定性が高くなる。
【0104】
また、他の構成においても、かかるサーバ装置をPOS端末の直接の上位装置に適用することが好ましい。
また、POS端末間の高速通信を実現した上で、電子レシート管理サーバまでの通信経路途中の各種のサーバ装置に任意に適用しても良い。
【0105】
また、本実施形態及び変形例では、電子レシート情報の取引内容として商品情報を取り扱ったが、商品に限らずサービスなどの役務に対して提供しても良い。
【0106】
本実施形態及び変形例のサーバ装置で使用する各種プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供し、サーバ装置のフラッシュROMなどに読み込ませて実行してもよい。
【0107】
また、当該プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【0108】
以上の実施形態及び変形例において、サーバ装置およびプログラムについていくつかの構成を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。