【解決手段】生成される又は生成された生成コードに関する生成コード情報が格納されるべき生成コード格納部と、生成コードを出力する出力装置によって出力された出力コードを撮影する撮影装置から、出力コードを撮影した画像または画像から抽出された出力コードを有する出力コード情報を受信する出力コード受信部と、生成コード格納部に格納されている格納コード情報と、出力コード受信部が受信した出力コード情報とを用いて、出力コードが生成コードと一致するか否かを判断する判断部と、判断部による判断の結果に関する判断結果情報を端末装置に送信する判断結果送信部とを具備するサーバ装置により、コードの差し替えによる不正な支払先への支払いを防止できる。
前記監視カメラは、前記ディスプレイに表示されている出力コードを定期的または不定期に撮影し、撮影した画像をメモリに蓄積し、当該撮影した画像がメモリに格納されている画像に対して変化したか否かを判断し、当該撮影した画像がメモリに格納されている画像に対して変化したと判断した場合に、当該撮影した画像を有する出力コード情報を送信し、
前記出力コード受信部が前記監視カメラから出力コード情報を受信したことに応じて、当該出力コード情報が有する画像から出力コードを抽出する抽出部をさらに具備し、
前記判断部は、
前記生成コード格納部に格納されている格納コード情報と、前記抽出部が抽出した出力コードとを用いて、当該出力コードが前記生成コードと一致するか否かを判断する請求項5記載のサーバ装置。
前記ユーザ端末は、前記ディスプレイに表示されている出力コードを前記カメラで撮影した画像から出力コードを抽出し、抽出した出力コードを用いて前記決済のための処理を行う前に、当該抽出した出力コードを有する出力コード情報を送信し、
前記判断部は、
前記生成コード格納部に格納されている生成コード情報と、前記出力コード受信部が前記ユーザ端末から受信した出力コード情報が有する出力コードとを用いて、当該出力コードが前記生成コードと一致するか否かを判断する請求項7記載のサーバ装置。
生成される又は生成された生成コードに関する生成コード情報が格納されるべき生成コード格納部、出力コード受信部、判断部、および判断結果送信部によって実現される情報処理方法であって、
前記出力コード受信部が、前記生成コードを出力する出力装置によって出力された出力コードを撮影する撮影装置から、当該出力コードを撮影した画像または当該画像から抽出された出力コードを有する出力コード情報を受信する出力コード受信ステップと、
前記判断部が、前記生成コード格納部に格納されている格納コード情報と、前記出力コード受信部が受信した出力コード情報とを用いて、前記出力コードが前記生成コードと一致するか否かを判断する判断ステップと、
前記判断結果送信部が、前記判断部による判断の結果に関する判断結果情報を端末装置に送信する判断結果送信ステップとを含む情報処理方法。
【発明を実施するための形態】
【0039】
以下、サーバ装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0040】
図1は、本実施の形態における情報システムのブロック図である。情報システムは、サーバ装置1、コード生成サーバ2、1または2以上の出力装置3、1または2以上の撮影装置4、および1または2以上の端末装置5を備える。
【0041】
サーバ装置1は、例えば、LANやインターネット等のネットワーク、無線または有線の通信回線などを介して、コード生成サーバ2、1以上の出力装置3、1以上の撮影装置4、および1以上の端末装置5の各々と、通信可能に接続される。なお、サーバ装置1とコード生成サーバ2とは、例えば、専用の通信回線を介して接続されることは好適である。
【0042】
サーバ装置1は、コードの差し替えを検知するサーバである。詳しくは、サーバ装置1は、コード生成サーバ2によって生成されたコードと、出力装置3から出力されたコードとを用いて、コードが差し替えられているか否かを判断し、判断結果に関する情報(以下、判断結果情報と記す場合がある)を端末装置5に送信する。
【0043】
サーバ装置1は、例えば、情報システムを運営する企業や団体等の組織のサーバであるが、クラウドサーバやASPサーバ等でもよく、そのタイプや所在は問わない。
【0044】
コード生成サーバ2は、コードを生成するサーバである。コードとは、例えば、情報を表現する符号である、といってもよい。情報とは、コードを生成する元データである、といってもよい。情報は、例えば、URL、決済情報等であるが、その種類は問わない。なお、決済情報とは、決済に関する情報である。決済情報は、例えば、金額に関する金額情報、支払先に関する支払先情報(例えば、口座番号、名義人名等)などであるが、決済に関する情報であれば何でもよい。
【0045】
コードは、例えば、情報を埋め込んだ図柄である。この種のコードは、例えば、QRコードであるが、QRコード以外の二次元コードでもよいし、バーコード等の一次元コードでも構わない。QRコード以外の二次元コードとは、例えば、SPコードやCPコード等であるが、その種類は問わない。ただし、コードは、例えば、情報を表現する又は情報に対応付いた1または2以上の文字や記号等の配列でもよく、その種類は問わない。
【0046】
コードは、例えば、可変的なコードであることは好適である。可変的なコードとは、変化し得るコードである。可変的なコードは、例えば、定期的または不定期に変化するコードであるが、一の決済にのみ使えるワンタイムコードでもよい。可変的なコードは、通常、ディスプレイ等の表示器に表示されるが、変化する度に、用紙やシールや商品等の表面(以下、「紙面等」)に印刷されてもよい。
【0047】
ただし、コードは、固定的なコードでもよい。固定的なコードとは、変化しないコードである。固定的なコードは、例えば、紙面等に印刷されるが、表示器に表示されてもよい。
【0048】
コード生成サーバ2は、例えば、上記組織のサーバであるが、別の組織のサーバでもよいし、クラウドサーバ等でもよく、そのタイプや所在は問わない。ただし、コード生成サーバ2は、必須ではない。例えば、予め生成されたコードを用いる場合、情報システムは、コード生成サーバ2を備えていなくてもよい。
【0049】
出力装置3は、コードを出力する装置である。出力装置3は、通常、コード生成サーバ2によって生成されたコード(以下、生成コードと記す場合がある)を出力するが、予め生成されたコードを出力してもよい。なお、生成コードは、正規のコードであり、正規のコードは、真のコードといってもよい。また、出力装置3による出力は、通常、表示器への表示であるが、プリンタでの印刷でもよい。
【0050】
本実施の形態における表示器は、店舗端末が有するディスプレイである。店舗端末とは、店舗の端末である。店舗とは、商品またはサービスの購入が可能な場所である、といってもよい。店舗は、例えば、百貨店、ショッピングモール、各種の商店、飲食店、宿泊施設等であるが、その種類は問わない。
【0051】
店舗端末は、例えば、店舗のレジに設置されたレジ端末であるが、店員の携帯端末などでもよく、そのタイプは問わない。携帯端末とは、携帯可能な端末である。なお、携帯端末は、例えば、タブレット端末、スマートフォン、ノートPC、携帯電話機等であるが、その種類は問わない。
【0052】
店舗端末は、例えば、定期的または不定期に、店舗識別子を送信する。店舗識別子とは、店舗を識別する情報である。店舗識別子は、例えば、固定電話番号、メールアドレス、IDなどであるが、店舗を識別し得る情報であれば何でもよい。ただし、店舗端末は、例えば、ユーザ端末からの要求に応じて店舗識別子を送信してもよく、店舗識別子の送信のタイミングやトリガは問わない。または、店舗識別子は、例えば、監視カメラである撮影装置4から送信されてもよく、店舗内の装置であれば、その送信元も問わない。
【0053】
撮影装置4は、出力装置3によって出力されたコード(以下、出力コード)を撮影する装置である。なお、出力コードは、通常、生成コードと同一であるが、第三者によって差し替えられた不正なコードである可能性がある。不正なコードは、偽のコードといってもよい。
【0054】
撮影装置4は、通常、表示器に表示されている出力コードを撮影するが、例えば、紙面等に印刷されたコードを撮影してもよい。なお、後者の場合、コードが印刷された紙面等は、店舗内の適宜な場所(例えば、レジ、陳列棚、商品等)に貼り付けられる。撮影装置4は、出力コードを撮影し、出力コード情報を、通常、装置識別子と対に、サーバ装置1に送信する。出力コード情報とは、出力コードに関する情報である。出力コード情報は、例えば、出力コードを撮影した画像であるが、画像から抽出された出力コードでもよい。
【0055】
装置識別子とは、撮影装置4を識別する情報である。装置識別子は、例えば、MACアドレスやIPアドレス等のアドレスであるが、店舗識別子、IDなどでもよく、撮影装置4を識別し得る情報であれば何でもよい。なお、本実施の形態において、装置識別子は、店舗識別子であるとする。
【0056】
本実施の形態における撮影装置4は、通常、監視カメラである。監視カメラは、店舗端末が有するディスプレイに表示されている出力コードを監視するカメラである。監視カメラは、ディスプレイに表示されている出力コードを撮影し、撮影した画像を有する出力コード情報をサーバ装置1に送信する。
【0057】
監視カメラは、例えば、表示されている出力コードを定期的または不定期に撮影し、撮影した2以上の画像に対応する2以上の出力コード情報をサーバ装置1に送信してもよい。
【0058】
または、監視カメラは、表示されている出力コードを定期的または不定期に撮影し、撮影した2以上の画像における変化を検知し、変化前の1または2以上の画像に対応する1または2以上の出力コード情報を送信せず、変化後の1または2以上の画像に対応する1または2以上の出力コード情報のみを送信することは好適である。これによって、監視カメラから送信される出力コード情報のデータ量を抑制できる。
【0059】
具体的には、監視カメラは、例えば、店舗端末のディスプレイに表示されている出力コードを定期的または不定期に撮影し、撮影した画像をメモリに蓄積しつつ、当該撮影した画像が、メモリに格納されている1または2以上の画像に対して変化したか否かを判断し、変化したと判断した場合に、当該撮影した画像を有する出力コード情報を送信してもよい。これによって、監視カメラから送信される出力コード情報のデータ量を一層抑制できる。
【0060】
ただし、撮影装置4は、例えば、店舗の店員の携帯端末でもよい。店舗の店員の携帯端末である撮影装置4は、同じく店舗の店員の携帯端末である出力装置3のディスプレイに表示されている出力コードを撮影する。つまり、出力装置3と撮影装置4とは、店舗の店員が保有する一の携帯端末によっても実現可能である。この携帯端末は、例えば、当該携帯端末自身のディスプレイに表示されている画面を仮想カメラで撮影し、出力コードを含む画面のキャプチャ画像(スナップショットといってもよい)を取得する、と考えてもよい。
【0061】
端末装置5は、例えば、出力装置3によって出力された出力コードを用いて、予め決められた処理を行う装置である。予め決められた処理は、例えば、決済のための処理である。決済のための処理とは、例えば、図示しない決済サーバへの決済情報の送信であるが、決済でもよい。または、決済のための処理は、例えば、決済を行う前のユーザ登録、決済が完了した旨の通知の受信などでもよい。このように、決済のための処理は、結果として決済が完了する処理であればよいが、決済に必要な処理、決済に付随する処理なども含んでよく、その種類や内容は問わない。
【0062】
端末装置5は、サーバ装置1から判断結果情報を受信し、受信した判断結果情報が否定的な判断結果を示す場合に、決済のための処理の実行を抑制する処理(以下、抑制処理)を行う。なお、抑制処理については後述する。
【0063】
または、端末装置5は、サーバ装置1から受信した判断結果情報が否定的な判断結果を示す場合に、出力コードを用いて、決済のための処理を行ってもよい。
【0064】
ただし、予め決められた処理は、例えば、ウェブページを表示する処理などでもよく、コードを用いた処理であれば何でもよい。なお、QRコード等のコードを用いてウェブページを表示する処理は公知であり、説明を省略する。
【0065】
本実施の形態における端末装置5は、例えば、ユーザ端末である。ユーザ端末とは、ユーザの端末である。ユーザ端末は、通常、特定のユーザの携帯端末であるが、例えば、店舗で買い物をする客である不特定のユーザが利用可能な端末でもよい。
【0066】
ただし、端末装置5は、例えば、上記組織の職員によって操作される端末でもよく、そのタイプや所在は問わない。この種の端末装置5は、例えば、サーバ装置1から判断結果情報を受信し、受信した判断結果情報を出力する。職員は、否定的な判断結果情報が出力された場合に、例えば、コードが差し替えられた可能性がある旨を、店舗や金融機関などに連絡し、コードを用いた決済の実行を回避させてもよい。
【0067】
サーバ装置1は、格納部11、受付部12、受信部13、処理部14、および送信部15を備える。格納部11は、生成コード格納部111を備える。受信部13は、出力コード受信部131、および生成コード受信部132を備える。処理部14は、判断部141、抽出部142、および蓄積部143を備える。送信部15は、判断結果送信部151を備える。
【0068】
端末装置5は、端末格納部51、端末受付部52、端末処理部53、端末送信部54、端末受信部55、および端末出力部56を備える。
【0069】
サーバ装置1を構成する格納部11は、各種の情報を格納し得る。各種の情報とは、例えば、生成コード情報である。なお、その他の情報については、適時説明する。
【0070】
生成コード格納部111には、生成コード情報が格納される。本実施の形態において、生成コード格納部111には、例えば、店舗識別子に対応付けて、2以上の生成コード情報が格納される。
【0071】
生成コード情報とは、生成コードに関する情報である。生成コードとは、生成される又は生成されたコードである。生成コードは、例えば、コード生成サーバ2によって生成される又は生成されたコードである。生成コード情報は、通常、生成されたコードを有するが、コードを生成する元データ(前述)を有していてもよい。
【0072】
または、生成コード情報は、例えば、元データから取得される値を有していてもよい。元データから取得される値とは、例えば、元データを関数に代入することにより計算される値である。関数は、例えば、ハッシュ関数であり、元データから取得される値は、元データをハッシュ関数に代入することにより計算されるハッシュ値でもよい。ただし、関数の種類や関数で計算される値は問わない。
【0073】
なお、生成コード情報は、例えば、予め生成コード格納部111に格納されていてもよい。または、生成コード情報は、例えば、受付部12によって受け付けられ又は生成コード受信部132によって受信され、処理部14によって生成コード格納部111に蓄積されてもよい。
【0074】
具体的には、例えば、元データが受け付けられ又は受信され、処理部14は、その元データからハッシュ関数を用いてハッシュ値を取得し、取得したハッシュ値を、生成コード格納部111に蓄積してもよい。
【0075】
または、例えば、格納部11に、元データと値との対の集合である対応情報が格納されており、処理部14は、この対応情報を用いて、元データに対応する値を取得してもよく、元データから値を取得する手法は問わない。
【0076】
なお、コード識別子と生成コード情報との対もまた、例えば、予め生成コード格納部111に格納されていてもよいし、受付部12によって受け付けられ又は生成コード受信部132によって受信され、処理部14によって生成コード格納部111に蓄積されてもよい。
【0077】
受付部12は、各種の情報を受け付ける。各種の情報とは、例えば、元データである。受付部12は、通常、キーボードやタッチパネル等の入力デバイスを介して入力された情報を受け付けるが、例えば、ネットワークまたは通信回線を介して送信された情報を受信してもよいし、ディスクや半導体メモリなどの記録媒体から読み出された情報を受け付けてもよく、受け付けの態様は問わない。なお、かかる事項は、後述する端末受付部52についても当てはまる。
【0078】
ただし、元データは、例えば、後述する端末受付部52によって受け付けられてもよい。また、サーバ装置1は、受付部12を備えていなくてもよい。
【0079】
受信部13は、各種の情報を受信する。各種の情報とは、出力コード情報、生成コード情報などである。また、受信部13は、例えば、端末装置5から問合せを受信する。問い合わせとは、コードが差し替えられているか否かの判断結果に関する問い合わせである。問い合わせは、例えば、店舗識別子とユーザ識別子とを有する。
【0080】
出力コード受信部131は、撮影装置4から送信される出力コード情報を受信する。受信される出力コード情報は、前述したように、通常、出力コードを撮影した画像を有するが、画像から抽出された出力コードを有していてもよい。なお、後者の場合、撮影装置4は、撮影した画像から出力コードを抽出する機能を有する。
【0081】
出力コード受信部131は、通常、撮影装置4から店舗識別子と対に送信される出力コード情報を受信する。
【0082】
生成コード受信部132は、コード生成サーバ2から生成コード情報を受信する。生成コード受信部132は、例えば、店舗識別子と対に、生成コード情報を受信してもよい。受信される生成コード情報は、例えば、生成コードを有するが、生成コードに代えて、またはこれに加えて、生成コードの元データ、または生成コードから取得される値のうち1種類以上の情報を有していてもよい。
【0083】
なお、コードが可変的なコードである場合、生成コード受信部132は、コード生成サーバ2によって新たなコードが生成される度に、当該新たなコードに関する生成コード情報をコード生成サーバ2から受信してもよい。
【0084】
処理部14は、各種の処理を行う。各種の処理とは、例えば、判断部141、抽出部142、蓄積部143などの処理である。また、処理部14は、例えば、フローチャートで説明する各種の判断なども行う。なお、その他の処理については、適時説明する。
【0085】
判断部141は、生成コード格納部111に格納されている格納コード情報と、出力コード受信部131が受信した出力コード情報とを用いて、出力コードが生成コードと一致するか否かを判断する。
【0086】
本実施の形態において、格納コード情報は、生成コード情報である。つまり、生成コード格納部111には、コード生成サーバ2によって生成された正規のコードまたはその元データ等が格納されており、正規なコードまたはその元データ等の、不正なコードまたはその元データ等への差し替えは、困難であるとする。
【0087】
また、本実施の形態では、前述したように、通常、画像を有する出力コード情報が受信される。この場合、例えば、後述する抽出部142が、受信された出力コード情報が有する画像から出力コードを抽出し、判断部141は、格納されている格納コード情報と、抽出された出力コードとを用いて、出力コードが生成コードと一致するか否かを判断する。
【0088】
なお、出力コードを有する出力コード情報が受信される場合には、判断部141は、格納されている格納コード情報と、受信された出力コード情報が有する出力コードとを用いて、出力コードが生成コードと一致するか否かを判断すればよい。
【0089】
他方、格納コード情報は、前述したように、通常、生成コードであるが、生成コードの元データでもよいし、元データから取得される値でもよい。
【0090】
例えば、格納コード情報が生成コードであり、画像を有する出力コード情報が受信される場合、判断部141は、生成コード格納部111に格納されている生成コードと、後述する抽出部142が、受信された画像から抽出した出力コードとを照合して、出力コードが生成コードと一致するか否かを判断する。
【0091】
なお、格納コード情報が生成コードの元データであり、画像を有する出力コード情報が受信される場合、例えば、処理部14が、生成コード格納部111に格納されている元データから生成コードを生成し、判断部141は、生成された生成コードと、画像から抽出された出力コードとを照合して、出力コードが生成コードと一致するか否かを判断する。
【0092】
または、格納コード情報が生成コードの元データから取得された値であり、画像を有する出力コード情報が受信される場合、例えば、処理部14が、格納されている値から元データを計算し、計算した元データから生成コードを生成する。判断部141は、生成された生成コードと、画像から抽出された出力コードとを照合して、出力コードが生成コードと一致するか否かを判断する。
【0093】
抽出部142は、出力コード受信部131が受信した出力コード情報が有する画像から出力コードを抽出する。抽出部142は、例えば、受信された画像に対し、二値化による輪郭線検出を行うことにより、出力コードを抽出する。なお、画像からのコード抽出は公知技術であり、詳しい説明は省略する。
【0094】
蓄積部143は、生成コード受信部132が受信した生成コード情報を生成コード格納部111に蓄積する。蓄積部143は、例えば、生成コード受信部132が店舗識別子と対に受信した生成コード情報を、店舗識別子に対応付けて、生成コード格納部111に蓄積する。
【0095】
なお、例えば、コードが可変的なコードである場合、蓄積部143は、生成コード受信部132が新たなコードに関する生成コード情報を受信したことに応じて、生成コード格納部111に格納されている格納コード情報を、受信された生成コード情報で更新してもよい。それによって、可変的なコードを用いて決済を行う場合に、コードの差し替えによる不正な支払先への支払いを防止できる。
【0096】
送信部15は、各種の情報を送信する。各種の情報とは、例えば、判断結果情報である。
【0097】
判断結果送信部151は、判断部141による判断の結果に関する判断結果情報を端末装置5に送信する。
【0098】
判断結果送信部151は、例えば、受信部13が端末装置5から問い合わせを受信したことに応じて、当該問い合わせが有する店舗識別子に対応する格納コード情報に関する判断結果情報を、当該問い合わせが有するユーザ識別子に対応する端末装置5に送信してもよい。なお、端末装置5からの問い合わせに応じた処理については、フローチャートで説明する。
【0099】
端末装置5を構成する端末格納部51には、各種の情報が格納される。各種の情報とは、例えば、端末識別子、警告情報などである。端末識別子とは、端末装置5を識別する情報である。端末識別子は、例えば、MACアドレスやIPアドレス等のアドレスであるが、ユーザ識別子、IDなどでもよく、端末装置5を識別し得る情報であれば何でもよい。ユーザ識別子とは、端末装置5のユーザを識別する情報である。ユーザ識別子は、例えば、携帯電話番号、メールアドレス、住所・氏名などであるが、ユーザを識別し得る情報であれば何でもよい。なお、本実施の形態において、端末識別子は、ユーザ識別子であるとする。
【0100】
警告情報とは、コードが差し替えられている可能性について、端末装置5のユーザに警告する情報である。警告情報は、例えば、“コードが差し替えられている可能性があります”等の文字列であるが、コードの差し替えを示唆するマークでもよいし、単なる警告音の音声データなどでもよく、その種類は問わない。
【0101】
端末受付部52は、各種の情報や各種の指示を受け付ける。各種の情報とは、例えば、元データである。各種の指示とは、例えば、決済指示、キャンセル指示などである。決済指示とは、コードを用いた決済のための処理を実行する指示である。キャンセル指示と、コードを用いた決済のための処理をキャンセルする指示である。
【0102】
端末処理部53は、各種の処理を行う。各種の処理とは、例えば、出力コードの読み取り、決済のための処理などである。また、端末処理部53は、例えば、フローチャートで説明する各種の判別なども行う。
【0103】
端末処理部53は、例えば、店舗端末のディスプレイに表示されている出力コードを内蔵カメラで読み取る。詳しくは、端末処理部53は、表示されている出力コードを内蔵カメラで撮影し、撮影した又は撮影中の画像から出力コードを抽出する。そして、出力コードの読み取りの後、端末受付部52が決済指示を受け付けたことに応じて、端末処理部53は、当該出力コードを用いて決済のための処理を行う。
【0104】
また、端末処理部53は、例えば、撮影した又は撮影中の画像から出力コードを抽出し、さらに、店舗端末である出力装置3から店舗識別子を受信したことに応じて、受信した店舗識別子と、端末格納部51に格納されているユーザ識別子とを有する問合せを、端末送信部54を介してサーバ装置1に送信する。
【0105】
また、端末処理部53は、例えば、上記のような問い合わせの送信に応じて、端末受信部55がサーバ装置1から否定的な判断結果を示す判断結果情報を受信した場合に、抑制処理を実行する。抑制処理とは、決済のための処理の実行を抑制する処理である。抑制処理は、例えば、コードが差し替えられている可能性についての警告を、端末格納部51に格納されている警告情報を用いて、端末出力部56を介して出力する処理である。
【0106】
または、抑制処理は、例えば、受信された判断結果情報を出力することでもよい。なお、出力される判断結果情報は、受信された判断結果情報と同じでなくてもよい。出力される判断結果情報は、例えば、“表示されているコードは正規のコードと一致しません”または“表示されているコードは正規のコードと一致します”などであるが、その表現形式は問わない。
【0107】
または、抑制処理は、例えば、決済のための処理を行わないことでもよい。詳しくは、例えば、端末受信部55がサーバ装置1から否定的な判断結果を示す判断結果情報を受信した場合、端末処理部53は、端末受付部52が決済指示を受け付けても、決済のための処理を行わなくてもよい。
【0108】
または、抑制処理は、例えば、決済指示を受け付けないことでもよい。詳しくは、端末処理部53は、例えば、端末受信部55がサーバ装置1から肯定的な判断結果を示す判断結果情報を受信した場合にだけ、端末受付部52を介して入力された決済指示を受け付け、否定的な判断結果を示す判断結果情報を受信した場合には、決済指示の受け付けを行わなくてもよい。
【0109】
このように、抑制処理は、サーバ装置1から否定的な判断結果を示す判断結果情報が受信された場合に、決済のための処理の実行が、結果として抑制されるような処理であれば、どのような処理でもよい。
【0110】
端末送信部54は、端末受付部52が受け付けた各種の情報や各種の指示をサーバ装置1に送信する。端末送信部54は、受け付けられた各種の情報や各種の指示を、例えば、端末格納部51に格納されている端末識別子と対に、サーバ装置1に送信してもよい。
【0111】
端末受信部55は、サーバ装置1から判断結果情報を受信する。また、端末受信部55は、例えば、店舗端末である出力装置3から店舗識別子を受信する。
【0112】
端末出力部56は、各種の情報を出力する。各種の情報とは、例えば、内蔵カメラで撮影された画像または当該画像から抽出された出力コード、警告、判断結果情報などである。
【0113】
端末出力部56は、例えば、端末受信部55がサーバ装置1から否定的な判断結果を示す判断結果情報を受信した場合に、端末格納部51に格納されている警告情報に基づく警告を出力する。
【0114】
格納部11、生成コード格納部111、および端末格納部51は、例えば、ハードディスクやフラッシュメモリといった不揮発性の記録媒体が好適であるが、RAMなど揮発性の記録媒体でも実現可能である。
【0115】
なお、格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、ネットワークや通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。入力デバイスは、例えば、キーボード、マウス、タッチパネル等、何でもよい。
【0116】
受付部12、および端末受付部52は、入力デバイスを含むと考えても、含まないと考えてもよい。受付部12等は、入力デバイスのドライバーソフトによって、または入力デバイスとそのドライバーソフトとで実現され得る。
【0117】
受信部13、出力コード受信部131、生成コード受信部132、および端末受信部55は、通常、有線または無線の通信手段(例えば、NIC(Network interface controller)やモデム等の通信モジュール)で実現されるが、放送を受信する手段(例えば、放送受信モジュール)で実現されてもよい。
【0118】
処理部14、判断部141、蓄積部143、および端末処理部53は、通常、MPUやメモリ等から実現され得る。処理部14等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。ただし、処理手順は、ハードウェア(専用回路)で実現してもよい。
【0119】
送信部15、判断結果送信部151、および端末送信部54は、通常、有線または無線の通信手段で実現されるが、放送手段(例えば、放送モジュール)で実現されてもよい。
【0120】
端末出力部56は、ディスプレイやスピーカ等の出力デバイスを含むと考えても含まないと考えてもよい。端末出力部56は、出力デバイスのドライバーソフトによって、または出力デバイスとそのドライバーソフトとで実現され得る。
【0121】
次に、情報システムの動作について、
図2〜
図4のフローチャートを用いて説明する。なお、
図2〜
図4のフローチャートには、生成コードの元データから取得される値が生成コード格納部111に格納されており、撮影装置4から画像を有する出力コード情報が送信される場合の処理が示されている。
【0122】
図2は、本実施の形態におけるサーバ装置1の動作を説明するフローチャートである。
【0123】
(ステップS201)処理部14は、出力コード受信部131が出力コード情報を店舗識別子と対に受信したか否かを判別する。出力コード受信部131が出力コード情報を店舗識別子と対に受信したと判別されるとステップS202に進み、受信していないと判別されるとステップS207に進む。
【0124】
(ステップS202)抽出部142は、ステップS201で受信された出力コード情報が有する画像から出力コードを抽出する。
【0125】
(ステップS203)判断部141等は、ステップS202で抽出された出力コードが生成コードと一致するか否かを判断する判断処理を行う。なお、この判断処理については、
図3のフローチャートを用いて説明する。
【0126】
(ステップS204)処理部14は、ステップS203の判断結果が肯定的か否かを、後述する変数を用いて判別する。ステップS203の判断結果が肯定的である場合はステップS205に進み、否定的である場合はステップS206に進む。
【0127】
(ステップS205)処理部14は、肯定的な判断結果を示す判断結果情報を、ステップS201で受信された店舗識別子に対応付けて格納部11に蓄積する。その後、ステップS201に戻る。
【0128】
(ステップS206)処理部14は、否定的な判断結果を示す判断結果情報を、ステップS201で受信された店舗識別子に対応付けて格納部11に蓄積する。その後、ステップS201に戻る。
【0129】
(ステップS207)処理部14は、生成コード受信部132が生成コード情報を店舗識別子と対に受信したか否かを判別する。生成コード受信部132が生成コード情報を店舗識別子と対に受信したと判別された場合はステップS208に進み、受信していないと判別された場合はステップS209に進む。
【0130】
(ステップS208)蓄積部143は、ステップS207で店舗識別子と対に受信された生成コード情報を、当該店舗識別子に対応付けて生成コード格納部111に蓄積する。その後、ステップS201に戻る。
【0131】
(ステップS209)処理部14は、受信部13が問い合わせを受信したか否かを判別する。受信部13が問い合わせを受信したと判別された場合はステップS210に進み、受信していないと判別された場合はステップS201に戻る。
【0132】
(ステップS210)処理部14は、ステップS209で受信された問い合わせが有する店舗識別子に対応する判断結果情報を、格納部11から取得する。
【0133】
(ステップS211)判断結果送信部151は、ステップS210で取得された判断結果情報を、ステップS209で受信された問い合わせが有するユーザ識別子で識別される端末装置5に送信する。なお、送信される判断結果情報は、ステップS210で取得された判断結果情報と同じでなくてもよい。例えば、処理部13が、ステップS210で取得した判断結果情報のフォーマットを、送信用のフォーマットに変換する処理を行い、判断結果送信部151は、変換後の判断結果情報を送信してもよい。その後、ステップS201に戻る。
【0134】
なお、
図2のフローチャートにおいて、サーバ装置1の電源オンやプログラムの起動に応じて処理が開始し、電源オフや処理終了の割り込みにより処理は終了する。ただし、処理の開始または終了のトリガは問わない。
【0135】
図3は、ステップS203の判断処理を説明するフローチャートである。
【0136】
(ステップS301)処理部14は、生成コード格納部111に格納されている1以上の生成コード情報のうち、ステップS201で受信された店舗識別子に対応する格納コード情報を参照する。
【0137】
(ステップS302)処理部14は、ステップS301で参照した生成コード情報から値を取得する。
【0138】
(ステップS303)処理部14は、ステップS302で取得した値から元データを取得する。
【0139】
(ステップS304)処理部14は、ステップS303で取得した元データから生成コードを生成する。
【0140】
(ステップS305)判断部141は、ステップS202で抽出された出力コードが、ステップS304で再構成された生成コードと一致するか否かを判断する。出力コードが生成コードと一致すると判断された場合はステップS306に進み、一致しないと判断された場合はステップS307に進む。
【0141】
(ステップS306)判断部141は、判断結果を示す変数に“肯定的”をセットする。その後、上位の処理にリターンする。
【0142】
(ステップS307)判断部141は、上記変数に“否定的”をセットする。その後、上位の処理にリターンする。
【0143】
図4は、本実施の形態における端末装置5の動作を説明するフローチャートである。ユーザの携帯端末である端末装置5の内蔵カメラが、出力装置30のディスプレイに向けられており、端末処理部53は、ディスプレイに表示されている出力コードを撮影している。
【0144】
(ステップS401)端末処理部53は、撮影中の画像から出力コードを抽出したか否かを判別する。撮影中の画像から出力コードを抽出したと判別されるとステップS402に進み、抽出していないと判別されるとステップS401に戻る。
【0145】
(ステップS402)端末処理部53は、端末受信部55が店舗識別子を受信したか否かを判別する。端末受信部55が店舗識別子を受信したと判別されるとステップS403に進み、受信していないと判別されるとステップS401に戻る。
【0146】
(ステップS403)端末送信部54は、ステップS402で受信した店舗識別子と、端末格納部51に格納されているユーザ識別子とを有する問い合わせをサーバ装置1に送信する。
【0147】
(ステップS404)端末処理部53は、端末受信部55が判断結果情報を受信したか否かを判別する。端末受信部55が判断結果情報を受信したと判別されるとステップS405に進み、受信していないと判別されるとステップS404に戻る。
【0148】
(ステップS405)端末処理部53は、ステップS404で受信された判断結果情報が否定的な判断結果を示すか否かを判別する。受信された判断結果情報が、否定的な判断結果を示すと判別された場合はステップS406に進み、肯定的な判断結果を示すと判別された場合はステップS407に進む。
【0149】
(ステップS406)端末出力部56は、コードが差し替えられている可能性についての警告を出力する。
【0150】
(ステップS407)端末処理部53は、端末受付部52が決済指示を受け付けたか否かを判別する。端末受付部52が決済指示を受け付けたと判別された場合はステップS408に進み、受け付けていないと判別された場合はステップS409に進む。
【0151】
(ステップS408)端末処理部53は、ステップS401で抽出した出力コードを用いて決済のための処理を実行する。その後、ステップS401に戻る。
【0152】
(ステップS409)端末処理部53は、端末受付部52がキャンセル指示を受け付けたか否かを判別する。端末受付部52がキャンセル指示を受け付けたと判別された場合はステップS401に戻り、受け付けていないと判別された場合はステップS407に戻る。
【0153】
なお、
図4のフローチャートにおいて、端末装置5の電源オンやプログラムの起動に応じて処理が開始し、電源オフや処理終了の割り込みにより処理は終了する。ただし、処理の開始または終了のトリガは問わない。
【0154】
以下、本実施の形態における情報システムの具体的な動作例について説明する。なお、以下の説明は、種々の変更が可能であり、本発明の範囲を何ら制限するものではない。
【0155】
本例における情報システムは、サーバ装置1、コード生成サーバ2、2以上の出力装置3、2以上の撮影装置4、および2以上の端末装置5を備える。
【0156】
2以上の出力装置3のうち1つ(以下、出力装置3X)は、店舗Xのレジ端末であり、当該レジ端末が有するディスプレイに、店舗X用のコードを表示する。2以上の出力装置3のうち他の1つ(以下、出力装置3Y)は、店舗Yの店員の携帯端末であり、当該携帯端末が有するディスプレイに、店舗Y用のコードを表示する。
【0157】
なお、出力装置3Xからは、店舗識別子“X”が、出力装置3Yからは、店舗識別子“Y”が、それぞれ定期的に送信されている。
【0158】
2以上の撮影装置4のうち1つ(以下、撮影装置4X)は、店舗Xの監視カメラであり、店舗Xのレジ端末である出力装置3Xのディスプレイに表示されているコードを定期的に撮影している。
【0159】
2以上の撮影装置4のうち他の1つ(以下、撮影装置4Y)は、店舗Yの店員の携帯端末であり、同じく店舗Yの店員の携帯端末である出力装置3Yのディスプレイに表示されているコードを定期的に撮影している。つまり、出力装置3Yと撮影装置4Yとは、店舗Yの店員が保有する一の携帯端末で実現され、この携帯端末は、当該携帯端末自身のディスプレイに表示されている画面であり、コードを含む画面を、仮想カメラで定期的に撮影している。
【0160】
2以上の端末装置5のうち、1つ(以下、端末装置5A)は、ユーザAの携帯端末であり、他の1つ(以下、端末装置5B)は、ユーザBの携帯端末である。
【0161】
格納部11には、例えば、画面構成情報が格納される。画面構成情報とは、画面を構成するための情報である。画面構成情報は、例えば、1または2以上のオブジェクト、およびレイアウト情報などを有する。オブジェクトとは、画面を構成する要素である。オブジェクトは、例えば、画像である。画像は、例えば、ボタンの画像である。ボタンは、例えば、決済指示を入力するための“決済する”ボタンである。または、オブジェクトは、文字列でもよい。文字列は、例えば、警告文である。レイアウト情報とは、画面内における1以上のオブジェクトの配置を示す情報である。レイアウト情報は、例えば、1以上の各オブジェクトの画面内における位置を示す情報(例えば、座標)の集合であるが、そのデータ構造は問わない。
【0162】
格納部11には、例えば、
図5に示すような、店舗識別子と生成コード情報との対の集合が格納されている。店舗識別子と生成コード情報の対とは、例えば、店舗識別子“X”と生成コード情報“aaaa”との対、店舗識別子“Y”と生成コード情報“bbbb”との対などである。
【0163】
生成コード情報“aaaa”は、コード生成サーバ2が店舗X用に生成したコードの元データからハッシュ関数で計算されたハッシュ値である。生成コード情報“bbbb”は、コード生成サーバ2が店舗Y用に生成したコードの元データからハッシュ関数で計算されたハッシュ値である。従って、生成コード情報“aaaa”および生成コード情報“bbbb”は、いずれも正規の生成コード情報である。
【0164】
端末装置5Aの端末格納部51には、ユーザ識別子“A”が、端末装置5Bの端末格納部51には、ユーザ識別子“B”が、それぞれ格納されている。
【0165】
店舗Xにおいて、レジ端末である出力装置3Xのディスプレイに、コードが表示されており、監視カメラである撮影装置4Xは、ディスプレイに表示されているコードを定期的に撮影している。撮影装置4Xは、コードを撮影する度に、撮影した画像を有する出力コード情報を、店舗識別子“X”と対にサーバ装置1に送信する。
【0166】
サーバ装置1において、出力コード受信部131が上記出力コード情報を店舗識別子“X”と対に受信し、抽出部142は、受信された出力コード情報が有する画像から出力コードを抽出する。
【0167】
処理部14は、生成コード格納部111に格納されている2以上の生成コード情報のうち、受信された店舗識別子“X”に対応する生成コード情報を参照する。そして、当該生成コード情報からハッシュ値“aaaa”を取得し、取得したハッシュ値からハッシュ関数を用いて元データを算出し、算出した元データからコードを生成する。
【0168】
判断部141は、画像から抽出された出力コードが、生成コード情報を基に生成された生成コードと一致するか否かを判断する。ここでは、出力コードが生成コードと一致すると判断され、処理部14は、肯定的な判断結果を示す判断結果情報を、店舗識別子“X”に対応付けて格納部11に蓄積する。
【0169】
なお、店舗Yについても、上記と同様の処理が行われ、肯定的な判断結果を示す判断結果情報が、店舗識別子“Y”に対応付けて格納部11に蓄積される。
【0170】
ユーザAは、店舗Xで買い物をし、コードを用いて決済を行おうとしている。ユーザAは、自分の携帯端末である端末装置5Aの内蔵カメラを出力装置3Xのディスプレイに向け、表示されているコードを撮影する。
【0171】
端末装置5Aにおいて、端末処理部53が、撮影中の画像からコードを抽出し、さらに、端末受信部55が、出力装置3Xから店舗識別子“X”を受信すると、端末送信部54は、受信した店舗識別子“X”と、端末格納部51に格納されているユーザ識別子“A”とを有する問い合わせを、サーバ装置1に送信する。
【0172】
サーバ装置1において、受信部13が上記問い合わせを受信し、処理部14は、受信された問い合わせが有する店舗識別子“X”に対応する判断結果情報を格納部11から取得する。判断結果送信部151は、取得された判断結果情報を、受信された問い合わせが有するユーザ識別子“A”で識別される端末装置5Aに送信する。
【0173】
端末装置5Aにおいて、端末受信部55が上記判断結果情報を受信し、端末処理部53は、受信された判断結果情報が肯定的な判断結果を示すことから、決済指示を行うための“決済する”ボタンを有する画面を構成する。端末出力部56は、構成された画面を、ディスプレイを介して出力する。
【0174】
これにより、端末装置5Aのディスプレイには、例えば、
図6に示すような、“決済する”ボタンを有する画面が表示される。ユーザAが“決済する”ボタンを押下すると、端末受付部52は、決済指示を受け付け、端末処理部53は、抽出した出力コードを用いて決済のための処理を実行する。
【0175】
なお、生成コード情報が不正なコードに差し替えられた場合の動作は、以下のようになる。例えば、店舗Yの出力装置3Yから出力される出力コードが、第三者によって不正なコードに差し替えられたとすると、店舗Yにおいて、店員の携帯端末である出力装置3Yのディスプレイには、それまで表示されていた正規のコードに代えて、不正なコードが表示される。
【0176】
同じ店員の携帯端末である撮影装置4Yは、不正なコードを含む画面のキャプチャ画像取得し、取得したキャプチャ画像を有する出力コード情報を、店舗識別子“Y”と対にサーバ装置1に送信する。
【0177】
サーバ装置1において、出力コード受信部131が上記出力コード情報を店舗識別子“Y”と対に受信し、抽出部142は、受信された出力コード情報が有するキャプチャ画像から出力コードを抽出する。処理部14は、受信された店舗識別子“Y”に対応する生成コード情報を参照して、当該生成コード情報からハッシュ値“bbbb”を取得し、取得したハッシュ値からハッシュ関数を用いて元データを算出し、算出した元データから生成コードを生成する。
【0178】
ここでは、判断部141によって、出力コードが生成コードと一致しないと判断され、処理部14は、否定的な判断結果を示す判断結果情報を、店舗識別子“Y”に対応付けて格納部11に蓄積する。
【0179】
ユーザBは、店舗Yで買い物をした後、自分の携帯端末である端末装置5Bの内蔵カメラを、店員の携帯端末である出力装置3Yのディスプレイに向け、表示されているコードを撮影する。
【0180】
端末装置5Bにおいて、端末処理部53が撮影中の画像からコードを抽出し、端末受信部55が出力装置3Yから店舗識別子“Y”を受信すると、端末送信部54は、受信された店舗識別子“Y”と、端末格納部51のユーザ識別子“B”とを有する問い合わせをサーバ装置1に送信する。
【0181】
サーバ装置1において、受信部13が上記問い合わせを受信し、処理部14は、当該問い合わせが有する店舗識別子“Y”に対応する判断結果情報を取得し、判断結果送信部151は、取得された判断結果情報を、当該問い合わせが有するユーザ識別子“B”で識別される端末装置5Bに送信する。
【0182】
端末装置5Bにおいて、端末受信部55が上記判断結果情報を受信し、端末処理部53は、当該判断結果情報が否定的な判断結果を示すことから、コードが差し替えられている可能性についての警告を有する画面を構成する。端末出力部56は、構成された画面を、ディスプレイを介して出力する。
【0183】
これにより、端末装置5Bのディスプレイには、例えば、
図7に示すような、警告文“QRコードが不正なコードに差し替えられた可能性があります。別の方法で決済を行って下さい”を有する画面が表示される。例えば、ユーザBがホームボタンの押下を行うと、キャンセル操作が受け付けられ、コードを用いた決済はキャンセルされる。
【0185】
実施の形態では、生成コード格納部111に格納されている格納コード情報は、正規のコードに関する情報であり、不正なコードに差し替えられることはなかったが、本変形例1では、格納コード情報も、不正なコードに関する情報に差し替えられる可能性がある。
【0186】
本変形例1において、生成コード格納部111は、図示しない3以上の格納手段を含む。なお、3以上の格納手段は、例えば、3以上の記録媒体で実現されることは好適であるが、1つまたは2つの記録媒体で実現されてもよい。
【0187】
生成コード格納部111を構成する3以上の格納手段には、一の生成コードに対応する3以上の生成コード情報が格納される。3以上の格納手段には、2以上の各店舗識別子ごとに、生成コードに対応する3以上の生成コード情報が格納されてもよい。例えば、コード生成サーバ2によって、一の店舗識別子に対応するコードが生成されると、処理部14は、生成されたコードに関する3以上の格納コード情報を構成し、当該端末識別子に対応付けて3以上の格納手段に蓄積する。なお、以下では、生成コード情報は、生成コードであるとする。
【0188】
一の店舗識別子に対応付けて3以上の格納手段に格納されている3以上の生成コード情報は、通常、どれも正規のコードに関する情報であるが、そのうち1つ又は2つ以上が、第三者によって不正なコードに差し替えられる可能性がある。
【0189】
変形例1において、生成コード格納部111を構成する格納手段の数は、通常、3である。格納手段の数が2であると、一の格納コード情報が差し替えられた場合に、2つの格納コード情報のどちらが真のコードか判断することは容易でない。これに対して、格納手段の数が3であれば、一の格納コード情報が差し替えられても、他の2つの格納コード情報が同じであることから、これら2つの格納コード情報が最多数(過半数といってもよい)であり、真のコードであることを容易に判断にできる。
【0190】
ただし、格納手段の数は、4以上でもよい。その場合でも、格納手段の数は、奇数(例えば、5、7等)であることは好適である。格納手段の数が2m(例えば、m=2)であると、m個の格納コード情報が同じ不正なコード情報に差し替えられた場合に、差し替えられていないm個の格納コード情報の組と、差し替えられたm個のコード情報の組のどちらが真のコードの組かを判断することは困難となる。これに対して、格納手段の数が2m+1であれば、m個の格納コードの格納コード情報が差し替えられた場合に、残りのm+1個の格納コード情報が同じであることから、これらm+1の格納コード情報が最多数であり、真のコードであることを容易に判断にできる。
【0191】
なお、例えば、格納手段の数が3m(例えば、m=2)である場合、m個の格納コード情報が同じ第一の不正なコード情報に差し替えられ、他のm個の格納コード情報が同じ第二の不正なコード情報に差し替えられた場合に、差し替えられていないm個の格納コード情報の組と、第一の不正なコード情報に差し替えられたm個のコード情報の組と、第二の不正なコード情報に差し替えられたm個のコード情報の組とは、それを構成する格納コード情報の数が同数なので、最多数の格納コードである最多数格納コードは一意に決まらず、どの組の格納コード情報が真のコードかを判断することは困難となる。
【0192】
これに対して、格納手段の数が3m+1であれば、m個の格納手段の格納コード情報が同じ第一の不正なコード情報に差し替えられ、他のm個の格納手段の格納コード情報が同じ第二の不正なコード情報に差し替えられた場合に、その他のm+1個の格納コード情報が最多数であることから、最多数格納コードが一意に決まり、真のコードを容易に判断にできる。
【0193】
このように、格納手段の数が3以上の奇数であれば、2以上の偶数の場合と比べ、最多数格納コードが一意に決まる可能性が高まり、真のコードを容易に判断にできる。
【0194】
判断部141を構成する第一判断手段は、3以上の格納手段に格納されている3以上の格納コード情報を用いて、3以上の格納コード情報に対応する3以上の格納コードの中に、一致する2以上の格納コードの組が1組以上存在するか否かを判断する。
【0195】
第二判断手段は、第一判断手段が3以上の格納コードの中に、上記のような組が1組以上存在すると判断した場合に、一の組を構成する格納コードであり、他のどの組を構成する格納コードよりも数が多い格納コードである最多数格納コードが唯一つ存在するか否かを判断する。
【0196】
決定手段は、第二判断手段が最多数格納コードが唯一つ存在すると判断した場合に、最多数格納コードを生成コードに決定する。
【0197】
第三判断手段は、決定手段が決定した生成コードと、出力コード受信部131が受信した出力コード情報とを用いて、出力コードが生成コードと一致するか否かを判断する。
【0198】
例えば、3つの生成コード情報が格納され、それらに対応する3つの格納コードの中に、一致する2以上の格納コードの組が存在する場合は、当該組を構成する格納コードが、最も数が多い格納コードであるため、生成コードに決定される。
(2n+1)個の生成コード情報が格納され、対応する(2n+1)個の格納コードの中に、一致する2以上の格納コードの組が1組だけ存在する場合は、当該組を構成する格納コードが、最も数が多い格納コードであるため、生成コードに決定される。
対応する(2n+1)個の格納コードの中に、一致する2以上の格納コードの組が2組〜n組存在する場合は、一の組を構成する格納コードであり、他のどの組を構成する格納コードよりも数が多い最多数格納コードが、生成コードに決定される。なお、2以上の組の間で、格納コードの数が同数の場合は、その数が最多でも、最多数格納コードは存在しないと判断される。
【0199】
判断結果送信部151は、例えば、第一判断手段が上記組が存在しないと判断した場合、または第二判断手段が最多数格納コードが存在しないと判断した場合、または第三判断手段が出力コードが生成コードと一致しないと判断した場合に、コードが差し替えられている可能性についての警告を有する判断結果情報を送信する。
【0200】
また、判断結果送信部151は、例えば、第三判断手段が出力コードが生成コードと一致すると判断した場合に、出力コードを用いて決済のための処理を行うことを許容する情報を送信してもよい。
【0201】
本変形例1における情報システムの動作は、ステップS203の判断処理、およびステップS208の蓄積処理を除いて、実施の形態と同様である。
【0202】
ステップS208では、受信された生成コード情報と同じ3以上の生成コード情報を構成し、店舗識別子に対応付けて3以上の格納手段に蓄積する。
【0203】
図8は、本変形例1におけるステップS203の判断処理を説明するフローチャートである。
【0204】
(ステップS801)処理部14は、生成コード格納部111を構成する3以上の格納手段から、ステップS201で受信された店舗識別子に対応する3以上の格納コード情報を取得する。
【0205】
(ステップS802)判断部141を構成する第一判断手段は、3以上の格納手段に格納されている3以上の格納コード情報を用いて、3以上の格納コード情報に対応する3以上の格納コードの中に、一致する2以上の格納コードの組が1組以上存在するか否かを判断する。一致する2以上の格納コードの組が、1組以上存在すると判断された場合はステップS803に進み、1組も存在しないと判断された場合はステップS807に進む。
【0206】
(ステップS803)第二判断手段は、上記1以上の組のうち、一の組を構成する格納コードであり、他のどの組を構成する格納コードよりも数が多い格納コードである最多数格納コードが唯一つ存在するか否かを判断する。最多数格納コードが、唯一つ存在すると判断された場合はステップS804に進み、2つ以上存在すると判断された場合はステップS807に進む。
【0207】
(ステップS804)決定手段は、ステップS804で唯一つ存在すると判断された最多数格納コードを生成コードに決定する。
【0208】
(ステップS805)第三判断手段は、ステップS202で抽出された出力コードが、ステップS804で決定された生成コードと一致するか否かを判断する。出力コードが生成コードと一致すると判断された場合はステップS806に進み、一致しないと判断された場合はステップS807に進む。
【0209】
(ステップS806)第三判断手段は、判断結果を示す変数に“肯定的”をセットする。その後、上位の処理にリターンする。
【0210】
(ステップS807)第三判断手段は、上記変数に“否定的”をセットする。その後、上位の処理にリターンする。
【0212】
実施の形態では、出力装置3は、店舗端末(例えば、レジ端末または店員の携帯端末)であり、端末装置5は、ユーザ端末(例えば、ユーザの携帯端末)であったが、本変形例2では、例えば、ユーザの携帯端末が出力装置3であり、レジ端末または店員の携帯端末が端末装置5である。
【0213】
従って、本変形例2において、装置識別子は、ユーザ識別子であり、端末識別子は、店舗識別子である。表示器は、例えば、ユーザの携帯端末が有するディスプレイであり、撮影装置4は、例えば、レジ端末が有するスキャナ、または店員の携帯端末が有する内蔵カメラなどである。生成コードは、ユーザの携帯端末が有するディスプレイに表示され、レジ端末が有するスキャナ、または店員の携帯端末が有する内蔵カメラで撮影される。そして、撮影された画像を有する出力コード情報が、サーバ装置1に送信される。なお、サーバ装置1の動作は、実施の形態と同様である。
【0214】
サーバ装置1から送信された判断結果情報が、レジ端末または店員の携帯端末によって受信され、レジ端末または店員の携帯端末は、受信した判断結果情報が否定的な判断結果を示す場合に、抑制処理を行う。
【0215】
ユーザの携帯端末は、レジ端末等のディスプレイに表示されている出力コードをカメラで撮影した画像から出力コードを抽出し、抽出した出力コードを用いて決済のための処理を行う前に、抽出した出力コードを有する出力コード情報をサーバ装置1に送信する。
【0216】
サーバ装置1を構成する出力コード受信部131は、ユーザ端末から送信された出力コード情報を受信し、判断部141は、生成コード格納部111に格納されている生成コード情報と、受信された出力コード情報が有する出力コードとを用いて、出力コードが生成コードと一致するか否かを判断する。
【0217】
なお、情報システムのフローチャートは、実施の形態ではレジ端末または店員の携帯端末であった出力装置3が、本変形例3ではユーザの携帯端末であり、実施の形態ではユーザの携帯端末であった端末装置5が、本変形例3ではレジ端末または店員の携帯端末である点を除いて、
図2〜
図4と同様である。具体例も、実施の形態の具体例において、出力装置3をレジ端末または店員の携帯端末からユーザの携帯端末に変更し、端末装置5をユーザの携帯端末からレジ端末または店員の携帯端末に変更すればよい。
【0219】
実施の形態における撮影装置4は、監視カメラ、または店員の携帯端末が有する内蔵カメラであったが、本変形例3における撮影装置4は、ユーザの携帯端末が有する内蔵カメラである。
【0220】
他の要素は、実施の形態と同様でよい。すなわち、出力装置3は、例えば、店舗端末(例えば、レジ端末、またはユーザの携帯端末)であり、表示器は、例えば、店舗端末が有するディスプレイであり、端末装置5は、例えば、ユーザの携帯端末である。つまり、本変形例3において、撮影装置4および端末装置5は、ユーザが保有する一の携帯端末によって実現される。従って、本変形例3において、装置識別子および端末識別子は、いずれもユーザ識別子である。
【0221】
かかる端末装置5を構成する端末処理部53は、例えば、店舗端末が有するディスプレイに表示されている出力コードを内蔵カメラで撮影し、撮影した画像から出力コードを抽出し、抽出した出力コードを用いて決済のための処理を行う前に、当該抽出した出力コードを有する出力コード情報をサーバ装置1に端末出力部56を介して送信する。そして、端末処理部53は、サーバ装置1からの判断結果情報を端末送信部54を介して受信し、受信した判断結果情報が否定的な判断結果を示す場合に、抑制処理を行うことは好適である。
【0222】
従って、本変形例3では、
図4のステップS401が、下記ステップS401aに置き換えられる。
【0223】
(ステップS402a)端末送信部54は、ステップS401で抽出した出力コードを、ステップS402で受信した店舗識別子、および端末格納部51に格納されているユーザ識別子と対に、サーバ装置1に送信する。
【0224】
サーバ装置1の動作は、画像からの出力コードの抽出が不要である点を除いて、実施の形態と同様である。従って、本変形例3では、
図2のフローチャートから、ステップS202が削除される。
【0225】
以上、本実施の形態によれば、生成コード格納部111に、生成される又は生成された生成コードに関する生成コード情報が格納されるべきであり、サーバ装置1は、生成コードを出力する出力装置3によって出力された出力コードを撮影する撮影装置4から、出力コードを撮影した画像または画像から抽出された出力コードを有する出力コード情報を受信し、生成コード格納部111に格納されている格納コード情報と、受信した出力コード情報とを用いて、出力コードが生成コードと一致するか否かを判断し、判断の結果に関する判断結果情報を端末装置に送信することにより、コードの差し替えを検知できる。
【0226】
また、サーバ装置1は、コードを生成するコード生成サーバ2から生成コード情報を受信し、受信した生成コード情報を生成コード格納部111に蓄積することにより、可変的なコードの差し替えも検知できる。
【0227】
なお、上記構成において、コードは、可変的なコードであり、サーバ装置1は、コード生成サーバ2によって新たなコードが生成される度に、当該新たなコードに関する生成コード情報を受信し、新たなコードに関する生成コード情報を受信したことに応じて、生成コード格納部111に格納されている格納コード情報を、受信された生成コード情報で更新してもよく、これによって、生成コード格納部111の容量を削減できる。
【0228】
また、上記構成において、出力装置3は、生成コードを表示器に表示し、撮影装置4は、表示器に表示されているコードを撮影し、端末装置5は、出力コードを用いて決済のための処理を行うことにより、端末装置5が表示器に表示されているコードを用いて決済を行う場合に、サーバ装置1は、コードの差し替えによる不正な支払先への支払いを防止できる。
【0229】
また、上記構成において、出力装置3は、店舗の端末である店舗端末であり、表示器は、店舗端末が有するディスプレイであり、端末装置5は、ユーザの端末であるユーザ端末であることにより、店舗端末が有するディスプレイに表示されているコードを用いて、ユーザ端末で決済を行う場合に、サーバ装置1は、コードの差し替えによる不正な支払先への支払いを防止できる。
【0230】
また、上記構成において、撮影装置4は、ディスプレイに表示されている出力コードを監視する監視カメラであることにより、店舗のディスプレイに表示されているコードを用いて、ユーザ端末で決済を行う場合に、表示されているコードを監視カメラで監視することで、サーバ装置1は、コードの差し替えによる不正な支払先への支払いを防止できる。
【0231】
また、上記構成において、監視カメラは、ディスプレイに表示されている出力コードを定期的または不定期に撮影し、撮影した画像をメモリに蓄積し、撮影した画像がメモリに格納されている画像に対して変化したか否かを判断し、撮影した画像がメモリに格納されている画像に対して変化したと判断した場合に、撮影した画像を有する出力コード情報を送信し、サーバ装置1は、監視カメラから出力コード情報を受信したことに応じて、出力コード情報が有する画像から出力コードを抽出し、生成コード格納部111に格納されている格納コード情報と、抽出した出力コードとを用いて、出力コードが生成コードと一致するか否かを判断する。こうして、監視カメラで撮影された画像が変化した場合にだけ、サーバ装置1は、画像を有する出力コード情報を受信し、画像が変化していない場合には出力コード情報を受信しないので、監視カメラから受信する出力コード情報のデータ量を抑制しつつ、コードの差し替えによる不正な支払先への支払いを防止できる。
【0232】
また、上記構成において、撮影装置4は、ユーザ端末が有するカメラであることにより、店舗のディスプレイに表示されているコードを用いて、ユーザ端末で決済を行う場合に、サーバ装置1は、簡単な構成で、コードの差し替えによる不正な支払先への支払いを防止できる。
【0233】
また、上記構成において、ユーザ端末は、ディスプレイに表示されている出力コードをカメラで撮影した画像から出力コードを抽出し、抽出した出力コードを用いて決済のための処理を行う前に、抽出した出力コードを有する出力コード情報を送信し、サーバ装置1は、生成コード格納部111に格納されている生成コード情報と、ユーザ端末から受信した出力コード情報が有する出力コードとを用いて、出力コードが生成コードと一致するか否かを判断することにより、ユーザ端末から受信する出力コード情報のデータ量を抑制しつつ、コードの差し替えによる不正な支払先への支払いを防止できる。
【0234】
また、上記構成において、生成コード格納部111は、一の生成コードに対応する3以上の生成コード情報が格納されるべき3以上の格納手段を含み、サーバ装置1は、3以上の格納手段に格納されている3以上の格納コード情報を用いて、3以上の格納コード情報に対応する3以上の格納コードの中に、一致する2以上の格納コードの組が1組以上存在するか否かを判断し、3以上の格納コードの中に組が1組以上存在すると判断した場合に、一の組を構成する格納コードであり、他のどの組を構成する格納コードよりも数が多い格納コードである最多数格納コードが唯一つ存在するか否かを判断し、最多数格納コードが唯一つ存在すると判断した場合に、当該最多数格納コードを生成コードに決定し、決定した生成コードと、受信した出力コード情報とを用いて、出力コードが生成コードと一致するか否かを判断する。
【0235】
こうして、一の生成コードに対応する3以上の生成コード情報を3以上の格納手段に格納しておくことにより、3以上の格納手段に格納されている3以上の格納コード情報のいずれかが不正なコード情報に差し替えられた場合でも、サーバ装置1は、多数決により、3以上の格納コードのうち最多数の格納コードを生成コードとみなし、出力コードが生成コードと一致するか否かの判断を行うことができる。
【0236】
従って、生成コード格納部111に格納されている生成コード情報が差し替えられる可能性がある場合でも、コードの差し替えを検知できる。
【0237】
また、サーバ装置1は、上記組が存在しないと判断した場合、または最多数格納コードが2以上存在すると判断した場合、または出力コードが生成コードと一致しないと判断した場合に、否定的な判断結果を示す判断結果情報を送信することにより、生成コードと出力コードとの不一致を通知できる。
【0238】
なお、上記構成において、否定的な判断結果を示す判断結果情報は、コードが差し替えられている可能性についての警告を有し、端末装置5は、判断結果情報を受信し、否定的な判断結果情報を受信した場合に、当該判断結果情報が有する警告を出力することにより、コードが差し替えられている可能性を、端末装置5の操作者に警告できる。例えば、コードを用いて決済のための処理を行う端末装置5を操作するユーザまたは店員に警告することで、不正な支払先への支払いを効果的に防止できる。
【0239】
また、コードを用いて決済のための処理を行う端末装置5は、否定的な判断結果を示す判断結果情報を受信した場合に、決済のための処理の実行を抑制することにより、コードの差し替えによる不正な支払先への支払いを防止できる。
【0240】
また、情報システムは、生成された生成コードを出力する出力装置3と、出力装置3によって出力された出力コードを撮影する撮影装置4と、サーバ装置1と、端末装置5とを含み、生成コード格納部111には、生成される又は生成された生成コードに関する生成コード情報が格納されるべきであり、サーバ装置1は、撮影装置4から、出力コードを撮影した画像または画像から抽出された出力コードを有する出力コード情報を受信し、生成コード格納部111に格納されている格納コード情報と、受信した出力コード情報とを用いて、出力コードが生成コードと一致するか否かを判断し、判断の結果に関する判断結果情報を端末装置5に送信することにより、コードの差し替えを検知できる。その結果、例えば、コードの差し替えによる不正な支払先への支払いを防止できる。
【0241】
さらに、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布してもよい。
【0242】
本実施の形態におけるサーバ装置1を実現するソフトウェアは、例えば、以下のようなプログラムである。つまり、コンピュータがアクセス可能な記録媒体は、生成される又は生成された生成コードに関する生成コード情報が格納されるべき生成コード格納部111を具備し、このプログラムは、前記コンピュータを、前記生成コードを出力する出力装置3によって出力された出力コードを撮影する撮影装置4から、当該出力コードを撮影した画像または当該画像から抽出された出力コードを有する出力コード情報を受信する出力コード受信部131と、前記生成コード格納部111に格納されている格納コード情報と、前記出力コード受信部131が受信した出力コード情報とを用いて、前記出力コードが前記生成コードと一致するか否かを判断する判断部141と、前記判断部141による判断の結果に関する判断結果情報を端末装置5に送信する判断結果送信部151として機能させるためのプログラムである。
【0243】
なお、端末装置5を実現するソフトウェアは、例えば、以下のようなプログラムであってもよい。つまり、このプログラムは、コンピュータを、上記サーバ装置1から前記判断結果情報を受信する端末受信部55と、前記端末受信部55が受信した判断結果情報を出力する端末出力部56として機能させるためのプログラムである。
【0244】
また、上記構成において、否定的な判断結果を示す判断結果情報は、コードが差し替えられている可能性についての警告を有し、前記端末出力部56は、前記端末受信部55が否定的な判断結果を示す判断結果情報を受信した場合に、当該判断結果情報が有する警告を出力するプログラムである。
【0245】
また、上記プログラムは、前記コンピュータを、前記出力装置3によって出力された出力コードを用いて決済のための処理を行う端末処理部53としてさらに機能させ、前記端末処理部53は、前記端末受信部55が否定的な判断結果を示す判断結果情報を受信した場合に、前記決済のための処理の実行を抑制するプログラムである。
【0246】
図9は、本実施の形態におけるプログラムを実行して、サーバ装置1等を実現するコンピュータシステム900の外観図である。本実施の形態は、コンピュータハードウェアおよびその上で実行されるコンピュータプログラムによって実現され得る。
図9において、コンピュータシステム900は、ディスクドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、ディスプレイ904とを備える。なお、キーボード902やマウス903やディスプレイ904をも含むシステム全体をコンピュータと呼んでもよい。
【0247】
図10は、コンピュータシステム900の内部構成の一例を示す図である。
図10において、コンピュータ901は、ディスクドライブ905に加えて、MPU911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM913と、アプリケーションプログラム、システムプログラム、およびデータを記憶するストレージ914と、MPU911、ROM912等を相互に接続するバス915と、外部ネットワークや内部ネットワーク等のネットワークへの接続を提供するネットワークカード916と、を備える。ストレージ914は、例えば、ハードディスク、SSD、フラッシュメモリなどである。
【0248】
コンピュータシステム900に、サーバ装置1等の機能を実行させるプログラムは、例えば、DVD、CD−ROM等のディスク921に記憶されて、ディスクドライブ905に挿入され、ストレージ914に転送されてもよい。これに代えて、そのプログラムは、ネットワークを介してコンピュータ901に送信され、ストレージ914に記憶されてもよい。プログラムは、実行の際にRAM913にロードされる。なお、プログラムは、ディスク921、またはネットワークから直接、ロードされてもよい。また、ディスク921に代えて他の着脱可能な記録媒体(例えば、DVDやメモリカード等)を介して、プログラムがコンピュータシステム900に読み込まれてもよい。
【0249】
プログラムは、コンピュータの詳細を示す901に、サーバ装置1等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
【0250】
なお、上述したコンピュータシステム900は、サーバまたは据え置き型のPCであるが、端末装置5は、例えば、タブレット端末やスマートフォンやノートPCといった、携帯端末で実現されてもよい。この場合、例えば、キーボード902およびマウス903はタッチパネルに、ディスクドライブ905はメモリカードスロットに、ディスク921はメモリカードに、それぞれ置き換えられることが望ましい。出力装置3や撮影装置4のコンピュータも、基本的なハードウェア構成は、
図10のコンピュータ901と同様でよい。ただし、以上は例示であり、サーバ装置1等を実現するコンピュータのハードウェア構成は問わない。
【0251】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
【0252】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、一のコンピュータが集中処理を行ってもよく、あるいは複数のコンピュータが分散処理を行ってもよい。
【0253】
また、上記実施の形態において、一の装置に存在する2以上の通信手段(受信部13、および送信部15など)は、物理的に一の媒体で実現されてもよいことは言うまでもない。
【0254】
また、上記実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0255】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。