以下、本発明を実施するための形態について図面を参照して説明する。なお、各図において、各部の寸法及び縮尺は、実際のものと適宜に異ならせてある。また、以下に述べる実施の形態は、本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。
<A.第1実施形態>
以下、本発明の第1実施形態を説明する。
<A.1.電子決済システムSysの概要>
図1乃至図3を参照しつつ、電子決済システムSysの概要について説明する。
図1は、電子決済システムSysの構成の一例を示すブロック図である。
図1に示すように、電子決済システムSysは、決済装置3と、ネットワークNWを介して決済装置3と通信可能な店舗装置5と、ネットワークNWを介して決済装置3と通信可能な1または複数の端末装置1と、を備え、端末装置1のユーザUに対して、電子決済に係るサービスを提供する。
本実施形態では、一例として、電子決済システムSysが、複数の端末装置1を備える場合を想定する。具体的には、本実施形態では、電子決済システムSysが、Q個の端末装置1を備える場合を想定する。ここで、値Qは、「Q≧2」を満たす自然数である。また、以下では、電子決済システムSysが備えるQ個の端末装置1のうち、q番目の端末装置1を、端末装置1[q]と称する。ここで、変数qは、「1≦q≦Q」を満たす自然数である。また、以下では、端末装置1[q]を使用するユーザUを、ユーザU[q]と称する。
端末装置1[q](「端末」の一例)は、例えば、スマートフォン、タブレット端末等の携帯端末であり、ユーザU[q]により携帯される。本実施形態において、端末装置1[q]には、電子決済プログラムPG-Tがインストールされている。端末装置1[q]は、電子決済プログラムPG-Tを実行することで、電子決済アプリケーション(以下、「決済アプリ」と称する場合がある)を起動させる。そして、端末装置1[q]のユーザU[q]は、店舗装置5が設置された店舗において、サービスの提供を受けた場合に、端末装置1[q]において稼働している決済アプリを用いて、決済装置3から取得したトークンKKに基づくコード画像GGを端末装置1[q]に表示させることで、当該サービスの対価を電子決済により支払うことができる。
以下では、端末装置1[q]に表示されるコード画像GGを、コード画像GG[q]と称する。コード画像GG[q]は、例えば、バーコードまたは二次元コードである。本実施形態では、一例として、コード画像GG[q]がバーコードである場合を想定する。また、以下では、決済装置3から端末装置1[q]に供給されるトークンKKを、トークンKK[q]と称する。
なお、本実施形態では、店舗装置5が設置された店舗が、現実空間に存在する物理的な店舗、すなわち、実店舗である場合を想定する。また、本実施形態では、店舗において提供されるサービスが、商品の販売または役務の提供である場合を想定する。すなわち、本実施形態において、端末装置1[q]のユーザU[q]は、店舗装置5が設置された店舗において、商品または役務の提供を受けた場合に、当該商品または役務の対価としての金銭を、電子決済により支払うことができる。
店舗装置5は、例えば、POS(Point of Sales)レジである。店舗装置5は、端末装置1[q]のユーザU[q]が、店舗によるサービスの提供に対する対価を電子決済により支払う場合に、端末装置1[q]に表示されるコード画像GG[q]を読み取る。次に、店舗装置5は、読み取ったコード画像GG[q]の示す値である決済コードCC[q]に対して、店舗決済情報を付加することで、決済情報DP[q]を生成し、生成した決済情報DP[q]を決済装置3に供給する。ここで、店舗決済情報は、例えば、ユーザU[q]にサービスを提供した店舗を一意に識別するための店舗識別情報と、ユーザU[q]に提供されたサービスの対価としてユーザU[q]が支払うべき決済金額と、当該支払がなされる日時である決済日時と、を含む情報である。
決済装置3は、店舗装置5から決済情報DP[q]が供給された場合、当該決済情報DP[q]に基づいて、決済処理を実行する。ここで、決済処理とは、端末装置1[q]のユーザU[q]が、店舗からサービスの提供を受けた場合に、当該サービスの対価としてのユーザU[q]から店舗への支払いを確定させる処理である。
また、本実施形態では、一例として、決済装置3が、ユーザU[q]による端末装置1[q]の使用料金を管理する場合を想定する。ここで、端末装置1[q]の使用料金とは、例えば、端末装置1[q]の購入代金、及び、端末装置1[q]が通信する場合に発生する通信料金等を含む料金である。そして、本実施形態において、決済装置3は、例えば、各月の支払日に、予め決済装置3に登録されたユーザU[q]の銀行口座から、端末装置1[q]の使用料金を引き落とす。なお、以下では、端末装置1[q]の使用料金を、「電話料金」と称する場合がある。
また、本実施形態では、一例として、決済装置3が、端末装置1[q]において利用可能なユーザU[q]の電子マネーを管理する場合を想定する。本実施形態では、決済装置3の管理する電子マネーが、所謂、プリペイド式の電子マネーであり、ユーザU[q]が予め電子マネーにチャージすることで、チャージされた金額に相当する電子マネーを利用可能となる場合を想定する。但し、本発明はこのような態様に限定されるものではない。決済装置3の管理する電子マネーは、予め定められた上限額の範囲で利用可能な、所謂、ポストペイ式の電子マネーであってもよい。
また、本実施形態では、一例として、決済装置3が、クレジットカード会社の運営するクレジットカードサーバと通信可能であり、当該クレジットカード会社によって発行されたユーザU[q]のクレジットカードにより、ユーザU[q]の決済が可能な場合を想定する。
そして、本実施形態では、決済装置3は、電話料金合算払い、プリペイド残高払い、及び、クレジットカード払いの、3種類の支払方法の中から、ユーザU[q]によって選択された支払方法により、端末装置1[q]のユーザU[q]に対応する決済処理を行うことができる。
ここで、電話料金合算払いとは、端末装置1[q]の使用料金と合算して、ユーザU[q]から店舗への支払いを行う支払方法である。また、プリペイド残高払いとは、決済装置3が管理するユーザU[q]の電子マネーにより、ユーザU[q]から店舗への支払いを行う支払方法である。また、クレジットカード払いとは、ユーザU[q]のクレジットカードにより、ユーザU[q]から店舗への支払いを行う支払方法である。
また、本実施形態において、決済装置3は、上述の通り、端末装置1[q]からの要求に応じて、トークンKK[q]を払い出し、当該払い出したトークンKK[q]を、端末装置1[q]に供給する。
以下、端末装置1[q]と決済装置3とが通信可能な場合において、本実施形態に係る電子決済システムSysが、端末装置1[q]のユーザU[q]に対して、電子決済に係るサービスを提供する場合の、電子決済システムSysの動作の一例(以下、「オンライン電子決済」と称する場合がある)を説明する。
まず、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗において、サービスの提供を受け、オンライン電子決済によって当該サービスの対価の支払いを行う場合、ユーザU[q]は、端末装置1[q]を操作することで、端末装置1[q]において決済アプリを起動する。次に、端末装置1[q]は、決済アプリが起動されると、決済装置3に対してトークンKK[q]を要求する。次に、決済装置3は、端末装置1[q]からの要求に応じて、端末装置1[q]に対してトークンKK[q]を供給する。次に、端末装置1[q]は、決済装置3から供給されたトークンKK[q]に基づいて決済コードCC[q]を生成し、当該決済コードCC[q]を表すコード画像GG[q]を表示する。次に、店舗装置5は、端末装置1[q]に表示されたコード画像GG[q]を読み取ることで、コード画像GG[q]の示す決済コードCC[q]と、店舗決済情報とを含む、決済情報DP[q]を生成し、当該決済情報DP[q]を、決済装置3に供給する。次に、決済装置3は、店舗装置5から供給された決済情報DP[q]に基づいて、決済処理を実行することで、ユーザU[q]から店舗への支払いを確定させる。
なお、上述のオンライン電子決済では、決済装置3が、端末装置1[q]からの要求に応じてトークンKK[q]を発行する。このため、オンライン電子決済は、端末装置1[q]と決済装置3とが通信可能な場合にのみ実行可能であり、端末装置1[q]と決済装置3とが通信困難な場合には実行できない。そこで、本実施形態に係る電子決済システムSysは、端末装置1[q]と決済装置3とが通信困難な場合において、端末装置1[q]に記憶されているトークンKK[q]に基づいて生成された決済情報DP[q]を用いて、決済処理を実行する。
以下、端末装置1[q]と決済装置3とが通信困難な場合において、本実施形態に係る電子決済システムSysが、端末装置1[q]のユーザU[q]に対して、電子決済に係るサービスを提供する場合の、電子決済システムSysの動作の一例(以下、「オフライン電子決済」と称する場合がある)を説明する。
まず、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗において、サービスの提供を受け、オフライン電子決済によって当該サービスの対価の支払いを行う場合、ユーザU[q]は、端末装置1[q]を操作することで、端末装置1[q]において決済アプリを起動する。次に、端末装置1[q]は、決済アプリが起動されると、端末装置1[q]に記憶されているトークンKK[q]に基づいて決済コードCC[q]を生成し、当該決済コードCC[q]を表すコード画像GG[q]を表示する。次に、店舗装置5は、端末装置1[q]に表示されたコード画像GG[q]を読み取ることで、コード画像GG[q]の示す決済コードCC[q]と、店舗決済情報とを含む、決済情報DP[q]を生成し、当該決済情報DP[q]を、決済装置3に供給する。次に、決済装置3は、店舗装置5から供給された決済情報DP[q]に基づいて、決済処理を実行することで、ユーザU[q]から店舗への支払いを確定させる。
以上のように、本実施形態に係る電子決済システムSysは、端末装置1[q]と決済装置3とが通信可能な場合におけるオンライン電子決済と、端末装置1[q]と決済装置3とが通信困難な場合におけるオフライン電子決済との、2種類の電子決済を実行可能なため、オンライン電子決済のみが可能な態様と比較して、端末装置1[q]のユーザU[q]の利便性を向上させることができる。
なお、以下では、オンライン電子決済において端末装置1が決済装置3から取得するトークンKK[q]であって、決済コードCC[q]の生成に利用されるトークンKK[q]を、オンライントークンKX[q]と称し、オフライン電子決済において端末装置1[q]に記憶されているトークンKK[q]であって、決済コードCC[q]の生成に利用されるトークンKK[q]を、オフライントークンKY[q]と称する場合がある。
また、以下では、オンライン電子決済において、端末装置1[q]がオンライントークンKX[q]から生成する決済コードCC[q]を、オンライン決済コードCX[q]と称し、オフライン電子決済において、端末装置1[q]がオフライントークンKY[q]から生成する決済コードCC[q]を、オフライン決済コードCY[q]と称する場合がある。
また、以下では、オンライン電子決済において、端末装置1[q]がオンライン決済コードCX[q]に基づいて表示するコード画像GG[q]を、オンラインコード画像GX[q]と称し、オフライン電子決済において、端末装置1[q]がオフライン決済コードCY[q]に基づいて表示するコード画像GG[q]を、オフラインコード画像GY[q]と称する場合がある。
また、以下では、オンライン電子決済において、決済装置3が実行する決済処理を、オンライン決済処理と称し、オフライン電子決済において、決済装置3が実行する決済処理を、オフライン決済処理と称する場合がある。
図2は、端末装置1[q]の構成の一例を示すブロック図である。
図2に示すように、端末装置1[q]は、制御装置11と、記憶装置12と、表示装置13と、入力装置14と、通信装置15と、これらの装置を相互に接続するバス100と、を備える。
記憶装置12は、制御装置11が読取可能な記録媒体である。記憶装置12は、例えば、制御装置11の作業領域として機能するRAM(Random Access Memory)等の揮発性メモリと、各種情報を記憶するEEPROM(Electrically Erasable Programmable Read-Only Memory)等の不揮発性メモリと、を含んで構成され、ユーザ識別情報DID[q]と、取得済オフライントークン情報KYY[q]と、オフライントークン関連情報DYYと、事業者識別トークンKZと、設定情報DSと、電子決済プログラムPG-Tと、を記憶している。
ユーザ識別情報DID[q]は、決済装置3が管理するQ人のユーザU[1]~U[Q]の中から、端末装置1[q]のユーザU[q]を一意に識別するための識別情報である。
取得済オフライントークン情報KYY[q]は、端末装置1[q]が決済装置3から取得した1または複数のオフライントークンKY[q]を含む情報である。なお、本実施形態では、端末装置1[q]において最初に決済アプリが起動(初回起動)されてから、現在に至る期間において、端末装置1[q]が決済装置3からM回に亘ってオフライントークンKY[q]を取得した場合を想定する。ここで、値Mは、「M≧1」を満たす自然数である。そして、以下では、端末装置1[q]が決済装置3から取得したM個のオフライントークンKY[q]のうち、m回目に決済装置3から取得したオフライントークンKY[q]を、オフライントークンKY[q][m]と称する。ここで、変数mは、「1≦m≦M」を満たす自然数である。
このように、本実施形態では、取得済オフライントークン情報KYY[q]が、端末装置1[q]が決済装置3から取得したM個のオフライントークンKY[q][1]~KY[q][M]を含む場合を想定する。但し、本発明はこのような態様に限定されるものではない。取得済オフライントークン情報KYY[q]は、少なくとも、端末装置1[q]が決済装置3から取得したM個のオフライントークンKY[q][1]~KY[q][M]のうち、最後に取得されたオフライントークンKY[q][M]を含んでいればよい。
例えば、端末装置1[q]は、決済装置3から取得したM個のオフライントークンKY[q][1]~KY[q][M]のうち、有効期限切れとなったオフライントークンKY[q][m](具体的には、後述するオフライントークン有効期間情報DTY[q][m]の示すオフライントークン有効期間情報DTY[q][m]の終点が到来したオフライントークンKY[q][m])を削除してもよい。具体的には、端末装置1[q]は、記憶装置12に記憶されるオフライントークン関連情報DYYに含まれるオフライントークン有効期間情報DTY[q][m]の示すオフライントークン有効期間TY[q][m]の終点が、現在時刻よりも過去の時刻である場合(つまり、有効期限切れとなった場合)、取得済オフライントークン情報KYY[q]から、有効期限切れを示すオフライントークン有効期間TY[q][m]に対応するオフライントークンKY[q][m](つまり、有効期限切れのオフライントークンKY[q])を削除してもよい。この場合、取得済オフライントークン情報KYY[q]は、有効期限内のオフライントークンKY[q]のみを含むことになる。
また、例えば、端末装置1[q]は、決済装置3から取得したM個のオフライントークンKY[q][1]~KY[q][M]のうち、最後に取得したオフライントークンKY[q][M]以外のオフライントークンKY[q][1]~KY[q][M-1]を削除してもよい。具体的には、端末装置1[q]は、決済装置3から最新のオフライントークンKY[q][M]を取得したことを契機として、それ以前に取得したオフライントークンKY[q][M-1]を削除してもよい。この場合、取得済オフライントークン情報KYY[q]は、最新のオフライントークンKY[q][M]のみを含むことになる。
オフライントークン関連情報DYYは、M個のオフライントークンKY[q][1]~KY[q][M]と1対1に対応するM個のオフライントークン有効期間情報DTY[q][1]~DTY[q][M]と、M個のオフライントークンKY[q][1]~KY[q][M]と1対1に対応するM個の暗号鍵KS[q][1]~KS[q][M]と、オフライン閉塞情報DHYと、を含む。
なお、本実施形態では、オフライントークン関連情報DYYが、M個のオフライントークン有効期間情報DTY[q][1]~DTY[q][M]と、M個の暗号鍵KS[q][1]~KS[q][M]とを含む場合を一例として想定するが、本発明はこのような態様に限定されるものではない。オフライントークン関連情報DYYは、少なくとも、M個のオフライントークン有効期間情報DTY[q][1]~DTY[q][M]のうち、最後に取得されたオフライントークンKY[q][M]に対応するオフライントークン有効期間情報DTY[q][M]と、M個の暗号鍵KS[q][1]~KS[q][M]のうち、最後に取得されたオフライントークンKY[q][M]に対応する暗号鍵KS[q][M]とを含んでいればよい。
例えば、端末装置1[q]は、決済装置3から取得したM個の暗号鍵KS[q][1]~KS[q][M]のうち、有効期限切れとなったオフライントークンKY[q][m]に対応する暗号鍵KS[q][m](具体的には、オフライントークン有効期間情報DTY[q][m]の示すオフライントークン有効期間情報DTY[q][m]の終点が到来したオフライントークンKY[q][m]に対応する暗号鍵KS[q][m])を削除してもよい。具体的には、端末装置1[q]は、記憶装置12に記憶されるオフライントークン関連情報DYYに含まれるオフライントークン有効期間情報DTY[q][m]の示すオフライントークン有効期間TY[q][m]の終点が、現在時刻よりも過去の時刻である場合(つまり、オフライントークンKY[q][m]が有効期限切れとなった場合)、オフライントークン関連情報DYYから、有効期限切れとなったオフライントークンKY[q][m]に対応する暗号鍵KS[q][m]を削除してもよい。この場合、オフライントークン関連情報DYYは、有効期限内のオフライントークンKY[q]に対応する暗号鍵KS[q]のみを含むことになる。
また、例えば、端末装置1[q]は、決済装置3から取得したM個の暗号鍵KS[q][1]~KS[q][M]のうち、最後に取得した暗号鍵KS[q][M]以外の暗号鍵KS[q][1]~KS[q][M-1]を削除してもよい。具体的には、端末装置1[q]は、決済装置3から最新の暗号鍵KS[q][M]を取得したことを契機として、それ以前に取得した暗号鍵KS[q][M-1]を削除してもよい。この場合、オフライントークン関連情報DYYは、最新の暗号鍵KS[q][M]のみを含むことになる。
オフライントークン有効期間情報DTY[q][m]は、オフライン電子決済においてオフライントークンKY[q][m]を利用可能な期間、すなわち、オフライントークンKY[q][m]の有効期間である、オフライントークン有効期間TY[q][m]を示す。本実施形態では、オフライントークン有効期間TY[q][m]が、オフライントークンKY[q][m]の生成時を起点とし、オフライントークンKY[q][m]の生成時からオフライントークン有効時間TSYだけ経過した時間を終点とする期間である場合を想定する。ここで、本実施形態では、一例として、オフライントークン有効時間TSYが「1週間」に設定されている場合を想定する。すなわち、本実施形態では、一例として、オフライントークンKY[q]の有効期間が1週間である場合を想定する。
暗号鍵KS[q][m]は、オフライン電子決済において、オフライン決済コードCY[q]を生成するために用いる情報である。
オフライン閉塞情報DHYは、オフライン電子決済において、端末装置1[q]にオフラインコード画像GY[q]を表示するか否かを決定するために用いる情報である。具体的には、オフライン閉塞情報DHYは、決済装置3がオフライン決済処理の実行が可能か否かを示す情報である。より具体的には、オフライン閉塞情報DHYは、オフライン決済処理を実行するための決済装置3の機能が閉塞せずに稼働しているか否かを示す情報であってもよい。
事業者識別トークンKZは、決済装置3を管理する決済事業者を識別する事業者識別情報DKZを含む。
設定情報DSは、トークン応答情報DSWと、オンライントークン有効情報DSXと、オフライントークン有効情報DSYと、更新時間情報DSCとを含む。
トークン応答情報DSWは、端末装置1が決済装置3にトークンKKを要求してから(または、端末装置1[q]において決済アプリが起動されてから)、端末装置1にトークンKKが供給されるまでの、端末装置1の待機時間(以下、「トークン応答待機時間TSW」と称する。「第1時間」の一例)を示す。本実施形態において、端末装置1は、端末装置1が決済装置3にトークンKKを要求してから、トークン応答待機時間TSWが経過するまで、決済装置3からのトークンKKの供給を待機する。そして、端末装置1は、端末装置1が決済装置3にトークンKKを要求してから、トークン応答待機時間TSWが経過したタイミングにおいて、決済装置3からのトークンKKの供給の待機を中止する。ここで、本実施形態では、一例として、トークン応答待機時間TSWが「10秒」に設定されている場合を想定する。なお、以下では、端末装置1が決済装置3にトークンKKを要求してから、トークン応答待機時間TSWが経過するまでの期間を、トークン応答待機期間TW(「第1期間」の一例)と称する場合がある。
なお、トークン応答待機期間TWは、端末装置1が決済装置3にトークンKKを要求してから、一定の時間が経過するまでの期間に限定されるものではない。例えば、トークン応答待機期間TWは、決済アプリの起動から決済アプリの終了までの期間であってもよい。この場合、トークン応答待機時間TSWは、決済アプリの起動から決済アプリの終了までの時間長であってもよい。
オンライントークン有効情報DSXは、オンライントークンKX[q]がオンライン電子決済において利用可能な期間(以下、「オンライントークン有効期間TX[q]」と称する)の時間長(以下、「オンライントークン有効時間TSX」と称する)を示す。本実施形態では、一例として、オンライントークン有効時間TSXが「5分」に設定されている場合を想定する。但し、本発明はこのような態様に限定されるものではない。オンライントークン有効時間TSXは、トークン応答待機時間TSWよりも長い時間であればよい。また、本実施形態において、オンライントークン有効期間TX[q]は、オンライントークンKX[q]の生成時を起点とし、オンライントークンKX[q]の生成時からオンライントークン有効時間TSXだけ経過した時間を終点とする期間である。
オフライントークン有効情報DSYは、オフライントークン有効時間TSYを示す。上述の通り、オフライントークン有効時間TSYは、オフライントークンKY[q][m]がオフライン電子決済において利用可能なオフライントークン有効期間TY[q][m]の時間長である。また、上述の通り、本実施形態では、一例として、オフライントークン有効時間TSYが「1週間」に設定されている場合を想定する。但し、本発明はこのような態様に限定されるものではない。オフライントークン有効時間TSYは、オンライントークン有効時間TSXよりも長い時間であればよい。
更新時間情報DSCは、更新単位時間TCを示す情報である。ここで、更新単位時間TCは、端末装置1[q]において管理される現在時刻である端末時刻TGに基づく端末時刻値AGの更新周期である。本実施形態では、一例として、更新単位時間TCが「1分」に設定されている場合を想定する。また、本実施形態では、一例として、端末時刻値AGが、端末時刻TGを「分」のオーダーで表した値である場合を想定する。例えば、本実施形態において、端末時刻TGが「18時25分37秒」である場合、端末時刻値AGは、端末時刻TGから「37秒」を削除した「1825」としてもよい。但し、本発明はこのような態様に限定されるものではない。更新単位時間TCは、オフライントークン有効時間TSYよりも短い時間であればよい。また、更新単位時間TCは、オンライントークン有効時間TSXよりも短い時間であってもよい。
制御装置11は、プロセッサを含んで構成される。制御装置11に設けられたプロセッサは、例えば、1または複数のCPU(Central Processing Unit)を含んで構成される。但し、制御装置11に設けられたプロセッサは、1または複数のCPUに加え、または、1または複数のCPUのうち一部または全部に替えて、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)等の、ハードウェアを含んで構成されるものであってもよい。制御装置11に設けられたプロセッサは、記憶装置12に記憶された電子決済プログラムPG-Tを実行し、当該電子決済プログラムPG-Tに従って動作することで、情報送信部111、情報取得部112、コード生成部113、及び、表示制御部114として機能することができる。
情報送信部111は、「要求部」の一例であり、端末装置1[q]における決済アプリの起動からトークン応答待機時間TSWが経過するまでのトークン応答待機期間TWにおいて、決済装置3に対して、オンライントークンKX[q]を要求するオンライントークン要求と、オフライントークンKY[q]を要求するオフライントークン要求と、を送信する。また、情報送信部111は、トークン応答待機期間TWにおいて、決済装置3に対して、オンライン閉塞情報DHXを要求するオンライン閉塞情報要求と、オフライン閉塞情報DHYを要求するオフライン閉塞情報要求と、を送信する。
ここで、オンライン閉塞情報DHXは、オンライン電子決済において、端末装置1[q]にオンラインコード画像GX[q]を表示するか否かを決定するために用いる情報である。具体的には、オンライン閉塞情報DHXは、決済装置3がオンライン決済処理の実行が可能か否かを示す情報である。より具体的には、オンライン閉塞情報DHXは、オンライン決済処理を実行するための決済装置3の機能が閉塞せずに稼働しているか否かを示す情報であってもよい。なお、以下では、オンライン閉塞情報DHX及びオフライン閉塞情報DHYを、閉塞情報DHと総称する場合がある。
情報取得部112は、「取得部」の一例であり、端末装置1[q]からの要求に応じて決済装置3から供給される、オンライントークンKX[q]とオフライントークンKY[q]とオンライン閉塞情報DHXとオフライン閉塞情報DHYとを取得する。
コード生成部113は、情報取得部112が取得したオンライントークンKX[q]に基づいて、オンライン決済コードCX[q]を生成する。また、コード生成部113は、情報取得部112が取得し、記憶装置12に記憶されているオフライントークンKY[q]に基づいて、オフライン決済コードCY[q]を生成する。
表示制御部114は、オンライン電子決済において、コード生成部113が生成したオンライン決済コードCX[q]に基づいて、表示装置13にオンラインコード画像GX[q]を表示させる。また、表示制御部114は、オフライン電子決済において、コード生成部113が生成したオフライン決済コードCY[q]に基づいて、表示装置13にオフラインコード画像GY[q]を表示させる。
表示装置13は、各種情報を表示するためのハードウェアである。表示装置13としては、例えば、液晶表示パネル、有機EL表示パネル等の各種の表示パネルを採用することができる。本実施形態において、表示装置13は、表示制御部114による制御の下で、オンラインコード画像GX[q]、オフラインコード画像GY[q]等の各種画像を表示する。
入力装置14は、端末装置1[q]のユーザU[q]からの操作を受け付けるためのハードウェアである。入力装置14としては、例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサ等の装置、または、これらの装置の組み合わせを採用することができる。なお、表示装置13及び入力装置14は、一体として構成されてもよい。この場合、表示装置13及び入力装置14として、例えば、タッチパネルを採用してもよい。
通信装置15は、ネットワークNWを介して、端末装置1[q]の外部に存在する外部装置と通信するためのハードウェアである。本実施形態において、情報送信部111は、通信装置15を介して、各種情報を決済装置3に送信する。また、情報取得部112は、通信装置15を介して、各種情報を決済装置3から取得する。
図3は、決済装置3の構成の一例を示すブロック図である。
図3に示すように、決済装置3は、制御装置31と、記憶装置32と、通信装置35と、これらの装置を相互に接続するバス300と、を備える。
記憶装置32は、制御装置31が読取可能な記録媒体である。記憶装置32は、例えば、制御装置31の作業領域として機能するRAM等の揮発性メモリと、各種情報を記憶するEEPROM等の不揮発性メモリと、を含んで構成され、ユーザ管理情報DUと、オンライントークン払出情報DKXと、オフライントークン払出情報DKYと、事業者識別情報DKZと、決済管理情報DKPと、設定情報DSと、制御プログラムPG-Sと、を記憶している。
ユーザ管理情報DUは、決済装置3が管理するQ人のユーザU[1]~U[Q]と1対1に対応するQ個のレコードを有する。ユーザ管理情報DUの各レコードは、上述したユーザ識別情報DID[q]に加え、電子マネー残高情報DPR[q]と、電話料金情報DTL[q]と、クレジットカード情報DCR[q]と、ポイント情報DPT[q]と、ユーザ支払情報DSH[q]と、を含む。
電子マネー残高情報DPR[q]は、ユーザU[q]が有する電子マネーの残高を示す情報である。
電話料金情報DTL[q]は、ユーザU[q]が支払うべき電話料金(すなわち、端末装置1[q]の使用料金)を示す情報である。
クレジットカード情報DCR[q]は、ユーザU[q]が所有するクレジットカードであって、ユーザU[q]が端末装置1[q]を介して決済装置3に登録したクレジットカードに関する情報である。具体的には、クレジットカード情報DCR[q]は、例えば、ユーザU[q]が所有するクレジットカードのカード番号、有効期限等を示す。
ポイント情報DPT[q]は、決済装置3がユーザU[q]に対して付与したポイントに関する情報である。本実施形態では、決済装置3がユーザU[q]にポイントを付与することで、当該ユーザU[q]が、付与されたポイントに相当する金額の電子マネーを利用可能となる場合を想定する。
ユーザ支払情報DSH[q]は、ユーザU[q]によって選択されている支払方法を示す情報である。
オンライントークン払出情報DKXは、決済装置3が払い出した1または複数のオンライントークンKXと1対1に対応する1または複数のレコードを有する。オンライントークン払出情報DKXの各レコードは、決済装置3が払い出したオンライントークンKX[q]と、当該オンライントークンKX[q]の払い出し先の端末装置1[q]に対応するユーザU[q]のユーザ識別情報DID[q]と、当該オンライントークンKX[q]に対応するオンライントークン有効期間TX[q]を示す情報(以下、「オンライントークン有効期間情報DTX[q]」と称する)、を含む。
オフライントークン払出情報DKYは、決済装置3が払い出した1または複数のオフライントークンKYと1対1に対応する1または複数のレコードを有する。オフライントークン払出情報DKYの各レコードは、決済装置3が払い出したオフライントークンKY[q]と、決済装置3がオフライントークンKY[q]に対応して払い出した暗号鍵KS[q]と、当該オフライントークンKY[q]の払い出し先の端末装置1[q]に対応するユーザU[q]のユーザ識別情報DID[q]と、当該オフライントークンKY[q]に対応するオフライントークン有効期間TY[q][m]を示すオフライントークン有効期間情報DTY[q][m]と、を含む。
なお、決済装置3は、オフライントークン払出情報DKYの有する複数のレコードのうち、オフライントークン有効期間情報DTY[q][m]の示すオフライントークン有効期間TY[q][m]の終点が到来したレコードを削除してもよい。具体的には、決済装置3は、オフライントークン有効期間情報DTY[q]の示すオフライントークン有効期間TY[q][m]の終点が現在時刻よりも過去の時刻である場合(つまり、有効期限切れとなった場合)、オフライントークン払出情報DKYに含まれる複数のオフライントークンKYのうち、当該オフライントークン有効期間情報DTY[q][m]に対応するオフライントークンKY[q][m](つまり、有効期限切れのオフライントークンKY[q][m])を削除し、且つ、オフライントークン払出情報DKYに含まれる複数の暗号鍵KSのうち、当該オフライントークン有効期間情報DTY[q][m]に対応する暗号鍵KS[q][m](つまり、有効期限切れの暗号鍵KS[q][m])を削除してもよい。
また、決済装置3は、オフライントークン払出情報DKYにおいて、ユーザU[q]に対応して払い出したM個のオフライントークンKY[q][1]~KY[q][M]に対応するM個のレコードのうち、最新のオフライントークンKY[q][M]に対応するレコード以外のレコードを削除してもよい。つまり、決済装置3は、オフライントークン払出情報DKYにおいて、ユーザU[q]に対応して払い出したM個のオフライントークンKY[q][1]~KY[q][M]のうち、最後に払い出されたオフライントークンKY[q][M]以外のオフライントークンKY[q]を削除してもよい。また、決済装置3は、オフライントークン払出情報DKYにおいて、ユーザU[q]に対応して払い出したM個の暗号鍵KS[q][1]~KS[q][M]のうち、最後に払い出された暗号鍵KS[q][M]以外の暗号鍵KS[q]を削除してもよい。
決済管理情報DKPは、電子決済システムSysにおいて実行された1または複数回の電子決済と1対1に対応する1または複数のレコードを有する。決済管理情報DKPの各レコードは、各電子決済に対応する決済情報DP[q]を含む。
制御装置31は、プロセッサを含んで構成される。制御装置31に設けられたプロセッサは、例えば、1または複数のCPUを含んで構成される。但し、制御装置31に設けられたプロセッサは、1または複数のCPUに加え、または、1または複数のCPUのうち一部または全部に替えて、GPU、DSP、ASIC、PLD、FPGA等の、ハードウェアを含んで構成されるものであってもよい。制御装置31に設けられたプロセッサは、記憶装置32に記憶された制御プログラムPG-Sを実行し、当該制御プログラムPG-Sに従って動作することで、情報供給部311、情報受付部312、及び、決済処理部313として機能することができる。
情報供給部311は、「供給部」の一例であり、端末装置1[q]からの要求に応じて、オンライントークンKX[q]と、オンライン閉塞情報DHXと、オフライントークンKY[q]と、オフライン閉塞情報DHYとを、端末装置1[q]に供給する。
情報受付部312は、「受付部」の一例であり、端末装置1[q]から、オンライントークン要求と、オンライン閉塞情報要求と、オフライントークン要求と、オフライン閉塞情報要求とを受け付ける。また、情報受付部312は、店舗装置5から決済情報DP[q]を受け付ける。
決済処理部313は、「決済部」の一例であり、決済情報DP[q]に基づいて決済処理を実行する。具体的には、決済処理部313は、オンライン電子決済において、決済情報DP[q]に基づいてオンライン決済処理を実行し、オフライン電子決済において、決済情報DP[q]に基づいてオフライン決済処理を実行する。
通信装置35は、ネットワークNWを介して、決済装置3の外部に存在する端末装置1[q]、店舗装置5等の外部装置と通信するためのハードウェアである。本実施形態において、情報供給部311は、通信装置35を介して、各種情報を端末装置1[q]に供給する。また、情報受付部312は、通信装置35を介して、各種情報を端末装置1[q]及び店舗装置5から取得する。
<A.2.電子決済システムSysの動作>
以下、図4乃至図11を参照しつつ、電子決済システムSysの動作の概要について説明する。
<A.2.1.オンライン電子決済における電子決済システムSysの動作>
図4は、電子決済システムSysがオンライン電子決済を実行する場合における、電子決済システムSysの動作の一例をを示すシーケンスチャートである。
図4に示すように、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗においてサービスの提供を受け、電子決済によって当該サービスの対価の支払いを行う場合、端末装置1[q]の制御装置11は、ユーザU[q]の操作に基づいて電子決済プログラムPG-Tを実行することで、決済アプリを起動する(S11)。
次に、端末装置1[q]の制御装置11は、端末装置1[q]の通信状態がオンライン状態であるか否かを判定する(S12)。具体的には、制御装置11は、例えば、端末装置1[q]のオペレーティングシステムによる端末装置1[q]の通信状態監視機能を用いて、端末装置1[q]の通信状態がオンライン状態であるか否かを判定してもよい。ここで、「端末装置1[q]の通信状態がオンライン状態」であるとは、例えば、端末装置1[q]が、端末装置1[q]の外部に存在する外部装置と通信可能な状態であってもよいし、端末装置1[q]が無線通信を行う場合に、当該無線通信に係る電波強度が所定の強度以上である場合であってもよい。なお、図4に示すシーケンスチャートでは、端末装置1[q]の通信状態がオンライン状態である場合を想定する。
次に、端末装置1[q]の情報送信部111は、決済装置3に対してオンライン閉塞情報要求を送信する(S21)。ここで、オンライン閉塞情報要求とは、オンライン閉塞情報DHXを要求する旨の電文である。
そして、決済装置3の制御装置31は、ステップS21において端末装置1[q]から供給されたオンライン閉塞情報要求に対する応答として、端末装置1[q]に対してオンライン閉塞情報DHXを供給する(S22)。具体的には、制御装置31は、ステップS22において、まず、決済装置3におけるオンライン決済処理の実行可否を判定し、当該判定結果を示すオンライン閉塞情報DHXを生成する。そして、制御装置31の情報供給部311は、生成したオンライン閉塞情報DHXを端末装置1[q]に対して供給する。
次に、端末装置1[q]の情報送信部111は、決済装置3に対して、オンライントークン要求を送信する(S23)。ここで、オンライントークン要求とは、オンライントークンKX[q]を要求する旨の電文である。
そして、決済装置3の制御装置31は、ステップS23において端末装置1[q]から供給されたオンライントークン要求に対する応答として、端末装置1[q]に対してオンライントークンKX[q]を供給する(S24)。具体的には、制御装置31は、ステップS24において、まず、端末装置1[q]のユーザU[q]に対応するオンライントークンKX[q]を生成する。そして、制御装置31の情報供給部311は、生成したオンライントークンKX[q]を端末装置1[q]に対して供給する。
なお、本実施形態では、一例として、端末装置1[q]が、ステップS21において、決済装置3に対してオンライン閉塞情報要求を送信した後に、ステップS23において、決済装置3に対してオンライントークン要求を送信する場合を例示して説明したが、本発明はこのような態様に限定されるものではない。端末装置1[q]は、決済装置3に対してオンライントークン要求を送信した後に、決済装置3に対してオンライン閉塞情報要求を送信してもよい。また、端末装置1[q]は、決済装置3に対してオンライントークン要求及びオンライン閉塞情報要求を同時に(例えば、同一の電文で)送信してもよい。
次に、端末装置1[q]の情報送信部111は、決済装置3に対してオフライン閉塞情報要求を送信する(S31)。ここで、オフライン閉塞情報要求はとは、オフライン閉塞情報DHYを要求する旨の電文である。
そして、決済装置3の制御装置31は、ステップS31において端末装置1[q]から供給されたオフライン閉塞情報要求に対する応答として、端末装置1[q]に対してオフライン閉塞情報DHYを供給する(S32)。具体的には、制御装置31は、ステップS32において、まず、決済装置3におけるオフライン決済処理の実行可否を判定し、当該判定結果を示すオフライン閉塞情報DHYを生成する。そして、制御装置31の情報供給部311は、生成したオフライン閉塞情報DHYを端末装置1[q]に対して供給する。
次に、端末装置1[q]の情報送信部111は、決済装置3に対して、オフライントークン要求を送信する(S33)。ここで、オフライントークン要求とは、オフライントークンKY[q]を要求する旨の電文である。
そして、決済装置3の制御装置31は、ステップS33において端末装置1[q]から供給されたオフライントークン要求に対する応答として、端末装置1[q]に対してオフライントークンKY[q]と暗号鍵KS[q]とを供給する(S34)。具体的には、制御装置31は、ステップS34において、まず、端末装置1[q]のユーザU[q]に対応するオフライントークンKY[q]と暗号鍵KS[q]とを生成する。そして、制御装置31の情報供給部311は、生成したオフライントークンKY[q]及び暗号鍵KS[q]を端末装置1[q]に対して供給する。
なお、本実施形態では、一例として、端末装置1[q]が、ステップS31において、決済装置3に対してオフライン閉塞情報要求を送信した後に、ステップS33において、決済装置3に対してオフライントークン要求を送信する場合を例示して説明したが、本発明はこのような態様に限定されるものではない。端末装置1[q]は、決済装置3に対してオフライントークン要求を送信した後に、決済装置3に対してオフライン閉塞情報要求を送信してもよい。また、端末装置1[q]は、決済装置3に対してオフライントークン要求及びオフライン閉塞情報要求を同時に(例えば、同一の電文で)送信してもよい。
次に、端末装置1[q]の情報取得部112は、ステップS34において決済装置3から供給されるオフライントークンKY[q]と暗号鍵KS[q]とを取得し、当該取得したオフライントークンKY[q]及び暗号鍵KS[q]を記憶装置12に記憶させる(S35)。なお、情報取得部112は、ステップS35におけるオフライントークンKY[q]の取得が、M回目の取得(最新の取得)であるので、ステップS35において取得したオフライントークンKY[q]を、オフライントークンKY[q][M]として取得済オフライントークン情報KYY[q]に追加し、ステップS35において取得した暗号鍵KS[q]を、暗号鍵KS[q][M]としてオフライントークン関連情報DYYに追加する。また、本実施形態では、一例として、情報取得部112が、ステップS32において取得したオフライン閉塞情報DHYを、記憶装置12に記憶させる場合を想定する。なお、記憶装置12が既にオフライン閉塞情報DHYを記憶している場合、情報取得部112は、記憶装置12に既に記憶されているオフライン閉塞情報DHYを、ステップS32において新たに取得したオフライン閉塞情報DHYにより、上書きすることとする。
また、端末装置1[q]のコード生成部113は、ステップS22において情報取得部112が取得したオンライン閉塞情報DHXに基づいて、決済装置3におけるオンライン決済処理の実行機能が閉塞状態であるか否かを判定する(S41)。なお、図4に示すシーケンスチャートでは、決済装置3におけるオンライン決済処理の実行機能が閉塞状態ではない場合、すなわち、決済装置3がオンライン決済処理を実行可能な場合を想定する。以下では、決済装置3におけるオンライン決済処理の実行機能が閉塞状態にあることを、「オンライン閉塞状態」と称する場合がある。
次に、端末装置1[q]のコード生成部113は、ステップS24において情報取得部112が取得したオンライントークンKX[q]に基づいて、オンライン決済コードCX[q]を生成する(S42)。具体的には、コード生成部113は、ステップS42において、オンライントークンKX[q]を含むオンライン決済コードCX[q]を生成する。
その後、端末装置1[q]の表示制御部114は、ステップS42においてコード生成部113が生成したオンライン決済コードCX[q]に基づいて、オンライン決済コードCX[q]を表すオンラインコード画像GX[q]を表示するための表示情報を生成し、当該生成した表示情報に基づいてオンラインコード画像GX[q]を表示装置13に表示させる(S43)。具体的には、表示制御部114は、ステップS43において、オンラインコード画像GX[q]を含むオンラインコード画像表示画面G1を、表示装置13に表示させる。
図5は、オンラインコード画像表示画面G1の一例を示す模式図である。
図5に示すように、オンラインコード画像表示画面G1は、オンラインコード画像GX[q]と、支払方法表示領域A1と、ポイント利用選択ボタンB1と、を備える。
オンラインコード画像GX[q]は、上述の通り、オンライン決済コードCX[q]を表すためのバーコードである。但し、本発明はこのような態様に限定されるものではない。オンラインコード画像GX[q]は、例えば、オンライン決済コードCX[q]を表すための二次元コードであってもよい。
ポイント利用選択ボタンB1は、オンライン電子決済において、ユーザU[q]に付与されたポイントを使用するか否かを選択するためのボタンである。なお、図4等では図示省略するが、本実施形態では、一例として、ユーザU[q]がオンラインコード画像表示画面G1においてポイント利用選択ボタンB1を用いてポイント使用の有無を変更した際に、当該変更内容が端末装置1[q]から決済装置3に対して通知される場合を想定する。
支払方法表示領域A1には、電子決済システムSysにおいてユーザU[q]が電子決済を利用する場合における、ユーザU[q]の支払方法が表示される。具体的には、表示制御部114は、ユーザ支払情報DSH[q]に基づいて、支払方法表示領域A1に対してユーザU[q]の支払方法を表示させる。なお、図4等では図示省略するが、本実施形態では、一例として、端末装置1[q]からの要求に応じて、決済装置3が端末装置1[q]に対してユーザ支払情報DSH[q]が供給される場合を想定する。
なお、支払方法表示領域A1に表示されるユーザU[q]の支払方法は、以下で説明する支払方法選択画面GSにおいて、変更することができる。
図6は、支払方法選択画面GSの一例を示す模式図である。
図6に示すように、支払方法選択画面GSは、電子決済における支払方法として電話料金合算払いを選択するためのラジオボタンRB1、電子決済における支払方法としてプリペイド残高払いを選択するためのラジオボタンRB2、及び、電子決済における支払方法としてクレジットカード払いを選択するためのラジオボタンRB3を含む3個のラジオボタンRBと、電子決済における支払方法を決定するための決定ボタンBS1と、クレジットカード情報DCR[q]を登録するための画面(図示省略)を表示装置13に表示させるためのクレジット登録ボタンBS2と、を備える。ユーザU[q]は、支払方法選択画面GSにおいて、3個のラジオボタンRBのうちいずれか1つのラジオボタンRBを選択した状態で、決定ボタンBS1を押下することで、選択したラジオボタンRBに対応する支払方法を、電子決済システムSysにおけるユーザU[q]の支払方法として選択することができる。
説明を図4に戻す。
図4に示すように、店舗装置5は、店舗装置5に設けられるバーコードリーダー等を用いて、端末装置1[q]の表示装置13に表示された画面(オンラインコード画像表示画面G1)に含まれるコード画像GG[q](オンラインコード画像GX[q])を読み取る処理を行う(S44)。
その後、店舗装置5は、店舗装置5が設置された店舗がユーザU[q]に対して提供したサービス内容に基づく店舗決済情報(店舗識別情報、決済金額、決済日時)を生成し、当該生成した店舗決済情報と、ステップS44において読み取ったコード画像GG[q](オンラインコード画像GX[q])の示す決済コードCC[q](オンライン決済コードCX[q])とを含む、決済情報DP[q]を生成する(S61)。
そして、店舗装置5は、決済装置3に対して、ステップS61で生成した決済情報DP[q]を送信する(S62)。
次に、決済装置3の決済処理部313は、店舗装置5から供給された決済情報DP[q]に含まれる決済コードCC[q](オンライン決済コードCX[q])に基づいて、決済コードCC[q](オンライン決済コードCX[q])に含まれるトークンKK[q](オンライントークンKX[q])の有効性を確認する(S63)。なお、図4に示すシーケンスチャートでは、トークンKK[q](オンライントークンKX[q])が有効である場合を想定する。
その後、決済装置3の決済処理部313は、決済処理(オンライン決済処理)を実行する(S64)。
そして、決済装置3の情報供給部311は、店舗装置5に対して、ステップS64における決済処理(オンライン決済処理)の結果を示すレジ課金レスポンスを送信する(S65)。
<A.2.2.オフライン電子決済における電子決済システムSysの動作>
図7は、電子決済システムSysがオフライン電子決済を実行する場合における、電子決済システムSysの動作の一例をを示すシーケンスチャートである。なお、図7では、端末装置1[q]の通信状態がオフライン状態であることに起因して、電子決済システムSysがオンライン電子決済を実行できない場合を想定する。
図7に示すように、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗においてサービスの提供を受け、電子決済によって当該サービスの対価の支払いを行う場合、端末装置1[q]の制御装置11は、ユーザU[q]の操作に基づいて電子決済プログラムPG-Tを実行することで、決済アプリを起動する(S11)。
次に、端末装置1[q]の制御装置11は、端末装置1[q]の通信状態がオンライン状態であるか否かを判定する(S12)。なお、上述の通り、図7に示すシーケンスチャートでは、ステップS12における判定の結果が否定の場合、すなわち、端末装置1[q]の通信状態がオフライン状態である場合を想定する。
ステップS12における判定の結果が否定の場合、端末装置1[q]のコード生成部113は、記憶装置12に記憶されているオフライン閉塞情報DHYに基づいて、決済装置3におけるオフライン決済処理の実行機能が閉塞状態であるか否かを判定する(S51)。なお、図7に示すシーケンスチャートでは、決済装置3におけるオフライン決済処理の実行機能が閉塞状態ではない場合、すなわち、決済装置3がオフライン決済処理を実行可能な場合を想定する。以下では、決済装置3におけるオフライン決済処理の実行機能が閉塞状態にあることを、「オフライン閉塞状態」と称する場合がある。
次に、端末装置1[q]のコード生成部113は、記憶装置12から、最新のオフライントークンKY[q][M]を取得する(S52)。
そして、端末装置1[q]のコード生成部113は、オフライントークンKY[q][M]に基づいて、オフライン決済コードCY[q]を生成する(S53)。具体的には、コード生成部113は、ステップS53において、オフライントークンKY[q][M]を含むオフライン決済コードCY[q]を生成する。
その後、端末装置1[q]の表示制御部114は、ステップS53においてコード生成部113が生成したオフライン決済コードCY[q]に基づいて、オフライン決済コードCY[q]を表すオフラインコード画像GY[q]を表示するための表示情報を生成し、当該生成した表示情報に基づいてオフラインコード画像GY[q]を表示装置13に表示させる(S54)。具体的には、表示制御部114は、ステップS54において、オフラインコード画像GY[q]を含むオフラインコード画像表示画面G2を、表示装置13に表示させる。
図8は、オフラインコード画像表示画面G2の一例を示す模式図である。
図8に示すように、オフラインコード画像表示画面G2は、オフラインコード画像GY[q]と、支払方法表示領域A2と、ポイント利用選択ボタンB2と、を備える。
オフラインコード画像GY[q]は、上述の通り、オフライン決済コードCY[q]を表すためのバーコードである。また、本実施形態では、一例として、オフラインコード画像表示画面G2において、オフライン決済コードCY[q]を表すための二次元コードも、オフラインコード画像GY[q]として表示される場合を想定する。
支払方法表示領域A2には、電子決済システムSysにおいてユーザU[q]が電子決済を利用する場合における、ユーザU[q]の支払方法が表示される。
ポイント利用選択ボタンB2は、オフライン電子決済において、ユーザU[q]に付与されたポイントを使用するか否かの、ユーザU[q]による現在の選択状況を表示するためのボタンである。
説明を図7に戻す。
図7に示すように、店舗装置5は、端末装置1[q]の表示装置13に表示された画面(オフラインコード画像表示画面G2)に含まれるコード画像GG[q](オフラインコード画像GY[q])を読み取る処理を行う(S55)。
その後、店舗装置5は、店舗装置5が設置された店舗がユーザU[q]に対して提供したサービス内容に基づく店舗決済情報を生成し、当該生成した店舗決済情報と、ステップS55において読み取ったコード画像GG[q](オフラインコード画像GY[q])の示す決済コードCC[q](オフライン決済コードCY[q])とを含む、決済情報DP[q]を生成する(S61)。
そして、店舗装置5は、決済装置3に対して、ステップS61で生成した決済情報DP[q]を送信する(S62)。
次に、決済装置3の決済処理部313は、店舗装置5から供給された決済情報DP[q]に含まれる決済コードCC[q](オフライン決済コードCY[q])に基づいて、決済コードCC[q](オフライン決済コードCY[q])に含まれるトークンKK[q](オフライントークンKY[q][M])の有効性を確認する(S63)。なお、図7に示すシーケンスチャートでは、トークンKK[q](オフライントークンKY[q][M])が有効である場合を想定する。
その後、決済装置3の決済処理部313は、決済処理(オフライン決済処理)を実行する(S64)。
そして、決済装置3の情報供給部311は、店舗装置5に対して、ステップS64における決済処理(オフライン決済処理)の結果を示すレジ課金レスポンスを送信する(S65)。
図9は、電子決済システムSysがオフライン電子決済を実行する場合における、電子決済システムSysの動作の他の例をを示すシーケンスチャートである。なお、図9では、端末装置1[q]が決済装置3からオンライントークンKX[q]の取得に失敗したことに起因して、電子決済システムSysがオンライン電子決済を実行できない場合を想定する。
図9に示すように、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗においてサービスの提供を受け、電子決済によって当該サービスの対価の支払いを行う場合、上述のステップS11及びS12の処理を実行する。なお、図9に示すシーケンスチャートでは、ステップS12における判定の結果が肯定の場合、すなわち、端末装置1[q]の通信状態がオンライン状態である場合を想定する。
次に、端末装置1[q]の情報送信部111は、決済装置3に対してオンライン閉塞情報要求を送信する(S21)。但し、図9に示すシーケンスチャートでは、オンライン閉塞情報要求に対する決済装置3からの応答が無い場合を想定する。
また、端末装置1[q]の情報送信部111は、決済装置3に対して、オンライントークン要求を送信する(S23)。但し、図9に示すシーケンスチャートでは、オンライントークン要求に対する決済装置3からの応答が無い場合を想定する。すなわち、上述の通り、図9に示すシーケンスチャートでは、端末装置1[q]が決済装置3からオンライントークンKX[q]の取得に失敗した場合を想定する。
また、端末装置1[q]の情報送信部111は、決済装置3に対してオフライン閉塞情報要求を送信する(S31)。但し、図9に示すシーケンスチャートでは、オフライン閉塞情報要求に対する決済装置3からの応答が無い場合を想定する。
また、端末装置1[q]の情報送信部111は、決済装置3に対して、オフライントークン要求を送信する(S33)。但し、図9に示すシーケンスチャートでは、オフライントークン要求に対する決済装置3からの応答が無い場合を想定する。
そして、端末装置1[q]のコード生成部113は、記憶装置12に記憶されているオフライン閉塞情報DHYに基づいて、決済装置3がオフライン閉塞状態であるか否かを判定する(S51)。なお、図9に示すシーケンスチャートでは、決済装置3がオフライン閉塞状態ではない場合、すなわち、決済装置3がオフライン決済処理を実行可能な場合を想定する。
その後、電子決済システムSysは、ステップS52~S55、及び、ステップS61~S65の処理を実行することで、オフライン電子決済を行う。
図10は、電子決済システムSysがオフライン電子決済を実行する場合における、電子決済システムSysの動作の他の例を示すシーケンスチャートである。なお、図10では、決済装置3がオンライン閉塞状態であることに起因して、電子決済システムSysがオンライン電子決済を実行できない場合を想定する。
図10に示すように、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗においてサービスの提供を受け、電子決済によって当該サービスの対価の支払いを行う場合、上述のステップS11及びS12、ステップS21~S24、並びに、ステップS31~S35の処理を実行する。なお、図10に示すシーケンスチャートでは、ステップS12における判定の結果が肯定の場合、すなわち、端末装置1[q]の通信状態がオンライン状態である場合を想定する。また、図10に示すシーケンスチャートでは、ステップS31~S34に示すように、決済装置3から、オンライン閉塞情報DHX、オンライントークンKX[q]、オフライン閉塞情報DHY、及び、オフライントークンKY[q]の供給がある場合を想定する。
その後、端末装置1[q]のコード生成部113は、ステップS22において情報取得部112が取得したオンライン閉塞情報DHXに基づいて、決済装置3がオンライン閉塞状態であるか否かを判定する(S41)。なお、図10に示すシーケンスチャートでは、上述の通り、決済装置3がオンライン閉塞状態の場合、すなわち、決済装置3がオンライン決済処理を実行不能な場合を想定する。
そして、ステップS41における判定の結果が否定の場合、すなわち、決済装置3がオンライン閉塞状態の場合、端末装置1[q]のコード生成部113は、記憶装置12に記憶されているオフライン閉塞情報DHYに基づいて、決済装置3がオフライン閉塞状態であるか否かを判定する(S51)。なお、図10に示すシーケンスチャートでは、決済装置3がオフライン閉塞状態ではない場合、すなわち、決済装置3がオフライン決済処理を実行可能な場合を想定する。
その後、電子決済システムSysは、ステップS52~S55、及び、ステップS61~S65の処理(ステップS55以降は図示省略)を実行することで、オフライン電子決済を行う。
<A.2.3.初回起動時における電子決済システムSysの動作>
図11は、端末装置1[q]において、決済アプリが最初に起動された場合であって、電子決済システムSysが電子決済を実行する場合における、電子決済システムSysの動作の一例をを示すシーケンスチャートである。
図11に示すように、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗において受けたサービスの対価を電子決済によって支払う場合であって、端末装置1[q]において決済アプリを起動したことが無い場合においても、端末装置1[q]の制御装置11は、ユーザU[q]の操作に基づいて電子決済プログラムPG-Tを実行することで、決済アプリを起動する(S11)。
次に、端末装置1[q]の制御装置11は、上述のステップS12の処理を実行する。なお、図11に示すシーケンスチャートでは、ステップS12における判定の結果が肯定の場合、すなわち、端末装置1[q]の通信状態がオンライン状態である場合を想定する。
次に、端末装置1[q]の情報送信部111は、決済装置3に対して、設定情報要求を送信する(S13)。ここで、設定情報要求とは、設定情報DSを要求する旨の電文である。
そして、決済装置3の制御装置31は、ステップS13において端末装置1[q]から供給された設定情報要求に対する応答として、端末装置1[q]に対して、設定情報DSを供給する(S14)。具体的には、制御装置31は、ステップS14において、まず、記憶装置32に記憶されている設定情報DSを取得する。そして、制御装置31の情報供給部311は、取得した設定情報DSを端末装置1[q]に対して供給する。
また、端末装置1[q]の情報送信部111は、決済装置3に対して、事業者識別トークン要求を送信する(S15)。ここで、事業者識別トークン要求とは、事業者識別トークンKZを要求する旨の電文である。
そして、決済装置3の制御装置31は、ステップS15において端末装置1[q]から供給された事業者識別トークン要求に対する応答として、端末装置1[q]に対して、事業者識別トークンKZを供給する(S16)。具体的には、制御装置31は、ステップS16において、まず、記憶装置32に記憶されている事業者識別情報DKZに基づいて事業者識別トークンKZを生成する。そして、制御装置31の情報供給部311は、生成した事業者識別トークンKZを端末装置1[q]に対して供給する。
なお、本実施形態では、一例として、端末装置1[q]が、ステップS13において、決済装置3に対して設定情報要求を送信した後に、ステップS15において、決済装置3に対して事業者識別トークン要求を送信する場合を例示して説明したが、本発明はこのような態様に限定されるものではない。端末装置1[q]は、決済装置3に対して事業者識別トークン要求を送信した後に、決済装置3に対して設定情報要求を送信してもよい。また、端末装置1[q]は、決済装置3に対して設定情報要求及び事業者識別トークン要求を同時に(例えば、同一の電文で)送信してもよい。
次に、端末装置1[q]の情報取得部112は、ステップS14において決済装置3から供給される設定情報DSと、ステップS16において決済装置3から供給される事業者識別トークンKZとを取得し、当該取得した設定情報DS及び事業者識別トークンKZを記憶装置12に記憶させる(S17)。
その後、電子決済システムSysは、ステップS21以降の処理を実行することで、電子決済を行う。
なお、本実施形態では、端末装置1[q]における決済アプリの初回起動時に、決済装置3から端末装置1[q]に対して、設定情報DSと、事業者識別トークンKZとが供給される態様を例示して説明したが、本発明はこのような態様に限定されるものではない。
例えば、決済装置3は、設定情報DSが変更された場合に、変更後の設定情報DSを端末装置1[q]に供給してもよい。具体的には、決済装置3は、設定情報DSが変更された場合であって、端末装置1[q]において決済アプリが起動された旨を示す決済アプリ起動通知(図示省略)が、端末装置1[q]から決済装置3に供給された場合に、当該決済アプリ起動通知に対する応答として、端末装置1[q]に対して変更後の設定情報DSを供給してもよい。また、決済装置3は、例えば、端末装置1[q]から決済装置3に決済アプリ起動通知が供給された場合に、設定情報DSの変更有無に関わらず、端末装置1[q]に対して設定情報DSを供給してもよい。
また、例えば、決済装置3は、事業者識別情報DKZが変更された場合に、変更後の事業者識別情報DKZを示す事業者識別トークンKZを端末装置1[q]に供給してもよい。具体的には、決済装置3は、事業者識別情報DKZが変更された場合であって、端末装置1[q]から決済装置3に対して決済アプリ起動通知が供給された場合に、当該決済アプリ起動通知に対する応答として、端末装置1[q]に対して変更後の事業者識別情報DKZに基づく事業者識別トークンKZを供給してもよい。この場合、端末装置1[q]が、事業者識別トークンKZを取得する頻度は、オンライントークンKX[q]を取得する頻度よりも低くなる。また、この場合、端末装置1[q]が、事業者識別トークンKZを取得する頻度は、オフライントークンKY[q]を取得する頻度よりも低くなる。
また、決済装置3は、例えば、端末装置1[q]から決済装置3に決済アプリ起動通知が供給された場合に、事業者識別情報DKZの変更有無に関わらず、端末装置1[q]に対して事業者識別トークンKZを供給してもよい。
<A.2.4.電子決済システムSysの動作に係る纏め>
以上のように、本実施形態において、電子決済システムSysは、端末装置1[q]の通信状態がオフライン状態の場合、端末装置1[q]が決済装置3からオンライントークンKX[q]の取得に失敗した場合、及び、決済装置3がオンライン閉塞状態にある場合等、オンライン電子決済が困難な場合に、オフライン電子決済を実行する。このため、例えば、電子決済システムがオンライン電子決済のみ実行可能な態様と比較して、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗においてサービスの提供を受けた場合に、当該サービスの対価を電子決済により支払うことが困難となる可能性を低減することができる。これにより、本実施形態によれば、店舗装置5が設置された店舗においてサービスの提供を受けたユーザU[q]の決済に係る利便性の低下を低減することができる。
また、本実施形態では、端末装置1[q]において決済アプリが起動(ステップS11参照)されて、電子決済が実行されるタイミングにおいて、端末装置1[q]は、決済装置3から、オンライントークンKX[q]を取得する(ステップS24参照)のに加えて、オフライントークンKY[q]を取得する(ステップS34参照)。すなわち、本実施形態において、端末装置1[q]は、端末装置1[q]及び決済装置3が電子決済に係る通信を行うタイミングにおいて、決済装置3からオフライントークンKY[q]を取得する。このため、本実施形態によれば、例えば、予め定められたタイミング等、電子決済が行われるタイミングとは無関係なタイミングにおいて、端末装置1[q]が決済装置3からオフライントークンKY[q]を取得する態様と比較して、端末装置1[q]における電子決済以外の処理数を低減することが可能となる。これにより、本実施形態によれば、電子決済が行われるタイミングとは無関係なタイミングにおいて端末装置1[q]が決済装置3からオフライントークンKY[q]を取得する態様と比較して、端末装置1[q]における処理のスケジュール調整の煩雑さを低減することができる。
また、本実施形態において、端末装置1[q]は、電子決済が行われるタイミングにおいて、決済装置3から取得したオフライントークンKY[q]を記憶装置12に記憶させる。このため、本実施形態によれば、通信不良等に起因してオンライン電子決済が困難な場合に、オフライン電子決済までもが実行困難となる可能性を低減することができる。
また、本実施形態において、端末装置1[q]は、オンライン閉塞情報DHXが、決済装置3がオンライン閉塞状態ではないことを示す場合に限り、表示装置13にオンラインコード画像GX[q]を表示し、また、オフライン閉塞情報DHYが、決済装置3がオフライン閉塞状態ではないことを示す場合に限り、表示装置13にオフラインコード画像GY[q]を表示する。つまり、本実施形態によれば、オンライン電子決済の実行が困難な場合に、端末装置1[q]におけるオンラインコード画像GX[q]の表示を抑制し、また、オフライン電子決済の実行が困難な場合に、端末装置1[q]におけるオフラインコード画像GY[q]の表示を抑制することができる。このため、本実施形態によれば、例えば、閉塞情報DHを考慮せずにコード画像GG[q]を表示する態様と比較して、コード画像GG[q]の表示に係るユーザU[q]の手間を削減することができる。
<A.3.決済コードCC[q]の概要>
以下、図12を参照しつつ、決済コードCC[q](オンライン決済コードCX[q]及びオフライン決済コードCY[q])の概要について説明する。
図12は、オンライン決済コードCX[q]及びオフライン決済コードCY[q]のデータ構成の一例を示す図である。
図12に示すように、オンライン決済コードCX[q]は、事業者識別トークンKZと、オンライントークンKX[q]と、充当値VJと、コード種別値VVと、を含む。また、オフライン決済コードCY[q]は、事業者識別トークンKZと、オフライントークンKY[q]と、時間暗号コードTT[q][n]と、充当値VJと、コード種別値VVと、を含む。
事業者識別トークンKZは、LZ個のコード値VZ[1]~VZ[LZ]から構成される、LZ桁のデータである。ここで、値LZは、「LZ≧2」を満たす自然数である。また、本実施形態において、各コード値VZは、1桁の数字(0~9)から構成される1桁のデータである場合を想定する。但し、コード値VZは、1桁の英数字(1桁の数字または1個のアルファベット)から構成される1桁のデータであってもよい。
オンライントークンKX[q]は、LX個のコード値VX[1]~VX[LX]から構成される、LX桁のデータである。ここで、値LXは、「LX≧4」を満たす自然数である。また、本実施形態において、各コード値VXは、1桁の数字(0~9)から構成される1桁のデータである場合を想定する。但し、コード値VXは、1桁の英数字(1桁の数字または1個のアルファベット)から構成される1桁のデータであってもよい。
オフライントークンKY[q]は、LY個のコード値VY[1]~VY[LY]から構成される、LY桁のデータである。ここで、値LYは、「LY≧2」、且つ、「LY<LX」を満たす自然数である。また、本実施形態において、各コード値VYは、1桁の数字(0~9)から構成される1桁のデータである場合を想定する。但し、コード値VYは、1桁の英数字(1桁の数字または1個のアルファベット)から構成される1桁のデータであってもよい。
時間暗号コードTT[q]は、LT個のコード値VT[1]~VT[LT]から構成される、LT桁のデータである。ここで、値LTは、「LT≧2」、且つ、「LT+LY=LX」を満たす自然数である。すなわち、本実施形態において、オフライントークンKY[q]の桁数LYと、時間暗号コードTT[q][n]の桁数LTとの合計値は、オンライントークンKX[q]の桁数LXと等しい。また、本実施形態において、各コード値VTは、1桁の数字(0~9)から構成される1桁のデータである場合を想定する。但し、コード値VTは、1桁の英数字(1桁の数字または1個のアルファベット)から構成される1桁のデータであってもよい。
充当値VJは、1桁の数字(0~9)から構成される1桁のデータである。但し、充当値VJは、1ビットの値であってもよく、2桁以上の数字であってもよく、1桁以上の英数字であってもよい。
コード種別値VVは、1桁の数字(0~9)から構成される1桁のデータである。但し、コード種別値VVは、1ビットの値であってもよく、2桁以上の数字であってもよく、1桁以上の英数字であってもよい。コード種別値VVには、決済コードCC[q]の種別を示す値が設定される。具体的には、決済コードCC[q]がオンライン決済コードCX[q]である場合、コード種別値VVには、決済コードCC[q]がオンライン決済コードCX[q]であることを示す値、例えば「1」が設定される。以下では、決済コードCC[q]がオンライン決済コードCX[q]であることを示す値を、「オンラインコード値」と称する。また、決済コードCC[q]がオフライン決済コードCY[q]である場合、コード種別値VVには、決済コードCC[q]がオフライン決済コードCY[q]であることを示す値、例えば「2」が設定される。以下では、決済コードCC[q]がオフライン決済コードCY[q]であることを示す値を、「オフラインコード値」と称する。
以下、コード生成部113が、決済コードCC[q]を生成する処理(以下、「コード生成処理」と称する)について説明する。なお、以下では、コード生成部113によるコード生成処理のうち、オンライン決済コードCX[q]を生成する処理を、「オンラインコード生成処理」と称する。また、以下では、コード生成部113によるコード生成処理のうち、オフライン決済コードCY[q]を生成する処理を、「オフラインコード生成処理」と称する。
オンラインコード生成処理において、コード生成部113は、コード種別値VVに対して、オンラインコード値(例えば「1」)を設定する。そして、コード生成部113は、記憶装置12に記憶された事業者識別トークンKZと、情報取得部112が決済装置3から取得したオンライントークンKX[q]と、充当値VJと、コード種別値VVとを、所定の順番に並べることで、オンライン決済コードCX[q]を生成する。
オフラインコード生成処理において、コード生成部113は、端末装置1[q]で管理する端末時刻TGに基づいて、端末時刻値AGを生成する。具体的には、コード生成部113は、端末時刻TGのうち、「秒」を表す部分を削除し、「分」及び「時」を表す部分を残置することで、端末時刻値AGを生成する。
次に、コード生成部113は、オフラインコード生成処理において、記憶装置12に記憶されているM個の暗号鍵KS[q][1]~KS[q][M]のうち、最後に取得されたオフライントークンKY[q][M]に対応する暗号鍵KS[q][M]を用いて、端末時刻値AGを暗号化することで、時間暗号コードTT[q]を生成する。すなわち、本実施形態において、時間暗号コードTT[q]が、暗号鍵KS[q][M]を用いて端末時刻値AGを暗号化した値である場合を想定する。
また、コード生成部113は、オフラインコード生成処理において、コード種別値VVに対して、オフラインコード値(例えば「2」)を設定する。
そして、コード生成部113は、オフラインコード生成処理において、記憶装置12に記憶された事業者識別トークンKZと、情報取得部112が決済装置3から取得したオフライントークンKY[q]と、コード生成部113が生成した時間暗号コードTT[q]と、充当値VJと、コード種別値VVとを、所定の順番に並べることで、オフライン決済コードCY[q]を生成する。
なお、本実施形態では、オンライン決済コードCX[q]の桁数と、オフライン決済コードCY[q]の桁数とは等しい場合を想定する。
上述の通り、本実施形態において、コード生成部113は、端末時刻値AGを、更新単位時間TCの周期で更新する。具体的には、本実施形態において、コード生成部113は、端末時刻値AGを、1分毎に更新する。そして、コード生成部113は、端末時刻値AGが更新された場合、更新後の端末時刻値AGを暗号鍵KS[q][M]により暗号化した値により時間暗号コードTT[q]を更新し、更新後の時間暗号コードTT[q]によりオフライン決済コードCY[q]を更新する。具体的には、事業者識別トークンKZと、オフライントークンKY[q]と、更新後の時間暗号コードTT[q]と、充当値VJと、コード種別値VVとを、所定の順番に並べることで、更新後のオフライン決済コードCY[q]を生成する。
以下では、時間暗号コードTT[q]のうち、(n+1)回の更新を経た時間暗号コードTT[q]を、時間暗号コードTT[q][n]と称する場合がある。すなわち、以下では、1度も更新されていない時間暗号コードTT[q]を、時間暗号コードTT[q][1]と称し、1回の更新を経た時間暗号コードTT[q]を、時間暗号コードTT[q][2]と称する場合がある。ここで、変数nは、「1≦n」を満たす自然数である。
このように、本実施形態では、オフライン決済コードCY[q]が、オフライントークン有効時間TSY(例えば、1週間)毎に更新されるオフライントークンKY[q]に加えて、オフライントークン有効時間TSYよりも短い時間である更新単位時間TC(例えば、1分)毎に更新される時間暗号コードTT[q]を含んで構成される。つまり、本実施形態において、オフライン決済コードCY[q]は、時間暗号コードTT[q]の更新周期である更新単位時間TC毎に更新される。このため、本実施形態によれば、オフライン決済コードCY[q]が時間暗号コードTT[q]を含まずに構成される態様と比較して、オフライン決済コードCY[q]の漏洩に伴うセキュリティ上のリスクを低減することができる。
また、本実施形態では、オフライン決済コードCY[q]が、オフライントークンKY[q]に加えて、オフライントークンKY[q]とは異なるタイミングで取得された事業者識別トークンKZを含んで構成される。このため、本実施形態によれば、オフライン決済コードCY[q]が事業者識別トークンKZを含まずに構成される態様と比較して、オフライン決済コードCY[q]の漏洩に伴うセキュリティ上のリスクを低減することができる。
同様に、本実施形態では、オンライン決済コードCX[q]が、オンライントークンKX[q]に加えて、オンライントークンKX[q]とは異なるタイミングで取得された事業者識別トークンKZを含んで構成される。このため、本実施形態によれば、オンライン決済コードCX[q]が事業者識別トークンKZを含まずに構成される態様と比較して、オンライン決済コードCX[q]の漏洩に伴うセキュリティ上のリスクを低減することができる。
<A.4.端末装置1[q]の動作>
以下、図13乃至図17を参照しつつ、電子決済が実行される場合における端末装置1[q]の動作の概要について説明する。
図13乃至図16は、電子決済システムSysにおいて電子決済が実行される場合における、端末装置1[q]の動作の一例を示すフローチャートである。なお、図13乃至図16に示すフローチャートは、端末装置1[q]において決済アプリが起動されたときに開始される。
図13に示すように、端末装置1[q]において決済アプリが起動されると、端末装置1[q]の制御装置11は、端末装置1[q]の通信状態がオンライン状態であるか否かを判定する(S101)。なお、ステップS101の処理は、上述のステップS12の処理に相当する。
ステップS101における判定の結果が否定の場合、すなわち、端末装置1[q]の通信状態がオフライン状態である場合、端末装置1[q]の制御装置11は、処理をステップS151に進める。
ステップS101における判定の結果が肯定の場合、すなわち、端末装置1[q]の通信状態がオンライン状態である場合、端末装置1[q]の情報送信部111は、決済装置3に対してオンライン閉塞情報要求を送信する(S103)。なお、ステップS103の処理は、上述のステップS21の処理に相当する。
そして、端末装置1[q]の制御装置11は、決済装置3から、オンライン閉塞情報要求に対する応答が無い場合(S105:N)、処理をステップS109に進める。他方、端末装置1[q]の情報取得部112は、オンライン閉塞情報要求に対する応答として、通信装置15が決済装置3から送信されたオンライン閉塞情報DHXを受信した場合(S105:Y)、当該オンライン閉塞情報DHXを取得する(S107)。
また、端末装置1[q]の情報送信部111は、決済装置3に対してオンライントークン要求を送信する(S109)。なお、ステップS109の処理は、上述のステップS23の処理に相当する。
そして、端末装置1[q]の制御装置11は、決済装置3から、オンライントークン要求に対する応答が無い場合(S111:N)、処理をステップS115に進める。他方、端末装置1[q]の情報取得部112は、オンライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオンライントークンKX[q]を受信した場合(S111:Y)、当該オンライントークンKX[q]を取得する(S113)。
また、端末装置1[q]の情報送信部111は、決済装置3に対してオフライン閉塞情報要求を送信する(S115)。なお、ステップS115の処理は、上述のステップS31の処理に相当する。
そして、端末装置1[q]の制御装置11は、決済装置3から、オフライン閉塞情報要求に対する応答が無い場合(S117:N)、処理をステップS121に進める。他方、端末装置1[q]の情報取得部112は、オフライン閉塞情報要求に対する応答として、通信装置15が決済装置3から送信されたオフライン閉塞情報DHYを受信した場合(S117:Y)、当該オフライン閉塞情報DHYを取得する(S119)。
また、端末装置1[q]の情報送信部111は、決済装置3に対してオフライントークン要求を送信する(S121)。なお、ステップS121の処理は、上述のステップS33の処理に相当する。
そして、端末装置1[q]の制御装置11は、決済装置3から、オフライントークン要求に対する応答が無い場合(S123:N)、処理をステップS131に進める。他方、端末装置1[q]の情報取得部112は、オフライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオフライントークンKY[q]及び暗号鍵KS[q]を受信した場合(S123:Y)、当該オフライントークンKY[q]及び暗号鍵KS[q]を記憶装置12に記憶させる(S125)。具体的には、情報取得部112は、ステップS125において、決済装置3から供給されたオフライントークンKY[q]及び暗号鍵KS[q]を取得する。次に、情報取得部112は、取得したオフライントークンKY[q]を、最新のオフライントークンKY[q][M]として取得済オフライントークン情報KYY[q]に追加し、また、取得した暗号鍵KS[q]を、最新の暗号鍵KS[q][M]としてオフライントークン関連情報DYYに追加する。なお、ステップS125の処理は、上述のステップS35の処理に相当する。
図14に示すように、端末装置1[q]のコード生成部113は、決済装置3がオンライン閉塞状態ではないか否かを判定する(S131)。具体的には、コード生成部113は、ステップS131において、情報取得部112がステップS107においてオンライン閉塞情報DHXを取得しており、且つ、当該オンライン閉塞情報DHXが、決済装置3がオンライン閉塞状態ではないことを示しているか否かを判定する。なお、ステップS131の処理は、上述のステップS41の処理に相当する。
ステップS131における判定の結果が否定の場合、すなわち、情報取得部112がステップS107においてオンライン閉塞情報DHXを取得していない場合、または、オンライン閉塞情報DHXが、決済装置3がオンライン閉塞状態であることを示す場合、端末装置1[q]の制御装置11は、処理をステップS151に進める。
また、ステップS131における判定の結果が肯定の場合であっても、情報取得部112がステップS113においてオンライントークンKX[q]を取得していない場合(S133:N)には、端末装置1[q]の制御装置11は、処理をステップS151に進める。
ステップS131における判定の結果が肯定の場合であって、情報取得部112がステップS113においてオンライントークンKX[q]を取得した場合(S133:Y)において、端末装置1[q]のコード生成部113は、オンラインコード生成処理を実行し、オンライン決済コードCX[q]を生成する(S135)。なお、ステップS135の処理は、上述のステップS42の処理に相当する。
そして、端末装置1[q]の表示制御部114は、オンライン決済コードCX[q]を示すオンラインコード画像GX[q]を表示するための表示情報を生成し、当該表示情報に基づいて、表示装置13にオンラインコード画像GX[q]を表示させる(S137)。なお、ステップS137の処理は、上述のステップS43の処理に相当する。
次に、端末装置1[q]の制御装置11は、ユーザU[q]が入力装置14を用いて、決済アプリを終了させる操作(以下、「終了操作」と称する)を実行したか否かを判定する(S139)。
ステップS139における判定の結果が肯定の場合、すなわち、終了操作がなされた場合、端末装置1[q]の制御装置11は、図13乃至図16に示すフローチャートに係る一連の処理を終了させる。
ステップS139における判定の結果が否定の場合、すなわち、終了操作がなされていない場合、端末装置1[q]のコード生成部113は、オンラインコード画像GX[q]を更新する契機である、オンラインコード画像更新契機が到来したか否かを判定する(S141)。ここで、オンラインコード画像更新契機とは、表示装置13に表示されるオンラインコード画像GX[q]が更新される契機である。
本実施形態では、オンライントークン時間条件J11、オンラインコード画像表示条件J12、及び、オンラインコード画像操作条件J13の、3個の更新条件J1のうち、何れか1個以上の更新条件J1が達成されたときに、オンラインコード画像更新契機が到来したものと看做される場合を想定する。ここで、オンライントークン時間条件J11とは、オンラインコード画像GX[q]が表示装置13に表示されてから、オンライントークン有効時間TSXに相当する時間(本実施形態では、5分)が経過する、という条件である。また、オンラインコード画像表示条件J12とは、表示装置13において、オンラインコード画像GX[q]を含むオンラインコード画像表示画面G1が、バックグラウンド表示からフォアグラウンド表示に遷移する、という条件である。また、オンラインコード画像操作条件J13とは、表示装置13においてオンラインコード画像GX[q]を含むオンラインコード画像表示画面G1が表示された状態で、プルダウン操作が実行される、という条件である。
ステップS141における判定の結果が否定の場合、すなわち、オンラインコード画像更新契機が到来していない場合、制御装置11は、処理をステップS137に戻し、表示装置13におけるオンラインコード画像GX[q]の表示を継続させる。
ステップS141における判定の結果が肯定の場合、すなわち、オンラインコード画像更新契機が到来した場合、端末装置1[q]の情報送信部111は、決済装置3に対してオンライントークン要求を送信する(S143)。
そして、端末装置1[q]の制御装置11は、決済装置3から、ステップS143に係るオンライントークン要求に対する応答が無い場合(S145:N)、処理をステップS151に進める。他方、端末装置1[q]の情報取得部112は、ステップS143に係るオンライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオンライントークンKX[q]を受信した場合(S145:Y)、当該オンライントークンKX[q]を取得して(S147)、処理をステップS135に進め、ステップS135において、ステップS147で取得したオンライントークンKX[q]に基づいて、オンライン決済コードCX[q]を生成する。
図15に示すように、端末装置1[q]のコード生成部113は、決済装置3がオフライン閉塞状態ではないか否かを判定する(S151)。具体的には、コード生成部113は、ステップS151において、情報取得部112がステップS119においてオフライン閉塞情報DHYを取得しており、且つ、当該オフライン閉塞情報DHYが、決済装置3がオフライン閉塞状態ではないことを示しているか否かを判定する。なお、ステップS151の処理は、上述のステップS51の処理に相当する。
ステップS151における判定の結果が否定の場合、すなわち、情報取得部112がステップS119においてオフライン閉塞情報DHYを取得していない場合、または、オフライン閉塞情報DHYが、決済装置3がオフライン閉塞状態であることを示す場合、端末装置1[q]の制御装置11は、処理をステップS171に進める。
ステップS151における判定の結果が肯定の場合、すなわち、オフライン閉塞情報DHYが、決済装置3がオフライン閉塞状態ではないことを示す場合、端末装置1[q]のコード生成部113は、記憶装置12に記憶されている最新のオフライントークンKY[q][M]が、有効であるか否かを判定する(S153)。
具体的には、コード生成部113は、ステップS153において、記憶装置12に1または複数のオフライントークンKY[q][1]~KY[q][M]が記憶されており、且つ、記憶装置12に記憶されている最新のオフライントークンKY[q][M]に対応するオフライントークン有効期間TY[q][M]が、現在時刻を含む期間であるか否かを判定する。そして、コード生成部113は、当該判定の結果が肯定の場合に、記憶装置12から最新のオフライントークンKY[q][M]を取得する。なお、ステップS153の処理は、上述のステップS52の処理に相当する。
ステップS153における判定の結果が否定の場合、すなわち、記憶装置12にオフライントークンKY[q]が記憶されていない場合、または、記憶装置12に記憶されている最新のオフライントークンKY[q][M]が有効期限切れである場合、端末装置1[q]の制御装置11は、処理をステップS171に進める。
ステップS153における判定の結果が肯定の場合、すなわち、記憶装置12に記憶されている最新のオフライントークンKY[q][M]が有効である場合、端末装置1[q]の表示制御部114は、表示装置13に対して、オフライン決済説明画面G3を表示させる(S155)。なお、ステップS155の処理は省略されてもよい。
図17は、オフライン決済説明画面G3の一例を示す模式図である。
図17に示すように、オフライン決済説明画面G3は、オフライン決済説明表示領域A3と、説明画面省略ボタンCB3と、オフライン決済決定ボタンB3と、を備える。
オフライン決済説明表示領域A3は、ユーザU[q]に対してオフライン電子決済を説明するための文章が表示される領域である。
説明画面省略ボタンCB3は、次回以降、オフライン決済説明画面G3の表示を省略する旨のユーザU[q]からの操作を受け付けるためのボタンである。
オフライン決済決定ボタンB3は、オフライン電子決済の実行を承諾する旨のユーザU[q]からの操作を受け付けるためのボタンである。
説明を図15に戻す。
図15に示すように、ステップS155で表示装置13に表示されたオフライン決済説明画面G3において、ユーザU[q]がオフライン決済決定ボタンB3を押下した場合、端末装置1[q]のコード生成部113は、オフラインコード生成処理を実行し、ステップS153において記憶装置12から取得されたオフライントークンKY[q][M]に基づいて、オフライン決済コードCY[q]を生成する(S157)。なお、ステップS157の処理は、上述のステップS53の処理に相当する。
そして、端末装置1[q]の表示制御部114は、オフライン決済コードCY[q]を示すオフラインコード画像GY[q]を表示するための表示情報を生成し、当該表示情報に基づいて、表示装置13にオフラインコード画像GY[q]を表示させる(S159)。なお、ステップS159の処理は、上述のステップS54の処理に相当する。
次に、端末装置1[q]の制御装置11は、ユーザU[q]が入力装置14を用いて、終了操作を実行したか否かを判定する(S161)。
ステップS161における判定の結果が肯定の場合、すなわち、終了操作がなされた場合、端末装置1[q]の制御装置11は、図13乃至図16に示すフローチャートに係る一連の処理を終了させる。
ステップS161における判定の結果が否定の場合、すなわち、終了操作がなされていない場合、端末装置1[q]のコード生成部113は、オフラインコード画像更新契機が到来したか否かを判定する(S163)。ここで、オフラインコード画像更新契機とは、表示装置13に表示されるオフラインコード画像GY[q]が更新される契機である。
本実施形態では、オフラインコード画像表示条件J22、及び、オフラインコード画像操作条件J23の、2個の更新条件J2のうち、何れか1個以上の更新条件J2が達成されたときに、オフラインコード画像更新契機が到来したものと看做される場合を想定する。ここで、オフラインコード画像表示条件J22とは、表示装置13において、オフラインコード画像GY[q]を含むオフラインコード画像表示画面G2が、バックグラウンド表示からフォアグラウンド表示に遷移する、という条件である。また、オフラインコード画像操作条件J23とは、表示装置13においてオフラインコード画像GY[q]を含むオフラインコード画像表示画面G2が表示された状態で、プルダウン操作が実行される、という条件である。
ステップS163における判定の結果が肯定の場合、すなわち、オフラインコード画像更新契機が到来した場合、端末装置1[q]の制御装置11は、処理をステップS101に進め、図13乃至図16に示すフローチャートに係る一連の処理を、再度実行する。
ステップS163における判定の結果が否定の場合、すなわち、オフラインコード画像更新契機が到来していない場合、端末装置1[q]のコード生成部113は、端末時刻値AGが更新されることに起因する、時間暗号コードTT[q]の更新契機が到来したか否かを判定する(S165)。
ステップS165における判定の結果が否定の場合、すなわち、時間暗号コードTT[q]の更新契機が到来していない場合、端末装置1[q]の制御装置11は、処理をステップS159に戻し、表示装置13におけるオフラインコード画像GY[q]の表示を継続させる。
ステップS165における判定の結果が肯定の場合、すなわち、端末時刻値AGが更新されて時間暗号コードTT[q]の更新契機が到来した場合、端末装置1[q]のコード生成部113は、更新後の端末時刻値AGを暗号鍵KS[q][M]により暗号化することで、時間暗号コードTT[q]を更新する(S167)。
そして、端末装置1[q]のコード生成部113は、更新後の時間暗号コードTT[q]により、オフライン決済コードCY[q]を更新し(S169)、処理をステップS159に進めることで、表示装置13において更新後のオフラインコード画像GY[q]を表示させる。具体的には、コード生成部113は、ステップS169において、記憶装置12に記憶されている事業者識別トークンKZと、記憶装置12に記憶されている最新のオフライントークンKY[q][M]と、更新後の時間暗号コードTT[q]と、充当値VJと、コード種別値VVとを、所定の順番に並べることで、更新後のオフライン決済コードCY[q]を生成する。
図16に示すように、端末装置1[q]の表示制御部114は、オフライン閉塞状態の場合(S151:N)、及び、記憶装置12において有効なオフライントークンKY[q]が存在しない場合(S153:N)等、オフラインコード生成処理が困難な場合、表示装置13に対して、オンライン電子決済の実行を待機している旨をユーザU[q]に通知する画面であるオンライン決済待受画面(図示省略)を表示させる(S171)。
そして、端末装置1[q]の情報送信部111は、端末装置1[q]と決済装置3とが通信可能か否かを判定する(S173)。そして、情報送信部111は、端末装置1[q]と決済装置3とが通信可能となるまで待機する。
端末装置1[q]と決済装置3とが通信可能となった場合(S173:Y)する、端末装置1[q]の情報送信部111は、決済装置3に対してオンライントークン要求を送信する(S175)。
そして、端末装置1[q]の制御装置11は、決済装置3から、オンライントークン要求に対する応答が無い場合(S177:N)、処理をステップS175に戻すことで、オンライントークン要求を再送する。他方、端末装置1[q]の情報取得部112は、オンライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオンライントークンKX[q]を受信した場合(S177:Y)、当該オンライントークンKX[q]を取得する(S179)。
次に、端末装置1[q]のコード生成部113は、ステップS179において取得したオンライントークンKX[q]を用いて、オンラインコード生成処理を実行し、オンライン決済コードCX[q]を生成する(S181)。
そして、端末装置1[q]の表示制御部114は、ステップS181において生成したオンライン決済コードCX[q]を用いて、当該オンライン決済コードCX[q]を示すオンラインコード画像GX[q]を表示するための表示情報を生成し、当該表示情報に基づいて、表示装置13にオンラインコード画像GX[q]を表示させる(S183)。
次に、端末装置1[q]の制御装置11は、ユーザU[q]が入力装置14を用いて、終了操作を実行したか否かを判定する(S185)。
ステップS185における判定の結果が肯定の場合、すなわち、終了操作がなされた場合、端末装置1[q]の制御装置11は、図13乃至図16に示すフローチャートに係る一連の処理を終了させる。
ステップS185における判定の結果が否定の場合、すなわち、終了操作がなされていない場合、端末装置1[q]のコード生成部113は、オンラインコード画像更新契機が到来したか否かを判定する(S187)。
ステップS187における判定の結果が否定の場合、すなわち、オンラインコード画像更新契機が到来していない場合、制御装置11は、処理をステップS183に戻し、表示装置13におけるオンラインコード画像GX[q]の表示を継続させる。
ステップS187における判定の結果が肯定の場合、すなわち、オンラインコード画像更新契機が到来した場合、端末装置1[q]の情報送信部111は、決済装置3に対してオンライントークン要求を送信する(S189)。
そして、端末装置1[q]の制御装置11は、決済装置3から、ステップS189に係るオンライントークン要求に対する応答が無い場合(S191:N)、処理をステップS171に進める。他方、端末装置1[q]の情報取得部112は、ステップS189に係るオンライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオンライントークンKX[q]を受信した場合(S191:Y)、当該オンライントークンKX[q]を取得して(S193)、処理をステップS181に進めることで、ステップS193で取得したオンライントークンKX[q]に基づいてオンライン決済コードCX[q]を生成する。
このように、本実施形態によれば、オンライン閉塞状態の場合(S131:N)、及び、オンライントークンKX[q]の取得に失敗した場合(S133:N)等、オンライン電子決済が困難な場合に、オフライン電子決済を実行する。このため、例えば、電子決済システムがオンライン電子決済のみ実行可能な態様と比較して、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗においてサービスの提供を受けた場合に、当該サービスの対価を電子決済により支払うことが困難となる可能性を低減することができる。
また、本実施形態によれば、オフラインコード画像GY[q]を表示している状態(ステップS159参照)で、オフラインコード画像更新契機が到来した場合(S163:Y)において、再び、オンライントークンKX[q]の取得を試みる(ステップS109参照)。このため、本実施形態によれば、一次的にオンライン電子決済が困難で、オフライン電子決済を実行している場合において、オンライン電子決済への復帰が可能となる。
また、本実施形態によれば、オフライン閉塞状態の場合(S151:N)、及び、記憶装置12において有効なオフライントークンKY[q]が存在しない場合(S153:N)等、オフラインコード生成処理が困難な場合において、オンライントークンKX[q]の再度の取得を試みる(ステップS175参照)。このため、オフラインコード生成処理が困難な場合にオンライントークンKX[q]の取得を試みない態様、すなわち、オフラインコード生成処理が困難な場合にコード生成処理を実施を断念する態様と比較して、端末装置1[q]のユーザU[q]が、店舗装置5が設置された店舗においてサービスの提供を受けた場合に、当該サービスの対価を電子決済により支払うことが困難となる可能性を低減することができる。
<A.5.決済装置3の動作>
以下、図18乃至図21を参照しつつ、電子決済が実行される場合における決済装置3の動作の概要について説明する。
図18は、決済装置3においてオンライントークン生成処理が実行される場合における、決済装置3の動作の一例を示すフローチャートである。ここで、オンライントークン生成処理とは、電子決済システムSysにおいて電子決済が実行される場合に、端末装置1[q]からのオンライントークン要求に応じて、オンライントークンKX[q]を生成する処理である。
図18に示すように、決済装置3の情報受付部312は、端末装置1[q]からオンライントークン要求が送信されると、当該オンライントークン要求を受け付ける(S301)。
次に、決済装置3の制御装置31は、オンライントークンKX[q]を生成する(S303)。
また、決済装置3の制御装置31は、オンライントークン有効期間TX[q]を決定する(S305)。具体的には、制御装置31は、ステップS305において、オンライントークンKX[q]の生成時を起点とし、オンライントークンKX[q]の生成時からオンライントークン有効時間TSX(例えば、5分)だけ経過した時間を終点とする期間として、オンライントークン有効期間TX[q]を決定する。
そして、決済装置3の制御装置31は、オンライントークン払出情報DKXを更新する(S307)。具体的には、制御装置31は、ステップS307において、オンライントークン払出情報DKXに対して、新たなレコードを追加し、当該新たなレコードに対して、端末装置1[q]のユーザU[q]に対応するユーザ識別情報DID[q]と、ステップS303で生成したオンライントークンKX[q]と、ステップS305で決定したオンライントークン有効期間TX[q]とを、記憶させる。
そして、決済装置3の情報供給部311は、ステップS303で生成したオンライントークンKX[q]を、端末装置1[q]に供給し(S309)、オンライントークン生成処理を終了させる。
図19は、決済装置3においてオフライントークン生成処理が実行される場合における、決済装置3の動作の一例を示すフローチャートである。ここで、オフライントークン生成処理とは、電子決済システムSysにおいて電子決済が実行される場合に、端末装置1[q]からのオフライントークン要求に応じて、オフライントークンKY[q]を生成する処理である。
図19に示すように、決済装置3の情報受付部312は、端末装置1[q]からオフライントークン要求が送信されると、当該オフライントークン要求を受け付ける(S321)。
次に、決済装置3の制御装置31は、オフライントークンKY[q]を生成する(S323)。
また、決済装置3の制御装置31は、オフライントークン有効期間TY[q]を決定する(S325)。具体的には、制御装置31は、ステップS325において、オフライントークンKY[q]の生成時を起点とし、オフライントークンKY[q]の生成時からオフライントークン有効時間TSY(例えば、1週間)だけ経過した時間を終点とする期間として、オフライントークン有効期間TY[q]を決定する。
また、決済装置3の制御装置31は、暗号鍵KS[q]を生成する(S327)。
そして、決済装置3の制御装置31は、オフライントークン払出情報DKYを更新する(S329)。具体的には、制御装置31は、ステップS329において、オフライントークン払出情報DKYに対して、新たなレコードを追加し、当該新たなレコードに対して、端末装置1[q]のユーザU[q]に対応するユーザ識別情報DID[q]と、ステップS323で生成したオフライントークンKY[q]と、ステップS325で決定したオフライントークン有効期間TY[q]と、ステップS327で生成した暗号鍵KS[q]とを、記憶させる。
そして、決済装置3の情報供給部311は、ステップS323で生成したオフライントークンKY[q]と、ステップS327で生成した暗号鍵KS[q]とを、端末装置1[q]に供給し(S331)、オフライントークン生成処理を終了させる。
図20及び図21は、決済装置3において決済関連処理が実行される場合における、決済装置3の動作の一例を示すフローチャートである。ここで、決済関連処理とは、決済装置3においてトークンKK[q]の有効性を確認する処理と、決済装置3が実行する決済処理と、を含む処理である。決済装置3は、店舗装置5から決済情報DP[q]が供給された場合に、決済関連処理を開始させる。
図20に示すように、決済装置3の情報受付部312は、店舗装置5から決済情報DP[q]が送信されると、当該決済情報DP[q]を受け付ける(S341)。
次に、決済装置3の決済処理部313は、ステップS341で受け付けた決済情報DP[q]に含まれる決済コードCC[q]から、コード種別値VVを抽出する(S343)。
そして、決済装置3の決済処理部313は、ステップS343で抽出したコード種別値VVがオンラインコード値を示すか否かを判定する(S345)。すなわち、決済処理部313は、ステップS345において、ステップS341で受け付けた決済情報DP[q]に含まれる決済コードCC[q]が、オンライン決済コードCX[q]であるか否かを判定する。
ステップS345における判定の結果が否定の場合、すなわち、決済情報DP[q]に含まれる決済コードCC[q]がオフライン決済コードCY[q]である場合、決済装置3の決済処理部313は、処理をステップS361に進める。
ステップS345における判定の結果が肯定の場合、すなわち、決済情報DP[q]に含まれる決済コードCC[q]がオンライン決済コードCX[q]である場合、決済装置3の決済処理部313は、ステップS341で受け付けた決済情報DP[q]に含まれるオンライン決済コードCX[q]から、オンライントークンKX[q]を抽出する(S347)。
次に、決済装置3の決済処理部313は、ステップS347で抽出されたオンライントークンKX[q]が、オンライントークン払出情報DKXに存在するか否かを判定する(S349)。
ステップS349における判定の結果が否定の場合、すなわち、ステップS347で抽出されたオンライントークンKX[q]がオンライントークン払出情報DKXに存在しない場合、決済装置3の決済処理部313は、処理をステップS357に進める。
ステップS349における判定の結果が肯定の場合、すなわち、ステップS347で抽出されたオンライントークンKX[q]がオンライントークン払出情報DKXに存在する場合、決済装置3の決済処理部313は、オンライントークン払出情報DKXを参照することで、ステップS347で抽出されたオンライントークンKX[q]に対応するオンライントークン有効期間TX[q]が、現在時刻を含む期間であるか否かを判定する(S351)。
ステップS351における判定の結果が否定の場合、すなわち、ステップS347で抽出されたオンライントークンKX[q]に対応するオンライントークン有効期間TX[q]が現在時刻を含まない場合、決済装置3の決済処理部313は、処理をステップS357に進める。
ステップS351における判定の結果が肯定の場合、すなわち、ステップS347で抽出されたオンライントークンKX[q]に対応するオンライントークン有効期間TX[q]が現在時刻を含む場合、決済装置3の決済処理部313は、オンライン決済処理を実行し(S353)、ステップS347で抽出されたオンライントークンKX[q]に対応するユーザU[q]から、ステップS341で決済情報DP[q]を送付した店舗装置5が設けられた店舗に対する支払を確定させる。
そして、決済装置3の情報供給部311は、ステップS341で決済情報DP[q]を送付した店舗装置5が設けられた店舗に対して、決済情報DP[q]に基づくユーザU[q]からの支払いが確定した旨の通知である、レジ課金レスポンスを送信(S355)し、決済関連処理を終了させる。
他方、決済装置3の情報供給部311は、ステップS349における判定の結果が否定の場合、及び、ステップS351における判定の結果が否定の場合、ステップS341で決済情報DP[q]を送付した店舗装置5が設けられた店舗に対して、決済情報DP[q]に基づくユーザU[q]からの支払いが失敗した旨の通知を送信(S357)し、決済関連処理を終了させる。
図21に示すように、ステップS345における判定の結果が否定の場合、すなわち、決済情報DP[q]に含まれる決済コードCC[q]がオフライン決済コードCY[q]である場合、決済装置3の決済処理部313は、ステップS341で受け付けた決済情報DP[q]に含まれるオフライン決済コードCY[q]から、オフライントークンKY[q]を抽出する(S361)。
次に、決済装置3の決済処理部313は、ステップS361で抽出したオフライントークンKY[q]が、オフライントークン払出情報DKYに存在するか否かを判定する(S363)。
ステップS363における判定の結果が否定の場合、すなわち、ステップS361で抽出されたオフライントークンKY[q]がオフライントークン払出情報DKYに存在しない場合、決済装置3の決済処理部313は、処理をステップS381に進める。
ステップS363における判定の結果が肯定の場合、すなわち、ステップS361で抽出されたオフライントークンKY[q]がオフライントークン払出情報DKYに存在する場合、決済装置3の決済処理部313は、オフライントークン払出情報DKYを参照することで、ステップS361で抽出されたオフライントークンKY[q]に対応するオフライントークン有効期間TY[q]が、現在時刻を含む期間であるか否かを判定する(S365)。
ステップS365における判定の結果が否定の場合、すなわち、ステップS361で抽出されたオフライントークンKY[q]に対応するオフライントークン有効期間TY[q]が現在時刻を含まない場合、決済装置3の決済処理部313は、処理をステップS381に進める。
ステップS365における判定の結果が肯定の場合、すなわち、ステップS361で抽出されたオフライントークンKY[q]に対応するオフライントークン有効期間TY[q]が現在時刻を含む場合、決済装置3の決済処理部313は、ステップS341において決済情報DP[q]を受け付けた時刻よりも、更新単位時間TCの2倍の時間だけ過去の時刻(例えば、現在よりも2分前)から、ステップS341において決済情報DP[q]を受け付けた時刻までの期間(以下、「同一トークン禁止期間」と称する場合がある)において、ステップS341で受け付けた決済情報DP[q]に含まれるオフライントークンKY[q]と、同一のオフライントークンKY[q]が供給されていたか否かを判定する(S367)。
ステップS367における判定の結果が肯定の場合、すなわち、同一トークン禁止期間において、ステップS341で受け付けた決済情報DP[q]に含まれるオフライントークンKY[q]と同一のオフライントークンKY[q]を受け付けていた場合、決済装置3の決済処理部313は、処理をステップS381に進める。
ステップS367における判定の結果が否定の場合、すなわち、同一トークン禁止期間において、ステップS341で受け付けた決済情報DP[q]に含まれるオフライントークンKY[q]と同一のオフライントークンKY[q]を受け付けていない場合、決済装置3の決済処理部313は、ステップS341で受け付けた決済情報DP[q]に含まれるオフライン決済コードCY[q]から、時間暗号コードTT[q]を抽出する(S369)。
また、決済装置3の決済処理部313は、オフライントークン払出情報DKYを参照することで、ステップS361で抽出されたオフライントークンKY[q]に対応する暗号鍵KS[q]を特定する(S371)。
次に、決済装置3の決済処理部313は、ステップS371で特定された暗号鍵KS[q]により、サーバ時刻値AMと、将来時刻値AMfと、過去時刻値AMpとを、暗号化する(S373)。
ここで、サーバ時刻値AMとは、決済装置3において管理される現在時刻であるサーバ時刻TMに基づく値であり、更新単位時間TCの周期で更新される値である。具体的には、本実施形態では、一例として、サーバ時刻値AMが、サーバ時刻TMを「分」のオーダーで表した値である場合を想定する。例えば、本実施形態において、サーバ時刻TMが「18時25分37秒」である場合、サーバ時刻値AMは、サーバ時刻TMから「37秒」を削除した「1825」としてもよい。よって、仮に、サーバ時刻TMと端末時刻TGとが同一時刻の場合、サーバ時刻値AMは端末時刻値AGと同一の値となる。但し、実際には、サーバ時刻TMと端末時刻TGとの間に多少の誤差が生じる場合がある。この場合、サーバ時刻値AMと端末時刻値AGとは異なる値となる場合もある。
また、将来時刻値AMfとは、サーバ時刻TMよりも更新単位時間TCだけ将来の時刻に基づく値である。具体的には、本実施形態では、一例として、将来時刻値AMfが、サーバ時刻TMよりも更新単位時間TC(例えば、1分)だけ将来の時刻を「分」のオーダーで表した値である場合を想定する。例えば、サーバ時刻TMが「18時25分37秒」である場合、将来時刻値AMfは、サーバ時刻TMよりも「1分」だけ将来の時刻「18時26分37秒」から、「37秒」を削除した「1826」としてもよい。
また、過去時刻値AMpとは、サーバ時刻TMよりも更新単位時間TCだけ過去の時刻に基づく値である。具体的には、本実施形態では、一例として、過去時刻値AMpが、サーバ時刻TMよりも更新単位時間TC(例えば、1分)だけ過去の時刻を「分」のオーダーで表した値である場合を想定する。例えば、サーバ時刻TMが「18時25分37秒」である場合、過去時刻値AMpは、サーバ時刻TMよりも「1分」だけ過去の時刻「18時24分37秒」から、「37秒」を削除した「1824」としてもよい。
なお、以下では、サーバ時刻値AMを暗号鍵KS[q]により暗号化した値を、サーバ時刻暗号コードCM(「第1時刻コード」の一例)と称し、将来時刻値AMfを暗号鍵KS[q]により暗号化した値を、将来時刻暗号コードCMf(「第2時刻コード」の一例)と称し、過去時刻値AMpを暗号鍵KS[q]により暗号化した値を、過去時刻暗号コードCMp(「第3時刻コード」の一例)と称する。また、以下では、サーバ時刻暗号コードCM、将来時刻暗号コードCMf、及び、過去時刻暗号コードCMpを、時刻暗号コードCMM(「時刻コード」の一例)と総称することがある。すなわち、決済処理部313は、ステップS373において、暗号鍵KS[q]によりサーバ時刻値AMを暗号化したサーバ時刻暗号コードCMと、暗号鍵KS[q]により将来時刻値AMfを暗号化した将来時刻暗号コードCMfと、暗号鍵KS[q]により過去時刻値AMpを暗号化した過去時刻暗号コードCMpとの、3個の時刻暗号コードCMMを生成する。
次に、決済装置3の決済処理部313は、ステップS373で生成された3個の時刻暗号コードCMMのうち、何れかの時刻暗号コードCMMと、ステップS369において抽出された時間暗号コードTT[q]とが一致するか否かを判定する(S375)。
ステップS375における判定の結果が肯定の場合、すなわち、ステップS373で生成された時刻暗号コードCMMとステップS369で抽出された時間暗号コードTT[q]とが一致する場合、決済装置3の決済処理部313は、オフライン決済処理を実行し(S377)、ステップS361で抽出されたオフライントークンKY[q]に対応するユーザU[q]から、ステップS341で決済情報DP[q]を送付した店舗装置5が設けられた店舗に対する支払を確定させる。
そして、決済装置3の情報供給部311は、ステップS341で決済情報DP[q]を送付した店舗装置5が設けられた店舗に対して、決済情報DP[q]に基づくユーザU[q]からの支払いが確定した旨の通知である、レジ課金レスポンスを送信(S379)し、決済関連処理を終了させる。
他方、決済装置3の情報供給部311は、ステップS363における判定の結果が否定の場合、ステップS365における判定の結果が否定の場合、ステップS367における判定の結果が肯定の場合、及び、ステップS375における判定の結果が否定の場合、ステップS341で決済情報DP[q]を送付した店舗装置5が設けられた店舗に対して、決済情報DP[q]に基づくユーザU[q]からの支払いが失敗した旨の通知を送信(S381)し、決済関連処理を終了させる。
以上のように、本実施形態では、決済装置3が、オンライン決済処理とオフライン決済処理との、2種類の決済処理を実行可能である。このため、例えば、決済装置3がオンライン決済処理のみを実行可能な態様と比較して、電子決済を利用するユーザU[q]の利便性を向上させることができる。
また、本実施形態において、決済装置3は、更新単位時間TCの2倍の時間長を有する同一トークン禁止期間において、同一のオフライントークンKY[q]を含む2個以上の決済情報DP[q]が供給された場合に、2回目以降に供給された決済情報DP[q]に基づくオフライン決済処理を制限する。このため、本実施形態によれば、オフライントークンKY[q]を用いた不正な決済を制限することが可能となり、オフライントークンKY[q]が漏洩した場合等におけるセキュリティ上のリスクを低減できる。
また、本実施形態において、決済装置3は、決済関連処理において、サーバ時刻値AMに加えて、将来時刻値AMfと過去時刻値AMpとを用いて、オフライン決済コードCY[q]に含まれる時間暗号コードTT[q]の正当性を検証する。このため、本実施形態によれば、仮に、端末装置1[q]の管理する端末時刻TGと、決済装置3の管理するサーバ時刻TMとの間に誤差が生じている場合においても、端末装置1[q]のユーザU[q]によるオフライン電子決済の利用が可能となる。これにより、本実施形態によれば、例えば、決済関連処理において、サーバ時刻値AMのみに基づいて時間暗号コードTT[q]の正当性を検証する態様と比較して、ユーザU[q]が電子決済を利用できる可能性を向上させることができ、電子決済を利用するユーザU[q]の利便性を向上させることができる。
<B.第2実施形態>
以下、図22乃至図27を参照しつつ、本発明の第2実施形態を説明する。なお、以下に例示する各形態において作用や機能が第1実施形態と同様である要素については、第1実施形態の説明で使用した符号を流用して各々の詳細な説明を適宜に省略する。
第2実施形態に係る電子決済システムSysは、第1実施形態に係る電子決済システムSysと同様の構成を有する。なお、第1実施形態に係る電子決済システムSysでは、オンライン電子決済を行う場合に、端末装置1[q]において、オフライントークンKY[q]の取得後に、オンライン決済コードCX[q]の生成とオンラインコード画像GX[q]の表示とを実施していたが、第2実施形態に係る電子決済システムSysでは、オンライン電子決済を行う場合に、端末装置1[q]において、オンライン決済コードCX[q]の生成とオンラインコード画像GX[q]の表示を、オフライントークンKY[q]の取得よりも優先して実行する。
図22は、第2実施形態に係る電子決済システムSysがオンライン電子決済を実行する場合における、電子決済システムSysの動作の一例をを示すシーケンスチャートである。
上述の通り、図4に示す第1実施形態に係るオンライン電子決済のシーケンスチャートでは、電子決済システムSysにおいて、端末装置1[q]によるオンライントークンKX[q]の取得に係るステップS21~S24の処理、及び、端末装置1[q]によるオフライントークンKY[q]の取得に係るステップS31~S35の処理の後に、端末装置1[q]によるオンラインコード画像GX[q]の表示に係るステップS41~S43の処理が実行された。
これに対して、図22に示す第2実施形態に係るオンライン電子決済のシーケンスチャートでは、電子決済システムSysにおいて、端末装置1[q]によるオンライントークンKX[q]の取得に係るステップS21~S24の処理、及び、端末装置1[q]によるオンラインコード画像GX[q]の表示に係るステップS41~S43の処理の後に、端末装置1[q]によるオフライントークンKY[q]の取得に係るステップS31~S35の処理が実行される点において、第1実施形態と相違する。
すなわち、第2実施形態では、オフライントークンKY[q]の取得よりも、オンラインコード画像GX[q]の表示を優先的に実行する。このため、第2実施形態によれば、オフライントークンKY[q]の取得後にオンラインコード画像GX[q]を表示する態様と比較して、オンラインコード画像GX[q]が表示されるまでの時間を短縮し、オンライン電子決済の迅速な実行が可能となる。
なお、第2実施形態において、トークン応答待機期間TWは、例えば、決済アプリの起動から決済アプリの終了までの期間であってもよい。または、トークン応答待機期間TWは、例えば、決済アプリの起動からトークン応答待機時間TSWが経過するまでの期間とオンラインコード画像GX[q]の表示の開始若しくは表示の終了から所定時間が経過するまでの期間とを含む期間であってもよい。
図23乃至図27は、第2実施形態に係る電子決済システムSysにおいて電子決済が実行される場合における、端末装置1[q]の動作の一例を示すフローチャートである。図23乃至図27に示すフローチャートは、端末装置1[q]において決済アプリが起動されたときに開始される。なお、図23乃至図27に示すフローチャートは、ステップS115~S125の処理が存在しない点と、ステップS201~S231の処理が存在する点と、において、図13乃至図16に示す第1実施形態に係るフローチャートと相違する。
図23に示すように、端末装置1[q]において決済アプリが起動されると、端末装置1[q]の制御装置11は、上述のステップS101~S113の処理を実行する。
具体的には、端末装置1[q]の制御装置11は、まず、端末装置1[q]の通信状態がオンライン状態であるか否かを判定する(S101)。ステップS101における判定の結果が否定の場合、端末装置1[q]の制御装置11は、処理をステップS151に進める。ステップS101における判定の結果が肯定の場合に、端末装置1[q]の情報送信部111は、決済装置3に対して、オンライン閉塞情報要求を送信する(S103)。そして、オンライン閉塞情報DHXを受信した場合(S105:Y)、端末装置1[q]の情報取得部112は、当該オンライン閉塞情報DHXを取得する(S107)。また、端末装置1[q]の情報送信部111は、決済装置3に対して、オンライントークン要求を送信する(S109)。そして、オンライントークンKX[q]を受信した場合(S111:Y)、端末装置1[q]の情報取得部112は、当該オンライントークンKX[q]を取得する(S113)。
次に、端末装置1[q]の制御装置11は、上述のステップS131~S133の処理を実行する。
具体的には、端末装置1[q]の制御装置11は、端末装置1[q]のコード生成部113は、決済装置3がオンライン閉塞状態ではないか否かを判定する(S131)。ステップS131における判定の結果が否定の場合、端末装置1[q]の制御装置11は、処理をステップS221に進める。ステップS131における判定の結果が肯定の場合であっても、情報取得部112がステップS113においてオンライントークンKX[q]を取得していない場合(S133:N)には、端末装置1[q]の制御装置11は、処理をステップS221に進める。
図24に示すように、端末装置1[q]の制御装置11は、上述のステップS135~S139の処理を実行する。
具体的には、ステップS131における判定の結果が肯定の場合であって、情報取得部112がステップS113においてオンライントークンKX[q]を取得した場合(S133:Y)において、端末装置1[q]のコード生成部113は、オンライン決済コードCX[q]を生成する(S135)。そして、端末装置1[q]の表示制御部114は、表示装置13にオンラインコード画像GX[q]を表示させる(S137)。次に、端末装置1[q]の制御装置11は、終了操作が実行されたか否かを判定する(S139)。
次に、端末装置1[q]の制御装置11は、ステップS139における判定の結果が肯定の場合、ステップS201~S211の処理を実行する。
具体的には、端末装置1[q]の情報送信部111は、決済装置3に対してオフライン閉塞情報要求を送信する(S201)。なお、ステップS201の処理は、上述のステップS31の処理に相当する。そして、端末装置1[q]の制御装置11は、決済装置3から、オフライン閉塞情報要求に対する応答が無い場合(S203:N)、処理をステップS207に進める。他方、端末装置1[q]の情報取得部112は、オフライン閉塞情報要求に対する応答として、通信装置15が決済装置3から送信されたオフライン閉塞情報DHYを受信した場合(S203:Y)、当該オフライン閉塞情報DHYを取得する(S205)。また、端末装置1[q]の情報送信部111は、決済装置3に対してオフライントークン要求を送信する(S207)。なお、ステップS207の処理は、上述のステップS33の処理に相当する。そして、端末装置1[q]の制御装置11は、決済装置3から、オフライントークン要求に対する応答が無い場合(S209:N)、図23乃至図27に示すフローチャートに係る一連の処理を終了させる。他方、端末装置1[q]の情報取得部112は、オフライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオフライントークンKY[q]及び暗号鍵KS[q]を受信した場合(S209:Y)、当該オフライントークンKY[q]及び暗号鍵KS[q]を記憶装置12に記憶させ(S211)、図23乃至図27に示すフローチャートに係る一連の処理を終了させる。
また、端末装置1[q]の制御装置11は、ステップS139における判定の結果が否定の場合、上述のステップS141~S147の処理を実行する。
具体的には、端末装置1[q]のコード生成部113は、オンラインコード画像更新契機が到来したか否かを判定する(S141)。ステップS141における判定の結果が否定の場合、制御装置11は、処理をステップS137に戻し、表示装置13におけるオンラインコード画像GX[q]の表示を継続させる。ステップS141における判定の結果が肯定の場合、端末装置1[q]の情報送信部111は、決済装置3に対してオンライントークン要求を送信する(S143)。そして、端末装置1[q]の制御装置11は、決済装置3から、ステップS143に係るオンライントークン要求に対する応答が無い場合(S145:N)、処理をステップS151に進める。他方、端末装置1[q]の情報取得部112は、ステップS143に係るオンライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオンライントークンKX[q]を受信した場合(S145:Y)、当該オンライントークンKX[q]を取得して(S147)、処理をステップS135に進め、ステップS135において、ステップS147で取得したオンライントークンKX[q]に基づいて、オンライン決済コードCX[q]を生成する。
図25に示すように、端末装置1[q]の制御装置11は、ステップS131における判定の結果が否定の場合、または、ステップS133における判定の結果が否定の場合、ステップS221~S231の処理を実行する。
具体的には、端末装置1[q]の情報送信部111は、決済装置3に対してオフライン閉塞情報要求を送信する(S221)。そして、端末装置1[q]の制御装置11は、決済装置3から、オフライン閉塞情報要求に対する応答が無い場合(S223:N)、処理をステップS227に進める。他方、端末装置1[q]の情報取得部112は、オフライン閉塞情報要求に対する応答として、通信装置15が決済装置3から送信されたオフライン閉塞情報DHYを受信した場合(S223:Y)、当該オフライン閉塞情報DHYを取得する(S225)。また、端末装置1[q]の情報送信部111は、決済装置3に対してオフライントークン要求を送信する(S227)。そして、端末装置1[q]の制御装置11は、決済装置3から、オフライントークン要求に対する応答が無い場合(S229:N)、処理をステップS151に進める。他方、端末装置1[q]の情報取得部112は、オフライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオフライントークンKY[q]及び暗号鍵KS[q]を受信した場合(S229:Y)、当該オフライントークンKY[q]及び暗号鍵KS[q]を記憶装置12に記憶させる(S231)。
次に、端末装置1[q]の制御装置11は、上述のステップS151~S155の処理を実行する。
具体的には、端末装置1[q]のコード生成部113は、決済装置3がオフライン閉塞状態ではないか否かを判定する(S151)。ステップS151における判定の結果が否定の場合、端末装置1[q]の制御装置11は、処理をステップS171に進める。ステップS151における判定の結果が肯定の場合、端末装置1[q]のコード生成部113は、記憶装置12に記憶されている最新のオフライントークンKY[q][M]が、有効であるか否かを判定する(S153)。ステップS153における判定の結果が否定の場合、端末装置1[q]の制御装置11は、処理をステップS171に進める。ステップS153における判定の結果が肯定の場合、端末装置1[q]の表示制御部114は、表示装置13に対して、オフライン決済説明画面G3を表示させ(S155)、処理をステップS157に進める。
図26に示すように、端末装置1[q]の制御装置11は、ステップS157~S169の処理を実行する。
具体的には、端末装置1[q]のコード生成部113は、記憶装置12に記憶されたオフライントークンKY[q][M]に基づいて、オフライン決済コードCY[q]を生成する(S157)。なお、ステップS157の処理は、上述のステップS53の処理に相当する。そして、端末装置1[q]の表示制御部114は、生成されたオフライン決済コードCY[q]に基づいてオフラインコード画像GY[q]を表示させる(S159)。なお、ステップS159の処理は、上述のステップS54の処理に相当する。次に、端末装置1[q]の制御装置11は、終了操作が実行されたか否かを判定する(S161)。ステップS161における判定の結果が肯定の場合、端末装置1[q]の制御装置11は、図23乃至図27に示すフローチャートに係る一連の処理を終了させる。ステップS161における判定の結果が否定の場合、端末装置1[q]のコード生成部113は、オフラインコード画像更新契機が到来したか否かを判定する(S163)。ステップS163における判定の結果が肯定の場合、端末装置1[q]の制御装置11は、処理をステップS101に進め、図23乃至図27に示すフローチャートに係る一連の処理を、再度実行する。ステップS163における判定の結果が否定の場合、端末装置1[q]のコード生成部113は、端末時刻値AGの更新に起因する時間暗号コードTT[q]の更新契機が到来したか否かを判定する(S165)。ステップS165における判定の結果が否定の場合、端末装置1[q]の制御装置11は、処理をステップS159に戻し、表示装置13におけるオフラインコード画像GY[q]の表示を継続させる。ステップS165における判定の結果が肯定の場合、端末装置1[q]のコード生成部113は、更新後の端末時刻値AGを暗号鍵KS[q][M]により暗号化することで、時間暗号コードTT[q]を更新する(S167)。そして、端末装置1[q]のコード生成部113は、更新後の時間暗号コードTT[q]により、オフライン決済コードCY[q]を更新し(S169)、処理をステップS159に進めることで、表示装置13において更新後のオフラインコード画像GY[q]を表示させる。
図27に示すように、端末装置1[q]の制御装置11は、ステップS151における判定の結果が否定の場合、または、ステップS153における判定の結果が否定の場合、ステップS171~S193の処理を実行する。
具体的には、端末装置1[q]の表示制御部114は、表示装置13に対してオンライン決済待受画面を表示させる(S171)。そして、端末装置1[q]の情報送信部111は、端末装置1[q]と決済装置3とが通信可能となるまで待機する(S173)。その後、端末装置1[q]と決済装置3とが通信可能となった場合、端末装置1[q]の情報送信部111は、決済装置3に対して、オンライントークン要求を送信する(S175)。そして、端末装置1[q]の情報取得部112は、通信装置15が決済装置3から送信されたオンライントークンKX[q]を受信した場合(S177:Y)、当該オンライントークンKX[q]を取得する(S179)。次に、端末装置1[q]のコード生成部113は、取得したオンライントークンKX[q]に基づいてオンライン決済コードCX[q]を生成する(S181)。そして、端末装置1[q]の表示制御部114は、生成したオンライン決済コードCX[q]に基づいて、表示装置13にオンラインコード画像GX[q]を表示させる(S183)。次に、端末装置1[q]の制御装置11は、終了操作が実行されたか否かを判定する(S185)。ステップS185における判定の結果が肯定の場合、端末装置1[q]の制御装置11は、図23乃至図27に示すフローチャートに係る一連の処理を終了させる。ステップS185における判定の結果が否定の場合、端末装置1[q]のコード生成部113は、オンラインコード画像更新契機が到来したか否かを判定する(S187)。ステップS187における判定の結果が否定の場合、制御装置11は、処理をステップS183に戻し、表示装置13におけるオンラインコード画像GX[q]の表示を継続させる。ステップS187における判定の結果が肯定の場合、端末装置1[q]の情報送信部111は、決済装置3に対して、オンライントークン要求を送信する(S189)。そして、端末装置1[q]の制御装置11は、決済装置3から、ステップS189に係るオンライントークン要求に対する応答が無い場合(S191:N)、処理をステップS171に進める。他方、端末装置1[q]の情報取得部112は、ステップS189に係るオンライントークン要求に対する応答として、通信装置15が決済装置3から送信されたオンライントークンKX[q]を受信した場合(S191:Y)、当該オンライントークンKX[q]を取得して(S193)、処理をステップS181に進めることで、ステップS193で取得したオンライントークンKX[q]に基づいてオンライン決済コードCX[q]を生成する。
以上のように、第2実施形態において、端末装置1[q]は、オフライントークンKY[q]の取得(ステップS201~S211)よりも、オンライントークンKX[q]の取得(ステップS101~S113)と、オンラインコード画像GX[q]の表示(ステップS131~S137)とを、優先的に実行する。このため、第2実施形態によれば、オフライントークンKY[q]の取得後にオンラインコード画像GX[q]を表示する態様と比較して、オンラインコード画像GX[q]が表示されるまでの時間を短縮し、オンライン電子決済の迅速な実行が可能となる。
<C.変形例>
以上の各形態は多様に変形され得る。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様は、相互に矛盾しない範囲内で適宜に併合され得る。なお、以下に例示する変形例において作用や機能が実施形態と同等である要素については、以上の説明で参照した符号を流用して各々の詳細な説明を適宜に省略する。
<C.1.変形例1>
上述した第1実施形態及び第2実施形態では、端末装置1[q]が、電子決済の際に、オンライントークンKX[q]を取得した後に、オフライントークンKY[q]を取得する態様を例示して説明したが、本発明はこのような態様に限定されるものではない。端末装置1[q]は、電子決済の際に、オフライントークンKY[q]を取得した後に、オンライントークンKX[q]を取得してもよい。
図28は、変形例1に係る電子決済システムSysがオンライン電子決済を実行する場合における、電子決済システムSysの動作の一例をを示すシーケンスチャートである。
図28に示すように、本変形例に係るオンライン電子決済のシーケンスチャートでは、電子決済システムSysにおいて、端末装置1[q]によるオフライントークンKY[q]の取得に係るステップS31~S34の処理の後に、端末装置1[q]によるオンライントークンKX[q]の取得に係るステップS21~S24の処理が実行される点において、図4に示す第1実施形態に係るオンライン電子決済のシーケンスチャートと相違する。
本変形例によれば、電子決済が行われるタイミングにおいて、決済装置3からオフライントークンKY[q]を取得してオフライントークンKY[q]を記憶装置12に記憶させる。このため、本実施形態によれば、通信不良等に起因してオンライン電子決済が困難な場合に、オフライン電子決済までもが実行困難となる可能性を低減することができる。
<C.2.変形例2>
上述した第1実施形態及び第2実施形態並びに変形例1では、端末装置1[q]が、電子決済の際に、オンライントークンKX[q]の取得と、オフライントークンKY[q]の取得とを異なるタイミングで実行する態様を例示して説明したが、本発明はこのような態様に限定されるものではない。端末装置1[q]は、電子決済の際に、オンライントークンKX[q]及びオフライントークンKY[q]を同時に取得してもよい。
図29は、変形例2に係る電子決済システムSysがオンライン電子決済を実行する場合における、電子決済システムSysの動作の一例をを示すシーケンスチャートである。
図29に示すように、本変形例に係るオンライン電子決済のシーケンスチャートでは、電子決済システムSysにおいて、ステップS21~S24及びステップS31~S34の処理の代わりに、ステップS71~S74の処理が実行される点において、図4に示す第1実施形態に係るオンライン電子決済のシーケンスチャートと相違する。
具体的には、図29に示すように、本変形例において、端末装置1[q]の制御装置11は、ステップS12の処理を実行した後に、決済装置3に対して閉塞情報要求を送信する(S71)。ここで、閉塞情報要求とは、オンライン閉塞情報DHX及びオフライン閉塞情報DHYを要求する旨の電文である。
そして、決済装置3の制御装置31は、ステップS71において端末装置1[q]から供給された閉塞情報要求に対する応答として、端末装置1[q]に対してオンライン閉塞情報DHX及びオフライン閉塞情報DHYを供給する(S72)。
次に、端末装置1[q]の制御装置11は、決済装置3に対して、トークン要求を送信する(S73)。ここで、トークン要求とは、オンライントークンKX[q]及びオフライントークンKY[q]を要求する旨の電文である。
そして、決済装置3の制御装置31は、ステップS73において端末装置1[q]から供給されたトークン要求に対する応答として、端末装置1[q]に対してオンライントークンKX[q]とオフライントークンKY[q]と暗号鍵KS[q]とを供給する(S74)。
その後、電子決済システムSysは、ステップS35、ステップS41~S44、及び、ステップS61~S65の処理を実行する。
本変形例によれば、電子決済が行われるタイミングにおいて、決済装置3からオフライントークンKY[q]を取得してオフライントークンKY[q]を記憶装置12に記憶させる。このため、本実施形態によれば、通信不良等に起因してオンライン電子決済が困難な場合に、オフライン電子決済までもが実行困難となる可能性を低減することができる。
<C.3.変形例3>
上述した第1実施形態及び第2実施形態並びに変形例1及び変形例2では、端末装置1[q]が、電子決済の際に、オンライントークン要求(若しくは、オフライントークン要求、または、トークン要求)とは別個に、オンライン閉塞情報要求(若しくは、オフライン閉塞情報要求、または、閉塞情報要求)を、決済装置3に送信する場合を例示して説明したが、本発明はこのような態様に限定されるものではない。端末装置1[q]は、電子決済の際に、オンライントークン要求とオンライン閉塞情報要求とを、同一の電文として送信してもよい。
図30は、変形例3に係る電子決済システムSysがオンライン電子決済を実行する場合における、電子決済システムSysの動作の一例をを示すシーケンスチャートである。
図30に示すように、本変形例に係るオンライン電子決済のシーケンスチャートでは、電子決済システムSysにおいて、ステップS21、S23、S31、及び、S33の処理の代わりにステップS81の処理が実行される点と、ステップS14及びS16の処理が実行される点と、において、図4に示す第1実施形態に係るオンライン電子決済のシーケンスチャートと相違する。
具体的には、図30に示すように、本変形例において、端末装置1[q]の制御装置11は、ステップS12の処理を実行した後に、決済装置3に対して決済アプリ起動通知を送信する(S81)。ここで、決済アプリ起動通知とは、上述の通り、端末装置1[q]において決済アプリが起動された旨の通知である。
そして、決済装置3の制御装置31は、ステップS81において端末装置1[q]から供給された決済アプリ起動通知に対する応答として、端末装置1[q]に対する設定情報DSの供給(S14)と、事業者識別トークンKZの供給(S16)と、オンライン閉塞情報DHXの供給(S22)と、オンライントークンKX[q]の供給(S24)と、オフライン閉塞情報DHYの供給(S32)と、オフライントークンKY[q]及び暗号鍵KS[q]の供給(S34)と、を実行する。
その後、電子決済システムSysは、ステップS35、ステップS41~S44、及び、ステップS61~S65の処理を実行する。
本変形例によれば、端末装置1[q]から決済装置3に送信される決済アプリ起動通知に応じて、決済装置3から端末装置1[q]にオンライントークンKX[q]及びオフライントークンKY[q]を含む各種情報が供給される。このため、本変形例によれば、例えば、端末装置1[q]がオンライントークン要求とは別個にオンライン閉塞情報要求を決済装置3に送信する態様と比較して、端末装置1[q]における制御を簡素化することができる。
<C.4.変形例4>
上述した第1実施形態及び第2実施形態並びに変形例1乃至変形例3では、トークン応答待機時間TSWと、オンライントークン有効時間TSXと、オフライントークン有効時間TSYと、更新単位時間TCとが、設定情報DSとして、決済装置3から通知される態様を例示して説明したが、本発明はこのような態様に限定されるものではない。トークン応答待機時間TSWと、オンライントークン有効時間TSXと、オフライントークン有効時間TSYと、更新単位時間TCとの、一部または全部は、端末装置1[q]の記憶装置12に、固定値として記憶されていてもよい。
<C.5.変形例5>
上述した第1実施形態及び第2実施形態並びに変形例1乃至変形例4では、閉塞情報DHが、決済装置3が決済処理を実行可能か否かを示す情報である場合を例示して説明したが、本発明はこのような態様に限定されるものではない。閉塞情報DHは、決済装置3が各支払方法による決済処理を実行可能か否かを示す情報であってもよい。
具体的には、本変形例において、オンライン閉塞情報DHXは、電話料金合算払いによるオンライン決済処理が実行可能か否かを示すオンライン合算払い閉塞情報DHX1と、プリペイド残高払いによるオンライン決済処理が実行可能か否かを示すオンライン残高払い閉塞情報DHX2と、クレジットカード払いによるオンライン決済処理が実行可能か否かを示すオンラインカード払い閉塞情報DHX3とを含む。ここで、オンライン合算払い閉塞情報DHX1は、電話料金合算払いによるオンライン決済処理を実行するための決済装置3の機能が閉塞せずに稼働しているか否かを示す情報であってもよい。また、オンライン残高払い閉塞情報DHX2は、プリペイド残高払いによるオンライン決済処理を実行するための決済装置3の機能が閉塞せずに稼働しているか否かを示す情報であってもよい。また、オンラインカード払い閉塞情報DHX3は、クレジットカード払いによるオンライン決済処理を実行するための決済装置3の機能が閉塞せずに稼働しているか否かを示す情報であってもよい。なお、以下では、オンライン合算払い閉塞情報DHX1と、オンライン残高払い閉塞情報DHX2と、オンラインカード払い閉塞情報DHX3とを、個別オンライン閉塞情報DHX0と総称する場合がある。
また、本変形例において、オフライン閉塞情報DHYは、電話料金合算払いによるオフライン決済処理が実行可能か否かを示すオフライン合算払い閉塞情報DHY1と、プリペイド残高払いによるオフライン決済処理が実行可能か否かを示すオフライン残高払い閉塞情報DHY2と、クレジットカード払いによるオフライン決済処理が実行可能か否かを示すオフラインカード払い閉塞情報DHY3とを含む。ここで、オフライン合算払い閉塞情報DHY1は、電話料金合算払いによるオフライン決済処理を実行するための決済装置3の機能が閉塞せずに稼働しているか否かを示す情報であってもよい。また、オフライン残高払い閉塞情報DHY2は、プリペイド残高払いによるオフライン決済処理を実行するための決済装置3の機能が閉塞せずに稼働しているか否かを示す情報であってもよい。また、オフラインカード払い閉塞情報DHY3は、クレジットカード払いによるオフライン決済処理を実行するための決済装置3の機能が閉塞せずに稼働しているか否かを示す情報であってもよい。なお、以下では、オフライン合算払い閉塞情報DHY1と、オフライン残高払い閉塞情報DHY2と、オフラインカード払い閉塞情報DHY3とを、個別オフライン閉塞情報DHY0と総称する場合がある。
そして、本変形例において、決済装置3は、端末装置1[q]からのオンライン閉塞情報要求に応じて、オンライン閉塞情報DHXに含まれる3個の個別オンライン閉塞情報DHX0のうち、端末装置1[q]のユーザU[q]の選択している支払方法に対応する個別オンライン閉塞情報DHX0を、端末装置1[q]に供給してもよい。
また、本変形例において、決済装置3は、端末装置1[q]からのオフライン閉塞情報要求に応じて、オフライン閉塞情報DHYに含まれる3個の個別オフライン閉塞情報DHY0のうち、端末装置1[q]のユーザU[q]の選択している支払方法に対応する個別オフライン閉塞情報DHY0を、端末装置1[q]に供給してもよい。また、本変形例において、決済装置3は、端末装置1[q]からのオフライン閉塞情報要求に応じて、オフライン閉塞情報DHYに含まれる3個の個別オフライン閉塞情報DHY0を、端末装置1[q]に供給してもよい。
また、上述した第1実施形態及び第2実施形態並びに変形例1乃至変形例4において、決済装置3は端末装置1[q]に対して、端末装置1[q]のユーザU[q]の選択している支払方法に関わらず、複数の支払方法に共通したオンライントークンKX[q]と、複数の支払方法に共通したオフライントークンKY[q]とを供給する態様を例示して説明したが、本発明はこのような態様に限定されるものではない。例えば、決済装置3は端末装置1[q]に対して、端末装置1[q]のユーザU[q]が選択可能な1以上の支払方法と1対1に対応する、1以上のオフライントークンKY[q]を供給してもよい。
具体的には、本変形例において、決済装置3は、端末装置1[q]からのオフライントークン要求に応じて、端末装置1[q]に対して、電話料金合算払いに対応するオフライントークンKY[q]である合算払い用オフライントークンKY1[q]と、プリペイド残高払いに対応するオフライントークンKY[q]である残高払い用オフライントークンKY2[q]と、クレジットカード払いに対応するオフライントークンKY[q]であるカード払い用オフライントークンKY3[q]と、を供給する。なお、以下では、合算払い用オフライントークンKY1[q]と、残高払い用オフライントークンKY2[q]と、カード払い用オフライントークンKY3[q]とを、個別オフライントークンKY0[q]と総称する場合がある。すなわち、本変形例において、決済装置3は、端末装置1[q]からのオフライントークン要求に応じて、端末装置1[q]に対して、端末装置1[q]のユーザU[q]が選択可能な3種類の支払方法と1対1に対応する、3個の個別オフライントークンKY0[q]を供給する。
そして、本変形例において、端末装置1[q]のコード生成部113は、端末装置1[q]のユーザU[q]の選択している支払方法に対応する個別オフライントークンKY0[q]に基づいてオフライン決済コードCY[q]を生成する。具体的には、本変形例において、端末装置1[q]のコード生成部113は、端末装置1[q]のユーザU[q]の選択している支払方法が電話料金合算払いである場合に、合算払い用オフライントークンKY1[q]に基づいてオフライン決済コードCY[q]を生成し、端末装置1[q]のユーザU[q]の選択している支払方法がプリペイド残高払いである場合に、残高払い用オフライントークンKY2[q]に基づいてオフライン決済コードCY[q]を生成し、端末装置1[q]のユーザU[q]の選択している支払方法がクレジットカード払いである場合に、カード払い用オフライントークンKY3[q]に基づいてオフライン決済コードCY[q]を生成する。
また、本変形例において、端末装置1[q]の表示制御部114は、端末装置1[q]のユーザU[q]の選択している支払方法に対応する個別オフライン閉塞情報DHY0に基づいて、表示装置13に対して、端末装置1[q]のユーザU[q]の選択している支払方法に対応する個別オフライントークンKY0[q]に基づくオフラインコード画像GY[q]を表示するか否かを決定する。具体的には、本変形例において、端末装置1[q]のユーザU[q]の選択している支払方法が電話料金合算払いである場合に、オフライン合算払い閉塞情報DHY1に基づいて、合算払い用オフライントークンKY1[q]に基づくオフラインコード画像GY[q]の表示の有無を決定し、端末装置1[q]のユーザU[q]の選択している支払方法がプリペイド残高払いである場合に、オフライン残高払い閉塞情報DHY2に基づいて、残高払い用オフライントークンKY2[q]に基づくオフラインコード画像GY[q]の表示の有無を決定し、端末装置1[q]のユーザU[q]の選択している支払方法がクレジットカード払いである場合に、オフラインカード払い閉塞情報DHY3に基づいて、カード払い用オフライントークンKY3[q]に基づくオフラインコード画像GY[q]の表示の有無を決定する。
なお、本変形例において、決済装置3は端末装置1[q]に対して、端末装置1[q]のユーザU[q]が選択可能な3種類の支払方法と1対1に対応する、3個のオンライントークンKX[q]を供給してもよい。また、本変形例において、決済装置3は端末装置1[q]に対して、端末装置1[q]のユーザU[q]が選択可能な3種類の支払方法と1対1に対応する、3個のオンライントークンKX[q]のうち、端末装置1[q]のユーザU[q]が選択している一の支払方法に対応する、一のオンライントークンKX[q]を供給してもよい。
このように、本変形例によれば、端末装置1[q]のユーザU[q]の選択した支払方法毎の閉塞状況に応じて、オフラインコード画像GY[q]の表示有無をきめ細やかに制御できるため、支払方法を考慮しない態様と比較して、ユーザU[q]の手間の削減と、ユーザU[q]の利便性の向上とが可能となる。
<C.6.変形例6>
上述した第1実施形態及び第2実施形態並びに変形例1乃至変形例5では、決済装置3から閉塞情報DHが供給される場合を例示して説明したが、本発明はこのような態様に限定されるものではない。決済装置3から端末装置1[q]に対して閉塞情報DHを供給しない態様であってもよい。
図31は、変形例6に係る電子決済システムSysがオンライン電子決済を実行する場合における、電子決済システムSysの動作の一例をを示すシーケンスチャートである。
図31に示すように、本変形例に係るオンライン電子決済のシーケンスチャートでは、電子決済システムSysにおいて、閉塞情報DHの授受に係るステップS21、S22、S31、S32、及び、S41の処理が存在しない点において、図4に示す第1実施形態に係るオンライン電子決済のシーケンスチャートと相違する。
本変形例によれば、決済装置3から端末装置1[q]に対してオンライン閉塞情報DHXを供給する処理と、決済装置3から端末装置1[q]に対してオフライン閉塞情報DHYを供給する処理とを実施しないため、決済装置3から端末装置1[q]に対してオンライン閉塞情報DHX及びオフライン閉塞情報DHYを供給する態様と比較して、決済アプリの起動からオンラインコード画像GX[q]の表示までの処理時間を短くすることが可能となる。
<D.付記>
以上の実施形態及び変形例に関連する態様を以下に付記する。なお、各態様の理解を容易にするために、以下では、図面の参照符号を付記した記載とするが、本発明を図示の態様に限定する趣旨ではない。
<D.1.付記1>
以下、付記1について説明する。
<付記1-1>
付記1-1に係る電子決済プログラムPG-Tは、端末装置1[q]にインストールされた電子決済プログラムPG-Tであって、端末装置1[q]のプロセッサを、電子決済プログラムPG-Tの起動からトークン応答待機時間TSWが経過するまでのトークン応答待機期間TWにおいて、オンライントークンKX[q]とオフライントークンKY[q]との2種類のトークンKK[q]の要求を送信する情報送信部111と、情報送信部111からの要求の送信に応じて供給されるトークンKK[q]を取得する情報取得部112と、トークンKK[q]に基づくコード画像GG[q]を表示装置13に表示させる表示制御部114と、して機能させ、情報取得部112は、オフライントークンKY[q]を取得した場合、オフライントークンKY[q]を記憶装置12に記憶させ、表示制御部114は、トークン応答待機期間TWにおいて情報取得部112がオンライントークンKX[q]を取得した場合、オンライントークンKX[q]に基づくコード画像GG[q]を表示装置13に表示させ、トークン応答待機期間TWにおいて情報取得部112がトークンKK[q]を取得しなかった場合、記憶装置12に記憶されているオフライントークンKY[q]に基づくコード画像GG[q]を表示装置13に表示させる、ことを特徴とする。
なお、付記1において、トークン応答待機時間TSWは「第1時間」の一例であり、トークン応答待機期間TWは「第1期間」の一例であり、オンライントークンKX[q]は「第1トークン」の一例であり、オフライントークンKY[q]は「第2トークン」の一例である。
付記1-1によれば、電子決済のタイミングにおいて、オンライントークンKX[q]とオフライントークンKY[q]とを取得し、取得したオフライントークンKY[q]を記憶装置12に記憶させるので、電子決済のタイミングとは別個にオフライントークンKY[q]を取得する処理を実行する必要が無い。このため、オフライントークンKY[q]を取得する処理の実施タイミングを、電子決済のタイミングとは別個に調整する必要がなくなる。
また、付記1-1によれば、トークン応答待機期間TWにおいてオンライントークンKX[q]またはオフライントークンKY[q]を取得できない場合においても、記憶装置12に記憶するオフライントークンKY[q]に基づいてコード画像GG[q]を表示できるので、通信状態に関わらず電子決済が可能となる。
なお、付記1-1において、「2種類のトークンKK[q]の要求」とは、端末装置1[q]が、2回の要求を行うこと、例えば、オンライントークンKX[q]の要求とは別個にオフライントークンKY[q]の要求を行うことであってもよい。この場合、情報取得部112は、オンライントークンKX[q]の要求に応じて供給されるオンライントークンKX[q]を取得し、オフライントークンKY[q]の要求に応じて供給されるオフライントークンKY[q]を取得してもよい。また、付記1-1において、「2種類のトークンKK[q]の要求」とは、端末装置1[q]が単一の要求を行うこと、例えば、トークンKK[q]の要求、または、決済アプリ起動通知を行うことであってもよい。この場合、情報取得部112は、トークンKK[q]の要求、または、決済アプリ起動通知に応じて供給されるオンライントークンKX[q]及びオフライントークンKY[q]を取得してもよい。
<付記1-2>
付記1-2に係る電子決済プログラムPG-Tは、端末装置1[q]にインストールされた電子決済プログラムPG-Tであって、端末装置1[q]のプロセッサを、電子決済プログラムPG-Tの起動からトークン応答待機時間TSWが経過するまでのトークン応答待機期間TWにおいて、オンライントークンKX[q]とオフライントークンKY[q]との2種類のトークンKK[q]の要求を送信する情報送信部111と、情報送信部111からの要求の送信に応じて供給されるトークンKK[q]を取得する情報取得部112と、トークンKK[q]に基づくコード画像GG[q]を表示装置13に表示させる表示制御部114と、して機能させ、情報取得部112は、オフライントークンKY[q]を取得した場合、オフライントークンKY[q]を記憶装置12に記憶させ、表示制御部114は、トークン応答待機期間TWにおいて情報取得部112がオンライントークンKX[q]を取得した場合、オンライントークンKX[q]に基づくコード画像GG[q]を表示装置13に表示させ、トークン応答待機期間TWにおいて端末装置1[q]の通信状態がオフライン状態の場合、記憶装置12に記憶されているオフライントークンKY[q]に基づくコード画像GG[q]を表示装置13に表示させる、ことを特徴とする。
付記1-2によれば、電子決済のタイミングにおいて、オンライントークンKX[q]とオフライントークンKY[q]とを取得し、取得したオフライントークンKY[q]を記憶装置12に記憶させるので、電子決済のタイミングとは別個にオフライントークンKY[q]を取得する処理を実行する必要が無い。このため、オフライントークンKY[q]を取得する処理の実施タイミングを、電子決済のタイミングとは別個に調整する必要がなくなる。
また、付記1-2によれば、トークン応答待機期間TWにおいて通信状態が不良な場合においても、記憶装置12に記憶するオフライントークンKY[q]に基づいてコード画像GG[q]を表示できるので、通信状態に関わらず電子決済が可能となる。
<付記1-3>
付記1-3に係る電子決済プログラムPG-Tは、付記1-2に記載の電子決済プログラムPG-Tであって、表示制御部114は、トークン応答待機期間TWにおいて、端末装置1[q]の通信状態がオンライン状態の場合であって、トークン応答待機期間TWにおいて情報取得部112がトークンKK[q]を取得しなかった場合、記憶装置12に記憶されているオフライントークンKY[q]に基づくコード画像GG[q]を表示装置13に表示させる、ことを特徴とする。
付記1-3によれば、トークン応答待機期間TWにおいてオンライントークンKX[q]またはオフライントークンKY[q]を取得できない場合においても、記憶装置12に記憶するオフライントークンKY[q]に基づいてコード画像GG[q]を表示できるので、通信状態に関わらず電子決済が可能となる。
<付記1-4>
付記1-4に係る電子決済プログラムPG-Tは、付記1-1乃至付記1-3に記載の電子決済プログラムPG-Tであって、情報取得部112は、オンライントークンKX[q]とオフライントークンKY[q]とを決済装置3から取得し、オンライントークンKX[q]は、端末装置1[q]が決済装置3と通信可能な状態において、決済装置3において、端末装置1[q]のユーザU[q]に対応する決済処理の実施の決定に用いられるトークンKK[q]であり、オフライントークンKY[q]は、端末装置1[q]が決済装置3と通信不能な状態において、決済装置3において、端末装置1[q]のユーザU[q]に対応する決済処理の実施の決定に用いられるトークンKK[q]である、ことを特徴とする。
付記1-4によれば、電子決済のタイミングにおいて、オンライントークンKX[q]とオフライントークンKY[q]とを取得するので、電子決済のタイミングとは別個にオフライントークンKY[q]を取得する必要が無い。このため、電子決済のタイミングとは別個にオフライントークンKY[q]を取得する態様と比較して、端末装置1[q]における処理のタイミング調整が簡素化される。
また、付記1-4によれば、電子決済のタイミングにおいて、オンライントークンKX[q]に加えてオフライントークンKY[q]を取得するので、通信状態が不良であることに起因してオンラインでの電子決済が困難となる場合において、オフラインでの電子決済が可能となるように、事前に備えることが可能となる。
<付記1-5>
付記1-5に係る電子決済プログラムPG-Tは、付記1-1乃至付記1-4に記載の電子決済プログラムPG-Tであって、情報取得部112は、オンライントークンKX[q]とオフライントークンKY[q]とを決済装置3から取得し、決済装置3からトークン応答待機時間TSWを示すトークン応答情報DSWを取得する、ことを特徴とする。
なお、付記1において、トークン応答情報DSWは「時間情報」の一例である。
付記1-5によれば、決済装置3がトークン応答待機時間TSWを調整することが可能となるので、端末装置1[q]の置かれた状況に応じて、コード画像GG[q]の表示態様を動的に切り替えることが可能となる。
<付記1-6>
付記1-6に係る電子決済プログラムPG-Tは、付記1-1乃至付記1-5に記載の電子決済プログラムPG-Tであって、情報送信部111は、トークン応答待機期間TWにおいて、オンライントークンKX[q]を要求するオンライントークン要求を発行した後に、オフライントークンKY[q]を要求するオフライントークン要求を発行する、ことを特徴とする。
なお、付記1において、オンライントークン要求は「第1トークン要求」の一例であり、オフライントークン要求は「第2トークン要求」の一例である。
付記1-6によれば、トークン応答待機期間TWにおいて、オフライントークン要求に先行してオンライントークン要求を発行する。このため、トークン応答待機期間TWにおいて、最初に取得するトークンKK[q]に基づいてコード画像GG[q]を表示することができる。これにより、トークン応答待機期間TWにおいて最後に取得するトークンKK[q]に基づいてコード画像GG[q]を表示する態様と比較して、コード画像GG[q]の表示までの時間を短くすることが可能となる。
<付記1-7>
付記1-7に係る電子決済プログラムPG-Tは、付記1-1乃至付記1-6に記載の電子決済プログラムPG-Tであって、情報取得部112は、トークン応答待機期間TWにおいて、オンライントークンKX[q]を取得した後に、オフライントークンKY[q]を取得する、ことを特徴とする。
付記1-7によれば、トークン応答待機期間TWにおいて最後に取得するオフライントークンKY[q]に基づいてコード画像GG[q]を表示する態様と比較して、コード画像GG[q]の表示までの時間を短くすることが可能となる。
<付記1-8>
付記1-8に係る決済装置3は、端末装置1[q]と通信可能な決済装置3であって、端末装置1[q]からトークンKK[q]の発行を要求するトークン要求を受け付ける情報受付部312と、情報受付部312がトークン要求を受け付けた場合、端末装置1[q]のユーザU[q]に対応付けられたオンライントークンKX[q]とオフライントークンKY[q]との2種類のトークンKK[q]を、端末装置1[q]に供給する情報供給部311と、を備え、オンライントークンKX[q]は、決済装置3が端末装置1[q]と通信可能な場合に、決済装置3において、ユーザU[q]に対応する決済処理の実施の決定に用いられるトークンKK[q]であり、オフライントークンKY[q]は、決済装置3が端末装置1[q]と通信困難な場合に、決済装置3において、ユーザU[q]に対応する決済処理の実施の決定に用いられるトークンKK[q]である、ことを特徴とする。
付記1-8によれば、端末装置1[q]がオンライントークンKX[q]を取得するタイミングに応じたタイミングでオフライントークンKY[q]を取得するので、オンライントークンKX[q]の取得のタイミングとは別個にオフライントークンKY[q]の取得のタイミングを調整する必要がない。このため、付記1-8によれば、端末装置1[q]における処理のスケジュール調整が容易となる。
また、付記1-8によれば、端末装置1[q]がオンライントークンKX[q]を取得するタイミングに応じたタイミングでオフライントークンKY[q]を取得するので、端末装置1[q]における通信状態が悪化してオンラインでの電子決済が困難となる場合においてもオフラインでの電子決済が可能となるように、事前に備えることが可能となる。
<D.2.付記2>
以下、付記2について説明する。
<付記2-1>
付記2-1に係る電子決済プログラムPG-Tは、決済装置3と通信可能な端末装置1[q]のプロセッサを、決済装置3と端末装置1[q]とが通信困難な場合に決済装置3において実行されるオフライン決済処理に用いられるオフライントークンKY[q]と、決済装置3におけるオフライン決済処理の実行可否を示すオフライン閉塞情報DHYとを、決済装置3から取得する情報取得部112と、決済装置3がオフライン決済処理を実行可能であることをオフライン閉塞情報DHYが示す場合に、オフライントークンKY[q]に基づくオフラインコード画像GY[q]を表示装置13に表示させる表示制御部114と、して機能させる、ことを特徴とする。
付記2-1によれば、決済装置3がオフライン決済処理を実行可能であることをオフライン閉塞情報DHYが示す場合に、端末装置1[q]がオフラインコード画像GY[q]を表示する。つまり、付記2-1によれば、決済装置3がオフライン決済処理を実行困難な場合に、端末装置1[q]におけるオフラインコード画像GY[q]の表示を抑制できる。このため、決済装置3がオフライン決済処理を実行困難な場合においても端末装置1[q]がオフラインコード画像GY[q]を表示する態様と比較して、端末装置1[q]のユーザU[q]に不必要な手間を取らせる可能性を低減することができる。
なお、付記2-1に係る電子決済プログラムPG-Tは、決済装置3と通信可能な端末装置1[q]のプロセッサを、決済装置3と端末装置1[q]とが通信困難な場合に決済装置3において実行されるオフライン決済処理に用いられるオフライントークンKY[q]と、決済装置3におけるオフライン決済処理の実行可否を示すオフライン閉塞情報DHYとを、決済装置3から取得する情報取得部112と、決済装置3と端末装置1[q]とが通信可能な場合に決済装置3において実行されるオンライン決済処理の実行が困難な場合であって、決済装置3がオフライン決済処理を実行可能であることをオフライン閉塞情報DHYが示す場合に、オフライントークンKY[q]に基づくオフラインコード画像GY[q]を表示装置13に表示させる表示制御部114と、して機能させる、ことを特徴としてもよい。
また、付記2-1に係る電子決済プログラムPG-Tは、決済装置3と通信可能な端末装置1[q]のプロセッサを、決済装置3と端末装置1[q]とが通信可能な場合に決済装置3において実行されるオンライン決済処理に用いられるオンライントークンKX[q]と、決済装置3と端末装置1[q]とが通信困難な場合に決済装置3において実行されるオフライン決済処理に用いられるオフライントークンKY[q]と、決済装置3におけるオンライン決済処理の実行可否を示すオンライン閉塞情報DHXと、決済装置3におけるオフライン決済処理の実行可否を示すオフライン閉塞情報DHYとを、決済装置3から取得する情報取得部112と、決済装置3がオンライン決済処理を実行可能であることをオンライン閉塞情報DHXが示す場合に、オンライントークンKX[q]に基づくオンラインコード画像GX[q]を表示装置13に表示させ、オンライン決済処理の実行が困難な場合であって、決済装置3がオフライン決済処理を実行可能であることをオフライン閉塞情報DHYが示す場合に、オフライントークンKY[q]に基づくオフラインコード画像GY[q]を表示装置13に表示させる表示制御部114と、して機能させる、ことを特徴としてもよい。
<付記2-2>
付記2-2に係る電子決済プログラムPG-Tは、付記2-1に記載の電子決済プログラムPG-Tであって、情報取得部112は、決済装置3がオフライン決済処理を実行困難であることをオフライン閉塞情報DHYが示す場合に、決済装置3と端末装置1[q]とが通信可能となるまで待機し、決済装置3と端末装置1[q]とが通信可能となった場合に、決済装置3と端末装置1[q]とが通信可能な場合に決済装置3において実行されるオンライン決済処理に用いられるオンライントークンKX[q]を、決済装置3から取得し、表示制御部114は、情報取得部112がオンライントークンKX[q]を取得した場合に、オンライントークンKX[q]に基づくオンラインコード画像GX[q]を表示装置13に表示させる、ことを特徴とする。
付記2-2によれば、決済装置3がオフライン決済処理を実行困難な場合に、端末装置1[q]が、オンライン決済処理に応じたオンラインコード画像GX[q]を表示するため、決済装置3の稼働状況に応じた種類の電子決済を実行することができる。
<付記2-3>
付記2-3に係る電子決済プログラムPG-Tは、付記2-1または付記2-2に記載の電子決済プログラムPG-Tであって、決済装置3は、一の支払方法を含む1以上の支払方法によるオフライン決済処理が可能であり、オフライン閉塞情報DHYは、決済装置3における1以上の支払方法の各々によるオフライン決済処理の実行可否を示し、情報取得部112は、1以上の支払方法に対応する1以上の個別オフライントークンKY0[q]を、決済装置3から取得し、表示制御部114は、決済装置3が一の支払方法によりオフライン決済処理を実行可能であることをオフライン閉塞情報DHYが示す場合に、1以上の個別オフライントークンKY0[q]のうち、一の支払方法に用いられる一の個別オフライントークンKY0[q]に基づくオフラインコード画像GY[q]を、表示装置13に表示させる、ことを特徴とする。
なお、付記2において、一の支払方法は「第1決済方法」の一例であり、個別オフライントークンKY0[q]は「オフライントークン」の一例であり、一の個別オフライントークンKY0[q]は「第1オフライントークン」の一例である。
付記2-3によれば、決済装置3が一の支払方法によるオフライン決済処理を実行可能であることを、オフライン閉塞情報DHYが示す場合に、端末装置1[q]が一の支払方法に対応するオフラインコード画像GY[q]を表示する。つまり、付記2-3によれば、決済装置3が一の支払方法によるオフライン決済処理を実行困難な場合に、端末装置1[q]における一の支払方法に対応するオフラインコード画像GY[q]の表示を抑制できる。このため、決済装置3が一の支払方法によるオフライン決済処理を実行困難な場合においても、端末装置1[q]が一の支払方法に対応するオフラインコード画像GY[q]を表示する態様と比較して、端末装置1[q]のユーザU[q]に不必要な手間を取らせる可能性を低減することができる。
<付記2-4>
付記2-4に係る電子決済プログラムPG-Tは、付記2-3に記載の電子決済プログラムPG-Tであって、決済装置3がオフライン決済処理を実行する際に決済装置3が対応可能な1以上の支払方法は、一の支払方法とは異なる他の支払方法を含み、表示制御部114は、決済装置3が他の支払方法によりオフライン決済処理を実行困難であることを、オフライン閉塞情報DHYが示す場合に、1以上の個別オフライントークンKY0[q]のうち、他の支払方法に対応する他の個別オフライントークンKY0[q]に基づくオフラインコード画像GY[q]の、表示装置13への表示を制限する、ことを特徴とする。
なお、付記2において、他の支払方法は「第2決済方法」の一例であり、他の個別オフライントークンKY0[q]は「第2オフライントークン」の一例である。
付記2-4によれば、決済装置3が他の支払方法によるオフライン決済処理を実行困難であることを、オフライン閉塞情報DHYが示す場合に、端末装置1[q]が他の支払方法に対応するオフラインコード画像GY[q]の表示を制限する。このため、決済装置3が他の支払方法によるオフライン決済処理を実行困難な場合においても、端末装置1[q]が他の支払方法に対応するオフラインコード画像GY[q]を表示する態様と比較して、端末装置1[q]のユーザU[q]に不必要な手間を取らせる可能性を低減することができる。
<付記2-5>
付記2-5に係る電子決済プログラムPG-Tは、付記2-1乃至付記2-4に記載の電子決済プログラムPG-Tであって、オフライントークンKY[q]には、オフライントークン有効期間TY[q]が設定されており、表示制御部114は、オフライントークンKY[q]のオフライントークン有効期間TY[q]内である場合に、オフライントークンKY[q]に基づくオフラインコード画像GY[q]を表示装置13に表示させる、ことを特徴とする。
なお、付記2において、オフライントークン有効期間TY[q]は「有効期間」の一例である。
付記2-5によれば、端末装置1[q]は、有効期間内のオフライントークンKY[q]を有する場合に、当該オフライントークンKY[q]に基づくオフラインコード画像GY[q]を表示する。つまり、端末装置1[q]は、有効期間内のオフライントークンKY[q]を有さない場合に、オフライントークンKY[q]に基づくオフラインコード画像GY[q]の表示を制限できる。このため、有効期間内のオフライントークンKY[q]を有さない場合においても、オフライントークンKY[q]に基づくオフラインコード画像GY[q]の表示する態様と比較して、端末装置1[q]のユーザU[q]に不必要な手間を取らせる可能性を低減することができる。
<付記2-6>
付記2-6に係る電子決済プログラムPG-Tは、付記2-1乃至付記2-5に記載の電子決済プログラムPG-Tであって、情報取得部112は、オフライントークンKY[q]に対応するオフライントークン有効期間TY[q]に関するオフライントークン有効情報DSYを取得し、表示制御部114は、情報取得部112がオフライントークンKY[q]を取得してからの経過時間が、オフライントークン有効期間TY[q]の時間長であるオフライントークン有効時間TSY以下である場合に、オフライントークンKY[q]に基づくオフラインコード画像GY[q]を、表示装置13に表示させる、ことを特徴とする。
なお、付記2において、オフライントークン有効情報DSYは「トークン有効情報」の一例であり、オフライントークン有効時間TSYは「有効期間の時間長」の一例である。
付記2-6によれば、有効期間内のオフライントークンKY[q]を有さない場合においても、オフライントークンKY[q]に基づくオフラインコード画像GY[q]の表示する態様と比較して、端末装置1[q]のユーザU[q]に不必要な手間を取らせる可能性を低減することができる。
<付記2-7>
付記2-7に係る電子決済プログラムPG-Tは、決済装置3と通信可能な端末装置1[q]のプロセッサを、決済装置3と端末装置1[q]とが通信困難な場合に決済装置3において実行される決済処理に用いられるトークンKK[q]と、決済装置3における決済処理の実行可否を示す閉塞情報DHとを、決済装置3から取得する情報取得部112と、決済装置3が決済処理を実行可能であることを閉塞情報DHが示す場合に、トークンKK[q]に基づくコード画像GG[q]を表示装置13に表示させる表示制御部114と、して機能させる、ことを特徴とする。
付記2-7によれば、決済装置3が決済処理を実行可能であることを閉塞情報DHが示す場合に、端末装置1[q]がコード画像GG[q]を表示する。つまり、付記2-7によれば、決済装置3が決済処理を実行困難な場合に、端末装置1[q]におけるコード画像GG[q]の表示を抑制できる。このため、決済装置3が決済処理を実行困難な場合においても端末装置1[q]がコード画像GG[q]を表示する態様と比較して、端末装置1[q]のユーザU[q]に不必要な手間を取らせる可能性を低減することができる。
<付記2-8>
付記2-8に係る決済装置3は、端末装置1[q]と通信可能な決済装置3であって、端末装置1[q]と決済装置3とが通信困難な場合にオフライン決済処理を実行する決済処理部313と、決済処理部313におけるオフライン決済処理の実行可否を示すオフライン閉塞情報DHYと、オフライン決済処理に用いられるオフライントークンKY[q]とを、端末装置1[q]に供給する情報供給部311と、を備え、端末装置1[q]は、決済装置3がオフライン決済処理を実行可能であることをオフライン閉塞情報DHYが示す場合に、オフライントークンKY[q]に基づくオフラインコード画像GY[q]を表示可能である、ことを特徴とする。
付記2-8によれば、決済装置3から端末装置1[q]に対して決済装置3におけるオフライン決済処理の実行可否を示すオフライン閉塞情報DHYを供給するため、決済装置3がオフライン決済処理を実行困難な場合に、端末装置1[q]におけるオフラインコード画像GY[q]の表示を抑制できる。このため、決済装置3がオフライン決済処理を実行困難な場合においても端末装置1[q]がオフラインコード画像GY[q]を表示する態様と比較して、端末装置1[q]のユーザU[q]に不必要な手間を取らせる可能性を低減することができる。
<付記2-9>
付記2-9に係る決済装置3は、付記2-8に記載の決済装置3であって、決済処理部313は、複数の支払方法によるオフライン決済処理が可能であり、情報供給部311は、複数の支払方法に対応する複数の個別オフライントークンKY0[q]を、端末装置1[q]に供給し、オフライン閉塞情報DHYは、複数の支払方法の各々によるオフライン決済処理の実行可否を示す、ことを特徴とする。
付記2-9によれば、決済装置3が一の支払方法によるオフライン決済処理を実行困難な場合に、端末装置1[q]における一の支払方法に対応するオフラインコード画像GY[q]の表示を抑制できる。このため、決済装置3が一の支払方法によるオフライン決済処理を実行困難な場合においても、端末装置1[q]が一の支払方法に対応するオフラインコード画像GY[q]を表示する態様と比較して、端末装置1[q]のユーザU[q]に不必要な手間を取らせる可能性を低減することができる。
<付記2-10>
付記2-10に係る決済装置3は、付記2-8または付記2-9に記載の決済装置3であって、情報供給部311は、オフライントークンKY[q]の有効期間であるオフライントークン有効期間TY[q]に関するオフライントークン有効情報DSYを、端末装置1[q]に供給する、ことを特徴とする。
付記2-10によれば、決済装置3がオフライントークンKY[q]の有効期間を調整することが可能となる。
<D.3.付記3>
以下、付記3について説明する。
<付記3-1>
付記3-1に係る電子決済プログラムPG-Tは、決済装置3と通信可能な端末装置1[q]のプロセッサを、端末装置1[q]のユーザU[q]に対応付けられたオフライントークンKY[q]と、暗号鍵KS[q]とを、決済装置3から取得する情報取得部112と、オフライントークンKY[q]と、決済装置3に関する決済事業者を識別する事業者識別トークンKZと、端末装置1[q]の現在の時刻である端末時刻TGに基づく端末時刻値AGを暗号鍵KS[q]で暗号化した時間暗号コードTT[q]と、に基づく、オフラインコード画像GY[q]を、表示装置13に表示させる表示制御部114と、して機能させる、ことを特徴とする。
なお、付記3において、オフライントークンKY[q]は「第1トークン」の一例であり、事業者識別トークンKZは「第2トークン」の一例であり、端末時刻TGは「端末の現在の時刻」の一例であり、端末時刻値AGは「端末の現在の時刻に基づく値」の一例であり、時間暗号コードTT[q]は「暗号コード」の一例であり、オフラインコード画像GY[q]は「第1コード画像」の一例である。
付記3-1によれば、時間暗号コードTT[q]が、端末時刻TGに基づいて定められるため、オフライントークンKY[q]の更新周期よりも短くすることができる。よって、付記3-1によれば、オフライントークンKY[q]のみに基づいてオフラインコード画像GY[q]が生成される態様と比較して、オフラインコード画像GY[q]を用いた電子決済の安全性を高めることができる。
また、付記3-1では、オフライントークンKY[q]に加えて、事業者識別トークンKZに基づいてオフラインコード画像GY[q]を表示させるため、オフライントークンKY[q]のみに基づいてオフラインコード画像GY[q]を表示させる態様と比較して、オフラインコード画像GY[q]を用いた電子決済の安全性を高めることができる。
<付記3-2>
付記3-2に係る電子決済プログラムPG-Tは、付記3-1に記載の電子決済プログラムPG-Tであって、端末時刻値AGは、更新単位時間TC毎に更新され、更新単位時間TCは、オフライントークンKY[q]の有効期間であるオフライントークン有効期間TY[q]よりも短い、ことを特徴とする。
なお、付記3において、更新単位時間TCは「単位時間」の一例である。
付記3-2によれば、オフライントークンKY[q]の有効期限よりも短い周期で更新される時間暗号コードTT[q]を用いてオフラインコード画像GY[q]を表示する。このため、付記3-2によれば、オフライントークンKY[q]に基づいてオフラインコード画像GY[q]を表示する場合であっても、オフラインコード画像GY[q]を更新単位時間TC毎に更新可能であり、オフラインコード画像GY[q]を用いた電子決済の安全性を高めることができる。
<付記3-3>
付記3-3に係る電子決済プログラムPG-Tは、付記3-2に記載の電子決済プログラムPG-Tであって、時間暗号コードTT[q]は、オフラインコード画像GY[q]が表示装置13に表示されてから、少なくとも(遅くとも)更新単位時間TCが経過した場合に更新され、表示制御部114は、オフラインコード画像GY[q]が表示装置13に表示されてから、少なくとも(遅くとも)更新単位時間TCが経過した場合に、更新された時間暗号コードTT[q]と、オフライントークンKY[q]と、事業者識別トークンKZとに基づいて、表示装置13に表示されるオフラインコード画像GY[q]を更新する、ことを特徴とする。
付記3-2によれば、オフラインコード画像GY[q]を更新単位時間TC毎に更新可能であるため、オフラインコード画像GY[q]を用いた電子決済の安全性を高めることができる。
<付記3-4>
付記3-4に係る電子決済プログラムPG-Tは、付記3-2または付記3-3に記載の電子決済プログラムPG-Tであって、情報取得部112は、更新単位時間TCを示す更新時間情報DSCを、決済装置3から取得する、ことを特徴とする。
なお、付記3において、更新時間情報DSCは「時間情報」の一例である。
付記3-4によれば、オフラインコード画像GY[q]の更新周期を、決済装置3により調整することができるため、電子決済の安全性に関する柔軟な運用が可能となる。
<付記3-5>
付記3-5に係る電子決済プログラムPG-Tは、付記3-1乃至付記3-4に記載の電子決済プログラムPG-Tであって、情報取得部112は、端末装置1[q]のユーザU[q]に対応付けられたオンライントークンKX[q]を、決済装置3から取得し、表示制御部114は、端末装置1[q]と決済装置3とが通信困難な場合に、オフラインコード画像GY[q]を表示装置13に表示させ、端末装置1[q]と決済装置3とが通信可能な場合に、オンライントークンKX[q]と事業者識別トークンKZとに基づくオンラインコード画像GX[q]を、表示装置13に表示させる、ことを特徴とする。
なお、付記3において、オンライントークンKX[q]は「第3トークン」の一例であり、オンラインコード画像GX[q]は「第2コード画像」の一例である。
付記3-5によれば、オフライン電子決済の際に表示されるオフラインコード画像GY[q]を、オンライン電子決済の際に表示されるオンラインコード画像GX[q]とは異なる画像とする。このため、本態様では、電子決済の安全性の観点において、オフライン電子決済とオンライン電子決済の双方の特性を考慮した柔軟な運用が可能となる。
<付記3-6>
付記3-6に係る電子決済プログラムPG-Tは、付記3-5に記載の電子決済プログラムPG-Tであって、オンライントークンKX[q]の桁数LXは、オフライントークンKY[q]の桁数LYと、事業者識別トークンKZの桁数LZとを合計した桁数と一致する、ことを特徴とする。
付記3-6によれば、オフライン電子決済の際に表示されるオフラインコード画像GY[q]に含まれるトークンの桁数と、オンライン電子決済の際に表示されるオンラインコード画像GX[q]に含まれるトークンの桁数とを同じにするため、両者の桁数が相違する態様と比較して、端末装置1[q]における処理を簡素化できる。
<付記3-7>
付記3-7に係る電子決済プログラムPG-Tは、付記3-6に記載の電子決済プログラムPG-Tであって、表示制御部114は、端末装置1[q]と決済装置3とが通信困難な場合に、オフライントークンKY[q]と事業者識別トークンKZと時間暗号コードTT[q]とを含むオフライン決済コードCY[q]に基づくオフラインコード画像GY[q]を、表示装置13に表示させ、端末装置1[q]と決済装置3とが通信可能な場合に、オンライントークンKX[q]と事業者識別トークンKZとを含むオンライン決済コードCX[q]に基づくオンラインコード画像GX[q]を、表示装置13に表示させ、オフライン決済コードCY[q]の桁数と、オンライン決済コードCX[q]の桁数とは一致する、ことを特徴とする。
なお、付記3において、オフライン決済コードCY[q]は「第1決済コード」の一例であり、オンライン決済コードCX[q]は「第2決済コード」の一例である。
付記3-7によれば、オフライン電子決済の際に表示されるオフラインコード画像GY[q]の示すオフライン決済コードCY[q]の桁数と、オンライン電子決済の際に表示されるオンラインコード画像GX[q]の示すオンライン決済コードCX[q]の桁数とを同じにするため、両者の桁数が相違する態様と比較して、コード画像GG[q](オンラインコード画像GX[q]またはオフラインコード画像GY[q])を読み取る店舗装置5における処理の簡素化が可能となり、また、決済コードCC[q](オンライン決済コードCX[q]またはオフライン決済コードCY[q])に基づいて電子決済に係る処理を実行する決済装置3における処理の簡素化が可能となる。
<付記3-8>
付記3-8に係る端末装置1[q]は、決済装置3と通信可能な端末装置1[q]であって、端末装置1[q]のユーザU[q]に対応付けられたオフライントークンKY[q]と、暗号鍵KS[q]とを、決済装置3から取得する情報取得部112と、オフライントークンKY[q]と、決済装置3に関する決済事業者を識別する事業者識別トークンKZと、端末装置1[q]の現在の時刻である端末時刻TGに基づく端末時刻値AGを暗号鍵KS[q]で暗号化した時間暗号コードTT[q]と、に基づく、オフラインコード画像GY[q]を、表示装置13に表示させる表示制御部114と、を備える、ことを特徴とする。
付記3-8によれば、時間暗号コードTT[q]が、端末時刻TGに基づいて定められるため、オフライントークンKY[q]の更新周期よりも短くすることができるため、オフライントークンKY[q]のみに基づいてオフラインコード画像GY[q]が生成される態様と比較して、オフラインコード画像GY[q]を用いた電子決済の安全性を高めることができる。
<付記3-9>
付記3-9に係る決済装置3は、端末装置1[q]と通信可能な決済装置3であって、端末装置1[q]のユーザU[q]に対応付けられたオフライントークンKY[q]と、複数の暗号鍵KSのうち、オフライントークンKY[q]と対応付けられた暗号鍵KS[q]とを、端末装置1[q]に供給する情報供給部311と、端末装置1[q]に表示されるオフラインコード画像GY[q]であって、オフライントークンKY[q]と、決済装置3に関する決済事業者を識別する事業者識別トークンKZと、更新単位時間TC毎に更新される端末装置1[q]の端末時刻値AGを暗号鍵KS[q]を用いて暗号化した時間暗号コードTT[q]と、に基づくオフラインコード画像GY[q]を読み取った店舗装置5から、オフライントークンKY[q]と時間暗号コードTT[q]とを含む一の決済情報DP[q]を受け付ける情報受付部312と、一の決済情報DP[q]に含まれるオフライントークンKY[q]に基づいて、複数の暗号鍵KSの中から特定された暗号鍵KS[q]を用いて、決済装置3が管理するサーバ時刻TMに基づくサーバ時刻値AMを暗号化したサーバ時刻暗号コードCMと、サーバ時刻TMよりも更新単位時間TCだけ未来の時刻に基づく将来時刻値AMfを、暗号鍵KS[q]を用いて暗号化した将来時刻暗号コードCMfと、サーバ時刻TMよりも更新単位時間TCだけ過去の時刻に基づく過去時刻値AMpを、暗号鍵KS[q]を用いて暗号化した過去時刻暗号コードCMpとの、3個の時刻暗号コードCMMの何れかと、一の決済情報DP[q]の示す時間暗号コードTT[q]とが一致する場合に、端末装置1[q]のユーザU[q]に対応する決済処理を実行する決済処理部313と、を備える、ことを特徴とする。
なお、付記3において、サーバ時刻暗号コードCMは「第1時刻コード」の一例であり、将来時刻暗号コードCMfは「第2時刻コード」の一例であり、過去時刻暗号コードCMpは「第3時刻コード」の一例であり、時刻暗号コードCMMは「時刻コード」の一例である。
付記3-9によれば、時間暗号コードTT[q]が、端末時刻TGに基づいて定められるため、オフライントークンKY[q]の更新周期よりも短くすることができるため、オフライントークンKY[q]のみに基づいてオフラインコード画像GY[q]が生成される態様と比較して、オフラインコード画像GY[q]を用いた電子決済の安全性を高めることができる。
<付記3-10>
付記3-10に係る決済装置3は、付記3-9に記載の決済装置3であって、決済処理部313は、情報受付部312が一の決済情報DP[q]を受け付けてから、更新単位時間TCの2倍の時間が経過するまでの同一トークン禁止期間において、オフライントークンKY[q]と時間暗号コードTT[q]とを含む他の決済情報DP[q]を受け付けた場合、当該他の決済情報DP[q]に基づく決済処理を実行しない、ことを特徴とする。
付記3-10によれば、他の決済情報DP[q]に基づく決済処理の実行を制限するため、制限しない態様と比較して、不正な電子決済が行われる可能性を低減することができる。
<付記3-11>
付記3-11に係る決済装置3は、端末装置1[q]と通信可能な決済装置3であって、端末装置1[q]のユーザU[q]に対応付けられたオフライントークンKY[q]と、暗号鍵KS[q]とを、端末装置1[q]に供給する情報供給部311と、端末装置1[q]に表示されるオフラインコード画像GY[q]であって、オフライントークンKY[q]と、決済装置3に関する決済事業者を識別する事業者識別トークンKZと、更新単位時間TC毎に更新される端末装置1[q]の端末時刻値AGを暗号鍵KS[q]を用いて暗号化した時間暗号コードTT[q]と、に基づくオフラインコード画像GY[q]を読み取った店舗装置5から、オフライントークンKY[q]と時間暗号コードTT[q]とを含む一の決済情報DP[q]を受け付ける情報受付部312と、一の決済情報DP[q]に基づいて、端末装置1[q]のユーザU[q]に対応する決済処理を実行する決済処理部313と、を備え、決済処理部313は、情報受付部312が一の決済情報DP[q]を受け付けてから、更新単位時間TCの2倍の時間が経過するまでの同一トークン禁止期間において、オフライントークンKY[q]と時間暗号コードTT[q]とを含む他の決済情報DP[q]を受け付けた場合、当該他の決済情報DP[q]に基づく決済処理を実行しない、ことを特徴とする。
付記3-11によれば、他の決済情報DP[q]に基づく決済処理の実行を制限するため、制限しない態様と比較して、不正な電子決済が行われる可能性を低減することができる。
<D.4.付記4>
以下、付記4について説明する。
<付記4-1>
付記4-1に係る電子決済プログラムPG-Tは、端末装置1[q]のプロセッサを、端末装置1[q]のユーザU[q]に対応付けられたトークンKK[q](オンライントークンKX[q]またはオフライントークンKY[q])と、事業者識別トークンKZとを、決済装置3から互いに異なるタイミングで取得する情報取得部112と、トークンKK[q]と事業者識別トークンKZとに基づくコード画像GG[q](オンラインコード画像GX[q]またはオフラインコード画像GY[q])を、表示装置13に表示させる表示制御部114と、して機能させる、ことを特徴とする。
なお、付記4において、トークンKK[q]は「第1トークン」の一例であり、事業者識別トークンKZは「第2トークン」の一例であり、オフラインコード画像GY[q]は「コード画像」の一例である。
付記4-1によれば、トークンKK[q]に加えて、トークンKK[q]とは異なるタイミングで取得された事業者識別トークンKZに基づいて、コード画像GG[q]を表示する。よって、付記4-1によれば、トークンKK[q]のみに基づいてコード画像GG[q]が生成される態様と比較して、コード画像GG[q]を用いた電子決済の安全性を高めることができる。
<付記4-2>
付記4-2に係る電子決済プログラムPG-Tは、付記4-1に記載の電子決済プログラムPG-Tであって、情報取得部112が決済装置3からトークンKK[q]を取得する頻度は、情報取得部112が決済装置3から事業者識別トークンKZを取得する頻度よりも高い、ことを特徴とする。
付記4-2によれば、トークンKK[q]と事業者識別トークンKZを同一頻度で取得する態様と比較して、電子決済の安全性を高めることができる。
<付記4-3>
付記4-3に係る電子決済プログラムPG-Tは、付記4-1または付記4-2に記載の電子決済プログラムPG-Tであって、表示制御部114は、情報取得部112が、決済装置3からトークンKK[q]を互いに異なる複数のタイミングで取得し、決済装置3から事業者識別トークンKZを互いに異なる複数のタイミングで取得した場合、情報取得部112が取得した複数のトークンKK[q]のうち、最新のトークンKK[q]と、情報取得部112が取得した複数の事業者識別トークンKZのうち、最新の事業者識別トークンKZとに基づくコード画像GG[q]を、表示装置13に表示させる、ことを特徴とする。
付記4-3によれば、端末装置1[q]からトークンKK[q]及び事業者識別トークンKZの一方または両方が漏洩した場合においても、その後に取得した最新のトークンKK[q]及び最新の事業者識別トークンKZを用いてコード画像GG[q]を表示する。このため、付記4-3によれば、トークンKK[q]と事業者識別トークンKZを更新しない態様と比較して、電子決済の安全性を高めることができる。
<付記4-4>
付記4-4に係る電子決済プログラムPG-Tは、付記4-1乃至付記4-3に記載の電子決済プログラムPG-Tであって、事業者識別トークンKZは、決済装置3を管理する決済事業者を識別する事業者識別情報DKZを含む、ことを特徴とする。
付記4-4によれば、決済事業者を識別する事業者識別情報DKZが変更になった場合であっても、電子決済プログラムPG-Tを改修することなく、決済装置3から端末装置1[q]に対して事業者識別トークンKZを供給するだけで、端末装置1[q]を用いた電子決済が可能となる。
<付記4-5>
付記4-5に係る電子決済プログラムPG-Tは、付記4-4に記載の電子決済プログラムPG-Tであって、情報取得部112は、端末装置1[q]に電子決済プログラムPG-Tがインストールされた後、最初に電子決済プログラムPG-Tが起動された場合に、決済装置3から事業者識別トークンKZを取得し、表示制御部114は、情報取得部112が、決済装置3から事業者識別トークンKZを互いに異なる複数のタイミングで取得した場合、情報取得部112が取得した複数の事業者識別トークンKZのうち、最新の事業者識別トークンKZに基づくコード画像GG[q]を、表示装置13に表示させる、ことを特徴とする。
付記4-5によれば、決済事業者を識別する事業者識別情報DKZが変更になった場合であっても、電子決済プログラムPG-Tを改修することなく、決済装置3から端末装置1[q]に対して事業者識別トークンKZを供給するだけで、端末装置1[q]を用いた電子決済が可能となる。
<付記4-6>
付記4-6に係る電子決済プログラムPG-Tは、付記4-1乃至付記4-5に記載の電子決済プログラムPG-Tであって、表示制御部114は、端末装置1[q]と決済装置3とが通信困難な場合に、コード画像GG[q](オフラインコード画像GY[q])を表示装置13に表示させる、ことを特徴とする。
<E.その他>
(1)上述した実施形態(変形例を含む。以下同様。)では、記憶装置12、及び、記憶装置32は、ROM及びRAMなどを例示したが、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリデバイス(例えば、カード、スティック、キードライブ)、CD-ROM(Compact Disc-ROM)、レジスタ、リムーバブルディスク、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ、データベース、サーバその他の適切な記憶媒体である。また、プログラムは、電気通信回線を介してネットワークから送信されてもよい。また、プログラムは、電気通信回線を介して通信網NETから送信されてもよい。
(2)上述した実施形態において、説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
(3)上述した実施形態において、入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、又は追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。
(4)上述した実施形態において、判定は、1ビットを用いて表される値(0か1か)によって行われてもよいし、真偽値(Boolean:true又はfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。
(5)上述した実施形態において例示した処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。
(6)図2及び図3に例示された各機能は、ハードウェア及びソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的又は論理的に結合した1つの装置を用いて実現されてもよいし、物理的又は論理的に分離した2つ以上の装置を直接的又は間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置又は上記複数の装置にソフトウェアを組み合わせて実現されてもよい。
(7)上述した実施形態において例示したプログラムは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称を用いて呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL:Digital Subscriber Line)など)及び無線技術(赤外線、マイクロ波など)の少なくとも一方を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。
(8)前述の各形態において、「システム」及び「ネットワーク」という用語は、互換的に使用される。
(9)本開示において説明した情報、パラメータなどは、絶対値を用いて表されてもよいし、所定の値からの相対値を用いて表されてもよいし、対応する別の情報を用いて表されてもよい。
(10)上述した実施形態において、端末装置1[q]は、移動局(MS:Mobile Station)である場合が含まれる。移動局は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、又はいくつかの他の適切な用語で呼ばれる場合もある。また、本開示においては、「移動局」、「ユーザ端末(user terminal)」、「ユーザ装置(UE:User Equipment)」、「端末」等の用語は、互換的に使用され得る。
(11)上述した実施形態において、「接続された(connected)」、「結合された(coupled)」という用語、又はこれらのあらゆる変形は、2又はそれ以上の要素間の直接的又は間接的なあらゆる接続又は結合を意味し、互いに「接続」又は「結合」された2つの要素間に1又はそれ以上の中間要素が存在することを含むことができる。要素間の結合又は接続は、物理的な結合又は接続であっても、論理的な結合又は接続であっても、或いはこれらの組み合わせであってもよい。例えば、「接続」は「アクセス」を用いて読み替えられてもよい。本開示において使用する場合、2つの要素は、1又はそれ以上の電線、ケーブル及びプリント電気接続の少なくとも一つを用いて、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域及び光(可視及び不可視の両方)領域の波長を有する電磁エネルギーなどを用いて、互いに「接続」又は「結合」されると考えることができる。
(12)上述した実施形態において、「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。
(13)本開示において使用される「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up、search、inquiry)(例えば、テーブル、データベース又は別のデータ構造での探索)、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。また、「判断(決定)」は、「想定する(assuming)」、「期待する(expecting)」、「みなす(considering)」などで読み替えられてもよい。
(14)上述した実施形態において、「含む(include)」、「含んでいる(including)」及びそれらの変形が使用されている場合、これらの用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。更に、本開示において使用されている用語「又は(or)」は、排他的論理和ではないことが意図される。
(15)本開示において、例えば、英語でのa, an及びtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。
(16)本開示において、「AとBが異なる」という用語は、「AとBが互いに異なる」ことを意味してもよい。なお、当該用語は、「AとBがそれぞれCと異なる」ことを意味してもよい。「離れる」、「結合される」等の用語も、「異なる」と同様に解釈されてもよい。
(17)本開示において説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行う通知に限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。
以上、本開示について詳細に説明したが、当業者にとっては、本開示が本開示中に説明した実施形態に限定されないということは明らかである。本開示は、請求の範囲の記載により定まる本開示の趣旨及び範囲を逸脱することなく修正及び変更態様として実施できる。したがって、本開示の記載は、例示説明を目的とし、本開示に対して何ら制限的な意味を有さない。