1.第1実施形態
1−1.構成
以下、図面を参照しつつ本発明の第1実施形態について説明する。図1は、本実施形態に係る通信システム1の構成を示す図である。通信システム1は、図1に示されるように、ASP(Application Service Provider)サーバ10と、端末装置20と、店舗管理サーバ30と、店舗端末40と、アプリケーション管理サーバ50とを備える。
ASPサーバ10は、端末装置20に対して電子クーポンサービスを提供するサーバ装置である。ASPサーバ10は、端末装置20からの要求に応じて、複数のサービス提供者により提供される電子クーポンを端末装置20に提供する。
端末装置20は、例えばスマートフォンであり、ASPサーバ10から提供される電子クーポンを取得する。なお、端末装置20はスマートフォンに限らず、携帯電話機やタブレット端末、パーソナルコンピュータ、PDA(Personal Digital Assistant)等の他の端末装置であってもよい。
店舗管理サーバ30は、端末装置20により電子クーポンが利用される場合に、電子クーポンの利用の許否についての問い合わせをASPサーバ10に送信し、かつ、その問い合わせに対する回答をASPサーバ10から受信するコンピュータ装置である。
店舗端末40は、電子クーポンを利用することができる店舗に設置されるコンピュータ装置である。店舗端末40は、端末装置20が備える非接触式ICカードとの間で無線通信を行ってデータの読み書きを行うリーダ/ライタ41を有し、リーダ/ライタ41により読み取ったデータを店舗管理サーバ30に送信する。また、店舗端末40は、店舗管理サーバ30から、電子クーポンの利用の許否についての情報を受信して、その情報に基づいて電子クーポンの決済を行う。
アプリケーション管理サーバ50は、端末装置20における電子クーポンの書込処理を管理するコンピュータ装置である。
通信システム1では、ASPサーバ10、端末装置20、店舗管理サーバ30及びアプリケーション管理サーバ50はそれぞれネットワークNWに接続されている。ネットワークNWは、例えば、移動体通信網、ゲートウェイ及びインターネットを含む通信網である。店舗管理サーバ30と店舗端末40とは、例えば専用の通信回線で接続されている。
なお、図1には、端末装置20が1台だけ図示されているが、実際には、電子クーポンサービスを受けることができる端末装置20は複数存在してもよい。また、店舗管理サーバ30は、一店舗につき一台設置されてもよいし、複数店舗につき一台設置されてもよいし、サービス提供者毎に一台ずつ設置されてもよい。また、店舗端末40は、電子クーポンを利用可能な各店舗に設置され、実際には複数存在してもよい。また、店舗端末40は、必ずしも非接触IC通信に対応していなくてもよく、QRコード等の二次元化されたバーコードを携帯端末の画面に表示させ、リーダを用いて電子クーポンを読み取るような構成であってもよい。
図2は、ASPサーバ10のハードウェア構成を示すブロック図である。図2に示されるように、ASPサーバ10は、制御部11と、通信部12と、記憶部13とを備える。
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)及びRAM(Random Access Memory)を備えるマイクロプロセッサである。CPUは、ROMや記憶部13に記憶されたプログラムをRAMに読み出して実行することにより、ASPサーバ10の各部を制御する。
通信部12は、ネットワークNWに接続するためのインタフェースである。制御部11は、通信部12によりネットワークNW経由で接続された外部装置と通信する。
記憶部13は、例えばハードディスク装置を備え、制御部11により実行される電子クーポンサービスの提供に必要なプログラムを記憶する。また、記憶部13は、クーポン管理テーブル131、ユーザ管理テーブル132及び利用管理テーブル133を記憶する。
なお、記憶部13は、電子クーポンサービスの提供に関する別の情報を記憶してもよい。例えば、記憶部13は、電子クーポンの提供対象とするユーザの条件(年齢や性別等のユーザ属性)や、電子クーポンの提供期間、電子クーポンの利用可能期間等を記憶してもよい。しかし、本実施形態ではそれらの説明については省略する。また、本実施形態に係る電子クーポンは、電子バリューとも呼ばれる電子データであり、紙媒体として提供又は利用されるわけではない。しかし、以下の説明ではその説明の便宜上、電子クーポンの助数詞を「枚」とする。
図3は、クーポン管理テーブル131のデータ構造を示す図である。図3に示されるように、クーポン管理テーブル131は、「クーポンID」、「制限枚数(全体)」、「利用枚数(全体)」及び「残枚数(全体)」という各情報が対応づけられたデータテーブルである。
「クーポンID」は、ASPサーバ10により提供される電子クーポンを識別する識別情報である。「制限枚数(全体)」は、各電子クーポンに設定される、電子クーポンのトータルの利用可能枚数である。ASPサーバ10では、各端末装置20によって利用される電子クーポンの枚数の総和が全体の制限枚数を超えないように管理される。
「利用枚数(全体)」は、各端末装置20によって利用された電子クーポンの枚数の総和である。上記の全体の制限枚数は、この全体の利用枚数の上限値であるとも言える。「残枚数(全体)」は、各端末装置20に対して提供可能な電子クーポンの枚数である。ASPサーバ10では、各端末装置20に提供される電子クーポンの枚数の総和が、全体の残枚数を超えないように管理される。
図3に示される例では、電子クーポンの例として、クーポンID「CID001」を有する電子クーポンと、クーポンID「CID002」を有する電子クーポンが示されている。図3に示される第1行目のレコードは、クーポンID「CID001」の電子クーポンの全体の制限枚数が「1000」であり、全体の利用枚数が「0」であり、全体の残枚数が「1000」であることを示している。一方、第2行目のレコードは、クーポンID「CID002」の電子クーポンの全体の制限枚数が「5000」であり、全体の利用枚数が「0」であり、全体の残枚数が「5000」であることを示している。
図4は、ユーザ管理テーブル132のデータ構造を示す図である。図4に示されるように、ユーザ管理テーブル132は、「ユーザID」、「クーポンID」、「制限枚数(個人)」、「セット未確定枚数」、「セット済未利用枚数」、「利用枚数(個人)」及び「残枚数(個人)」という各情報が対応づけられたデータテーブルである。
「ユーザID」は、端末装置20のユーザを識別する識別情報である。このユーザIDは、例えばASPサーバ10においてユーザごとに割り当てられる。「クーポンID」は、クーポン管理テーブル131に書き込まれるクーポンIDと同じ情報である。
「制限枚数(個人)」は、各電子クーポンに設定される、1人のユーザによって利用可能な電子クーポンの最大枚数である。ASPサーバ10では、一ユーザあたりの電子クーポンの利用枚数が、この個人の制限枚数を超えないように管理される。この個人の制限枚数は、いわば個人の利用枚数の上限値である。
「セット未確定枚数」は、ASPサーバ10から端末装置20に対して電子クーポンの書込指示がなされたものの、端末装置20への書込処理(以下、「セット」ともいう。)が成功したか否かが未確定の電子クーポンの枚数である。セット未確定枚数とは、例えば、その書込処理が終了していない電子クーポンや、その書込処理が終了したものの、その成否がASPサーバ10に未だ通知されていない電子クーポンの枚数である。
「セット済未利用枚数」は、端末装置20への書込処理の成功が確定した電子クーポンの枚数であって、まだ利用されていない電子クーポンの枚数である。セット済未利用枚数は、端末装置20のICチップ25のメモリ領域251に記憶されていることをASPサーバ10の方で把握している電子クーポンの枚数である。セット済未利用枚数は、端末装置20によって利用可能な電子クーポンの枚数を示している。
「利用枚数(個人)」は、一のユーザによって既に利用された電子クーポンの枚数である。「残枚数(個人)」は、当該ユーザに対して提供可能な電子クーポンの枚数である。ASPサーバ10では、1人のユーザに対して提供される電子クーポンの枚数が、この個人の残枚数を超えないように管理される。
図4に示される例では、ユーザ管理データの一例として、ユーザID「UID001」を有するユーザに関連する情報が示されている。例えば、図4に示される第1行目のレコードは、クーポンID「CID001」の電子クーポンの個人の制限枚数が「10」であり、セット未確定枚数、セット済未利用枚数及び個人の利用枚数がそれぞれ「0」であり、個人の残枚数が「10」であることを示している。
図5は、利用管理テーブル133のデータ構造を示す図である。図5に示されるように、利用管理テーブル133は、「ユーザID」、「クーポン書込情報」及び「利用禁止フラグ」という各情報が対応づけられたデータテーブルである。
「ユーザID」は、ユーザ管理テーブル132に書き込まれるユーザIDと同じ情報である。「クーポン書込情報」は、端末装置20に対してASPサーバ10により電子クーポンの書込処理が指示された日時に基づき特定される情報である。「利用禁止フラグ」は、端末装置20による電子クーポンの利用を禁止するべきか否かを示す情報である。電子クーポンの利用を禁止するべき場合には、「ON」に設定され、禁止すべきでない場合には「OFF」に設定される。
図5に示される例では、利用管理データの一例として、ユーザID「UID001」を有するユーザに関連する情報が示されている。この例で示される第1行目のレコードは、クーポン書込情報は書き込まれておらず、利用禁止フラグはOFFに設定されていることを示している。
図6は、端末装置20のハードウェア構成を示すブロック図である。図6に示されるように、端末装置20は、制御部21と、音声入出力部22と、無線通信部23と、UI(UserInterface)部24と、ICチップ25と、記憶部26とを備える。
制御部21は、CPU、ROM及びRAMを有するマイクロプロセッサを備える。CPUは、ROMや記憶部26に記憶されたプログラムをRAMに読み出して実行することにより、端末装置20の各部を制御する。音声入出力部22は、マイクロホンやスピーカを有し、端末装置20において音声の入出力に関わる機能を実現する。無線通信部23は、無線通信回路やアンテナを備える、ネットワークNWに接続するためのインタフェースである。UI部24は、例えばタッチパネルを備え、ユーザからの操作を受け付けるとともに、画像を表示する。
ICチップ25は、プロセッサと、アンテナと、データの読み書きに用いられるメモリ領域251とを有している、近接型の非接触通信を行うためのICチップである。ICチップ25のプロセッサは、アンテナにより受信した信号又は制御部21から出力される信号に応じてメモリ領域251にアクセスし、データの読み出し又はデータの書き込みを行う。
メモリ領域251には、電子クーポンが書き込まれる。具体的には、電子クーポンを識別するクーポンIDと、その電子クーポンの枚数とが対応づけて書き込まれる。また、電子クーポンが書き込まれる際には、その電子クーポンの書込処理が指示された日時に基づき特定される情報を示すクーポン書込情報があわせて書き込まれる。
メモリ領域251は、複数のサービス提供者によって共有されるメモリ領域である。メモリ領域251には、複数のサービス提供者のうちのいずれか1のサービス提供者の電子クーポンのみが書き込まれる。例えば、あるサービス提供者の電子クーポンがメモリ領域251に記憶されている状態において、他のサービス提供者の電子クーポンを新たに書き込まれる場合には、新たに書き込まれる電子クーポンによって、元々メモリ領域251に記憶されていた電子クーポンは上書きされる。また、同一のサービス提供者の電子クーポンを新たに書き込む場合であっても、元々メモリ領域251に記憶されていた電子クーポンは上書きされる。よって、メモリ領域251には、2以上のクーポン書込情報が記憶されることはない。なお、同一のサービス提供者の電子クーポンであれば、複数の電子クーポンを同時にメモリ領域251に記憶することができる。
また、ICチップ25は、ユーザIDをメモリ領域251以外の所定のメモリ領域に記憶する。
端末装置20は、書込処理によってメモリ領域251の電子クーポンを削除してしまった場合でも、ASPサーバ10に問い合わせることによって、削除前の状態に戻すことができる。これは、ASPサーバ10が、ユーザ管理テーブル132において、ユーザごとに電子クーポンの提供及び利用に関する情報を管理しているからである。
記憶部26は、例えばEEPROMを備え、制御部21が実行するプログラムのほか、クーポン管理アプリケーション261を記憶する。制御部21は、クーポン管理アプリケーション261を実行することにより、アプリケーション管理サーバ50と通信を行って電子クーポンの書込処理を実行する。端末装置20において電子クーポンの提供を受ける際に、このクーポン管理アプリケーション261が実行される。
次に、ASPサーバ10の制御部11の機能的構成について説明する。図7は、ASPサーバ10の電子クーポンの提供及び利用に係る機能のうち、本発明に特徴的な機能の構成を示す機能ブロック図である。図7に示されるように、ASPサーバ10の制御部11は、プログラムを実行することにより、記憶制御部111と、更新制御部112と、書込指示部113と、フラグ設定部114と、出力部115という機能を実現する。
記憶制御部111は、端末装置20に対して電子クーポンが提供される際に、端末装置20のユーザを識別するユーザIDと、当該端末装置が有するメモリ領域に当該電子クーポンが書き込み指示された日時に基づき特定される情報を示すクーポン書込情報とを対応づけて記憶部に記憶するように制御する。具体的には、記憶制御部111は、ユーザIDと、提供対象となった電子クーポンが端末装置20に書き込み指示された日時に基づき特定される情報を含むクーポン書込情報とを対応づけて利用管理テーブル133に書き込むように制御する。
なおここで、「クーポン書込情報」という概念には、電子クーポンが書き込まれた日付を示すクーポン書込日時だけでなく、クーポン書込日時に基づいて一意に定まる、関数により生成される乱数も含む。また、「クーポン書込情報」という概念には、上記のクーポン書込日時又は乱数に加えて、クーポン書込情報に対して設定される有効期限や利用地域に関する情報、本人であるか否かを判断できる情報(ユーザ属性情報)、本人認証を電子クーポンの利用時に要求するフラグを付加したものも含まれる。またここで、「クーポン書込み日時」という概念には、電子クーポンが書き込まれた日付と時刻の組からなる情報だけでなく、電子クーポンが書き込まれた日付のみからなる情報や、電子クーポンが書き込まれた時刻のみからなる情報が含まれる。
更新制御部112は、端末装置20に対して電子クーポンが提供される際に、当該端末装置のユーザを識別するユーザIDとクーポン書込情報とが記憶部において対応づけられて記憶されている場合に、当該参照データを、別のクーポン書込情報に更新するよう制御する。具体的には、更新制御部112は、端末装置20のユーザを識別するユーザIDとクーポン書込情報とが利用管理テーブル133において対応づけて記憶されている場合に、記憶されているクーポン書込情報を、端末装置20に対して電子クーポンの書込処理の指示がなされた日時に基づき特定される情報を示すクーポン書込情報に更新するよう制御する。
なお、更新制御部112は、更新制御を、電子クーポンが提供される端末装置20に対して書込指示部113により端末装置20のメモリ領域251に当該電子クーポンを書き込むよう指示が行われ、当該書込処理が端末装置20において行われた後であって、当該書込処理の結果(具体的には、当該書込処理の成功)がASPサーバ10に通知された後に実行する。
書込指示部113は、端末装置20に対して電子クーポンが提供される際に、端末装置20に対して、端末装置20が有するメモリ領域251にその電子クーポンを書き込むよう指示する。
フラグ設定部114は、端末装置20に対して電子クーポンが提供される際に、当該端末装置のユーザを識別するユーザIDとクーポン書込情報とが記憶部において対応づけられて記憶されている場合に、書込指示部113により端末装置20に対して、端末装置20が有するメモリ領域251に前記電子クーポンを書き込むよう指示が行われる前に、端末装置20のユーザを識別するユーザIDと対応づけて、記憶部において、当該ユーザが使用する端末装置20による電子クーポンの利用を禁止すべき旨を示す利用禁止フラグを設定するよう制御する。
具体的には、フラグ設定部114は、端末装置20のユーザを識別するユーザIDとクーポン書込情報とが利用管理テーブル133において対応づけて記憶されている場合に、書込指示部113により端末装置20に対して、端末装置20が有するメモリ領域251に前記電子クーポンを書き込むよう指示が行われる前に、そのユーザIDと対応づけて利用管理テーブル133において利用禁止フラグをONに設定するよう制御する。
また、フラグ設定部114は、上記のように利用禁止フラグを設定した後、更新制御部112により、記憶部においてそのユーザIDと対応づけて記憶されているクーポン書込情報が、別のクーポン書込情報に更新されるように制御された後に、当該ユーザIDと対応づけて設定されている利用禁止フラグを解除するよう制御する。具体的には、フラグ設定部114は、利用禁止フラグをONに設定した後、更新制御部112により、利用管理テーブル133においてそのユーザIDと対応づけて記憶されているクーポン書込情報が、端末装置20に対して電子クーポンの書込処理の指示がなされた日時に基づき特定される情報を示すクーポン書込情報に更新されるように制御された後に、当該ユーザIDと対応づけて設定されている利用禁止フラグをOFFに設定するよう制御する。
なお、フラグ設定部114は、端末装置20に対して電子クーポンが提供される際に、端末装置20から取得されるクーポン書込情報と、端末装置20のユーザを識別するユーザIDと記憶部において対応づけて記憶されているクーポン書込情報とが一致する場合には、その記憶部において、端末装置20のユーザを識別するユーザIDと対応づけて利用禁止フラグを設定するように制御しない。具体的には、フラグ設定部114は、電子クーポン提供時に端末装置20から通知されたクーポン書込情報と、端末装置20のユーザを識別するユーザIDと利用管理テーブル133において対応づけて記憶されているクーポン書込情報とが一致する場合には、利用管理テーブル133において、そのユーザIDと対応づけて利用禁止フラグをONに設定するように制御しない。
また、フラグ設定部114は、端末装置20に対して電子クーポンが提供される際に、端末装置20のユーザを識別するユーザIDと対応づけてクーポン書込情報が記憶部において記憶されていない場合には、その記憶部において、端末装置20のユーザを識別するユーザIDと対応づけて利用禁止フラグを設定するように制御しない。具体的には、フラグ設定部114は、端末装置20のユーザを識別するユーザIDと対応づけてクーポン書込情報が利用管理テーブル133において記憶されていない場合には、利用管理テーブル133において、そのユーザIDと対応づけて利用禁止フラグをONに設定するように制御しない。
出力部115は、端末装置20によって電子クーポンが利用される際に、端末装置20から取得されるクーポン書込情報と、端末装置20のユーザを識別するユーザIDと記憶部において対応づけて記憶されているクーポン書込情報とが一致する場合に、端末装置20による前記電子クーポンの利用を許可する信号を出力する。具体的には、出力部115は、端末装置20から通知されたクーポン書込情報と、端末装置20のユーザを識別するユーザIDと利用管理テーブル133において対応づけて記憶されているクーポン書込情報とが一致する場合に、端末装置20による前記電子クーポンの利用を許可する信号を出力する。
なお、出力部115は、端末装置20によって電子クーポンが利用される際に、端末装置20から取得されるクーポン書込情報と、端末装置20のユーザを識別するユーザIDと記憶部において対応づけて記憶されているクーポン書込情報とが一致する場合であっても、その記憶部において当該ユーザIDに対応づけて利用禁止フラグが設定されている場合には、端末装置20による前記電子クーポンの利用を拒絶する信号を出力する。
具体的には、出力部115は、端末装置20から通知されたクーポン書込情報と、端末装置20のユーザを識別するユーザIDと利用管理テーブル133において対応づけて記憶されているクーポン書込情報とが一致する場合であっても、利用管理テーブル133においてそのユーザIDに対応づけて利用禁止フラグがONに設定されている場合には、端末装置20による前記電子クーポンの利用を拒絶する信号を出力する。
また、出力部115は、端末装置20によって電子クーポンが利用される際に、当該端末装置のユーザを識別するユーザIDと対応づけて記憶部において利用禁止フラグが設定されている場合であっても、当該電子クーポンが、その利用枚数が制限されていない電子クーポンである場合には、端末装置20による前記電子クーポンの利用を許可する信号を出力する。
具体的には、出力部115は、当該端末装置のユーザを識別するユーザIDと対応づけて利用管理テーブル133において利用禁止フラグが設定されている場合であっても、利用対象の電子クーポンのクーポンIDに対してクーポン管理テーブル131及びユーザ管理テーブル132において制限枚数が設定されていない場合には、端末装置20による当該電子クーポンの利用を許可する信号を出力する。
また、出力部115は、端末装置20によって電子クーポンが利用される際に、端末装置20から取得されるクーポン書込情報と、端末装置20のユーザを識別するユーザIDと記憶部において対応づけて記憶されているクーポン書込情報とが一致しない場合であっても、当該電子クーポンが、その利用枚数が制限されていない電子クーポンである場合には、端末装置20による前記電子クーポンの利用を許可する信号を出力する。
具体的には、出力部115は、端末装置20から通知されたクーポン書込情報と、端末装置20のユーザを識別するユーザIDと利用管理テーブル133において対応づけて記憶されているクーポン書込情報とが一致しない場合であっても、利用対象の電子クーポンのクーポンIDに対してクーポン管理テーブル131及びユーザ管理テーブル132において制限枚数が設定されていない場合には、端末装置20による当該電子クーポンの利用を許可する信号を出力する。
1−2.動作
次に、通信システム1の動作について説明する。図8は、通信システム1の動作を示すシーケンスチャートである。
端末装置20は、電子クーポンを取得する際、ASPサーバ10に対してクーポン取得要求を送信する(ステップSa1)。具体的には、端末装置20は、取得しようとする電子クーポンを示すクーポンIDと、その電子クーポンの取得枚数を示す情報と、ICチップ25に記憶されているユーザIDとを含むクーポン取得要求をASPサーバ10に送信する。このとき端末装置20は、ICチップ25のメモリ領域251にクーポン書込情報が記憶されている場合には、電子クーポンの再取得に際しこのクーポン書込情報もクーポン取得要求に含めて送信してもよい。
図9は、端末装置20が電子クーポンを取得しようとする際にUI部24に表示される画面の一例を示している。端末装置20のユーザは、UI部24を操作して、電子クーポンの取得枚数をプルダウンメニューPa1,Pa2から選択し、その後、「クーポンを取得」と付されたソフトボタンBaを選択する。なお、ASPサーバ10にてクーポン書込情報が記憶されている場合には、ソフトボタンBaを「クーポンを再取得」と表示しても良い。
端末装置20からクーポン取得要求を受信したASPサーバ10は、セット開始処理を実行する(ステップSa2)。ここで、セット開始処理とは、ASPサーバ10が端末装置20に対して電子クーポンの書込処理を指示するまでの処理である。図10は、セット開始処理を示すフローチャートである。
図10のステップSa21においてASPサーバ10は、クーポン取得要求に含まれるユーザIDと対応づけて利用管理テーブル133においてクーポン書込情報が記憶されているか否かについて判断する。
この判断の結果、クーポン取得要求にクーポン書込情報が含まれていない場合には(ステップSa21;NO)、ASPサーバ10はステップSa24の処理を実行する。一方、この判断の結果、クーポン取得要求にクーポン書込情報を示す情報が含まれている場合には(ステップSa21;YES)、ASPサーバ10はステップSa22の処理を実行する。
ステップSa22においてASPサーバ10は、クーポン取得要求により示されるクーポン書込情報と、クーポン取得要求に含まれるユーザIDと対応づけて利用管理テーブル133に記憶されているクーポン書込情報とが一致するか否かについて判断する。すなわち、ASPサーバ10は、今回電子クーポンの取得を要求している端末装置20と、前回電子クーポンの取得を要求した端末装置20とが同一の端末装置であるか否かについて判断する。
この判断の結果、両クーポン書込情報が一致する場合には(ステップSa22;YES)、ASPサーバ10はステップSa24の処理を実行する。一方、この判断の結果、両クーポン書込情報が一致しない場合には(ステップSa22;NO)、ASPサーバ10はステップSa23の処理を実行する。
ステップSa23においてASPサーバ10は、クーポン取得要求に含まれるユーザIDと対応づけて利用管理テーブル133において利用禁止フラグをONに設定する。この結果、クーポン取得要求に含まれるユーザIDと対応づけられる電子クーポンの利用は禁止されることになる。
次に、ステップSa24においてASPサーバ10は、取得の対象となっている枚数の電子クーポンが提供可能か否かについて判断する。具体的には、ASPサーバ10は、クーポン管理テーブル131とユーザ管理テーブル132とを参照して、クーポン取得要求に含まれるクーポンIDにより示される電子クーポンの全体の残枚数及び個人の残枚数が、それぞれクーポン取得要求により示される取得枚数以上であるか否かについて判断する。
この判断の結果、電子クーポンの全体の残枚数又は個人の残枚数が、取得枚数未満である場合には(ステップSa24;NO)、ASPサーバ10は端末装置20に対してエラー通知を送信し(ステップSa25)、セット開始処理を終了する。一方、この判断の結果、電子クーポンの全体の残枚数及び個人の残枚数が、取得枚数以上である場合には(ステップSa24;YES)、ASPサーバ10はステップSa26の処理を実行する。
ステップSa26においてASPサーバ10は、取得される電子クーポンの枚数をセット未確定枚数として設定する。具体的には、ASPサーバ10は、まず、クーポン取得要求に含まれるクーポンIDに示される電子クーポンについて、クーポン管理テーブル131において、全体の残枚数から取得枚数を減じる。次に、ASPサーバ10は、ユーザ管理テーブル132において、クーポン取得要求に含まれるユーザIDと対応づけて、当該クーポンIDを書き込み、かつ、クーポン取得要求により示される取得枚数をセット未確定枚数として設定する。
例えば、取得対象となる電子クーポンのクーポンIDが「CID001」であって、取得枚数が「5」であって、取得される電子クーポンの残枚数が「1000」である場合には、図11(a)に示されるように、クーポン管理テーブル131において、クーポンID「CID001」と対応づけられる全体の残枚数「1000」が「5」減じられ、「995」となる。また、さらに、電子クーポンが提供されるユーザのユーザIDが「UID001」である場合には、図11(b)に示されるように、ユーザ管理テーブル132において、ユーザID「UID001」に対応づけて、クーポンID「CID001」が書き込まれ、かつ、取得枚数「5」がセット未確定枚数として設定される。
以上が、セット開始処理についての説明である。
セット開始処理が終了すると、ASPサーバ10は、端末装置20に対する電子クーポンの提供を依頼する処理依頼をアプリケーション管理サーバ50に対して送信する(図8、ステップSa3)。ここで、処理依頼には、端末装置20に提供される電子クーポンに関する情報が含まれる。具体的には、電子クーポンを識別するクーポンIDと、その電子クーポンの取得枚数を示す情報が含まれる。
ASPサーバ10から処理依頼を受信したアプリケーション管理サーバ50は、当該処理依頼を識別する問合せIDを生成し、この問合せIDをASPサーバ10に返信する(ステップSa4)。
アプリケーション管理サーバ50から問合せIDを受信したASPサーバ10は、端末装置20に対して電子クーポンの書込処理を指示するための書込指示を当該装置に対して送信する(ステップSa5)。ここで、書込指示には、アプリケーション管理サーバ50から受信した問合せIDと、当該書込指示を行った日時に基づき特定される情報を含むクーポン書込情報とが含まれる。
ASPサーバ10から書込指示を受信した端末装置20は、クーポン管理アプリケーション261を実行し、当該書込指示に含まれている問合せIDをアプリケーション管理サーバ50に送信する(ステップSa6)。
端末装置20から問合せIDを受信したアプリケーション管理サーバ50は、当該問合せIDにより識別される処理依頼に含まれていた電子クーポンに関する情報を端末装置20に送信する(ステップSa7)。ここで、電子クーポンに関する情報とは、電子クーポンを識別するクーポンIDと、その電子クーポンの取得枚数を示す情報である。
電子クーポンに関する情報を受信した端末装置20は、当該情報に基づいて電子クーポンの書込処理を実行する(ステップSa8)。具体的には、端末装置20は、ICチップ25のメモリ領域251に、電子クーポンを識別するクーポンIDと、その電子クーポンの枚数とを対応づけて書き込む。また、端末装置20は、ASPサーバ10から受信した書込指示により示されるクーポン書込情報をあわせてメモリ領域251に書き込む。
書込処理が終了すると、端末装置20は、書込処理の結果を示す結果通知をアプリケーション管理サーバ50に対して送信する(ステップSa9)。この結果通知には、書込処理の成否を示す情報が含まれる。また、端末装置20は、書込処理が終了したことを示す終了通知をASPサーバ10に送信する(ステップSa10)。
端末装置20から終了通知を受信したASPサーバ10は、アプリケーション管理サーバ50に対して、書込処理の成否について問い合わせを行う(ステップSa11)。この問い合わせを受けたアプリケーション管理サーバ50は、ASPサーバ10に対して、書込処理の成否を知らせる結果通知を送信する(ステップSa12)。この結果通知には、書込処理の成否を示す情報が含まれる。
アプリケーション管理サーバ50から結果通知を受信したASPサーバ10は、セット確定処理を実行する(ステップSa13)。このセット確定処理とは、端末装置20において実行された書込処理の結果に応じてASPサーバ10の各種データテーブルを更新する処理である。図12は、セット確定処理を示すフローチャートである。
ステップSa1301においてASPサーバ10は、アプリケーション管理サーバ50から受信した結果通知に基づいて、端末装置20において実行された書込処理の成否について判断する。この判断の結果、書込処理の成功が確定した場合には(ステップSa1301;YES)、ASPサーバ10は、ステップSa1302の処理を実行する。一方、この判断の結果、書込処理の失敗が確定した場合には(ステップSa1301;NO)、ASPサーバ10は、ステップSa1306の処理を実行する。
ステップSa1302においてASPサーバ10は、端末装置20において利用されなかった電子クーポンを回収する処理を実行する。具体的には、ASPサーバ10は、まず、端末装置20のユーザのユーザIDとユーザ管理テーブル132において対応づけられているセット済未利用枚数をすべてクリアする。次に、ASPサーバ10は、ユーザ管理テーブル132においてクリアしたセット済未利用枚数を、クーポン管理テーブル131において、対応する電子クーポンの全体の残枚数に加算する。このような処理を行う理由は、電子クーポンの書込処理が行われる場合には、すでにメモリ領域251に記憶されている電子クーポンが、新しい電子クーポンにより上書きされるからである。
例えば、ユーザID「UID001」を有するユーザについて、クーポンID「CID001」と対応づけてユーザ管理テーブル132においてセット済未利用枚数「5」が記憶されていた場合には、図13(a)に示されるように、当該テーブルにおいて、ユーザID「UID001」と対応づけられるセット済未利用枚数「5」が「0」になる。また、さらに、クーポン管理テーブル131において、当該クーポンID「CID001」と対応づけられる全体の残枚数が「995」である場合には、図13(b)に示されるように、当該テーブルにおいて、当該全体の残枚数「995」は「5」増加し、「1000」になる。
次に、ASPサーバ10は、セット開始処理においてセット未確定枚数として設定されていた取得枚数を、セット済未利用枚数として設定する処理を行う(ステップSa1303)。具体的には、ASPサーバ10は、端末装置20のユーザのユーザIDとユーザ管理テーブル132において対応づけられているセット未確定枚数を、セット済未利用枚数として設定し、かつ、当該セット済未利用枚数をクリアする。
例えば、セット開始処理においてユーザID「UID001」に対応づけて、ユーザ管理テーブル132において、クーポンID「CID001」を有する電子クーポンのセット未確定枚数として「5」が設定されていた場合には、図14に示されるように、当該セット未確定枚数「5」は「0」になり、セット済未利用枚数は「0」から「5」になる。
次に、ASPサーバ10は、利用管理テーブル133に記憶されているクーポン書込情報を更新する(ステップSa1304)。具体的には、ASPサーバ10は、端末装置20のユーザのユーザIDと利用管理テーブル133において対応づけられているクーポン書込情報に含まれる日時を、端末装置20に対して電子クーポンの書込指示を行った日時により更新する。
次に、ASPサーバ10は、利用禁止フラグをOFFにする(ステップSa1305)。具体的には、ASPサーバ10は、端末装置20のユーザのユーザIDと利用管理テーブル133において対応づけられている利用禁止フラグがONに設定されている場合に、OFFにする。そして、ASPサーバ10は、セット確定処理を終了する。
なお、ステップSa1301の判断において、書込処理の失敗が確定した場合には(ステップSa1301;NO)、ASPサーバ10は、セット開始処理においてセット未確定枚数として設定されていた取得枚数をクリアして、全体の残枚数に戻す処理を行う(ステップSa1306)。具体的には、ASPサーバ10は、端末装置20のユーザのユーザIDとユーザ管理テーブル132において対応づけられているセット未確定枚数をクリアし、クリアしたセット未確定枚数を、クーポン管理テーブル131において、対応する電子クーポンの全体の残枚数に加算する。
例えば、セット開始処理においてユーザID「UID001」を有するユーザについて、クーポンID「CID001」と対応づけてユーザ管理テーブル132においてセット未確定枚数「5」が設定されていた場合には、図15(a)に示されるように、当該テーブルにおいて、ユーザID「UID001」と対応づけられるセット未確定枚数「5」が「0」になる。また、さらに、クーポン管理テーブル131において、当該クーポンID「CID001」と対応づけられる全体の残枚数が「995」である場合には、図15(b)に示されるように、当該テーブルにおいて、当該全体の残枚数「995」は「5」増加し、「1000」になる。
ステップSa1306の処理の終了後、ASPサーバ10は、利用禁止フラグをOFFにしてから(ステップSa1305)、セット確定処理を終了する。
以上が、セット確定処理についての説明である。
なお、このセット確定処理において、ステップSa1302からステップSa1304までの処理は、その順序を入れ替えてもよい。
セット確定処理の終了後、端末装置20のユーザが電子クーポンを利用すべく当該端末を店舗端末40のリーダ/ライタ41にかざすと、リーダ/ライタ41はICチップ25に記憶されたユーザIDとクーポン書込情報とを読み取る。そして、店舗端末40は、読み取った情報を店舗管理サーバ30に送信する。店舗端末40から当該情報を受信した店舗管理サーバ30は、ASPサーバ10に対して、電子クーポンの利用の許否を問い合わせる利用許否問い合わせを送信する(図8、ステップSa14)。この利用許否問い合わせには、ICチップ25から読み出したユーザIDと、クーポン書込情報を示す情報とが含まれる。
店舗管理サーバ30から利用許否問い合わせを受信したASPサーバ10は、利用許否判定処理を実行する(ステップSa15)。図16は、利用許否判定処理を示すフローチャートである。
ステップSa1501においてASPサーバ10は、利用対象となる電子クーポンが、その利用につき制限枚数が設定されているか否かについて判断する。具体的には、ASPサーバ10は、利用許否問い合わせに含まれるユーザIDとユーザ管理テーブル132において対応づけられているクーポンIDについて、クーポン管理テーブル131とユーザ管理テーブル132とにおいて制限枚数が設定されているか否かについて判断する。
この判断の結果、その電子クーポンの利用につき制限枚数が設定されていない場合には(ステップSa1501;NO)、ASPサーバ10は、電子クーポンの利用を許可すると判定し(ステップSa1504)、利用許否判定処理を終了する。一方、この判断の結果、その電子クーポンの利用につき制限枚数が設定されている場合には(ステップSa1501;YES)、ASPサーバ10はステップSa1502の処理を実行する。
ステップSa1502においてASPサーバ10は、電子クーポンの利用が禁止されているか否かについて判断する。具体的には、ASPサーバ10は、利用許否問い合わせに含まれるユーザIDについて、利用管理テーブル133において、利用禁止フラグがONに設定されているか否かについて判断する。
この判断の結果、利用禁止フラグがONに設定されている場合には(ステップSa1502;YES)、ASPサーバ10は、電子クーポンの利用は許可しないと判定し(ステップSa1505)、利用許否判定処理を終了する。一方、この判断の結果、利用禁止フラグがOFFに設定されている場合には(ステップSa1502;NO)、ASPサーバ10は、ステップSa1503の処理を実行する。
ステップSa1503においてASPサーバ10は、利用許否問い合わせにより示されるクーポン書込情報と、利用許否問い合わせに含まれるユーザIDと利用管理テーブル133において対応づけられているクーポン書込情報とが一致するか否かについて判断する。
この判断の結果、両クーポン書込情報が一致する場合には(ステップSa1503;YES)、ASPサーバ10は、電子クーポンの利用を許可すると判定し(ステップSa1504)、利用許否判定処理を終了する。一方、この判断の結果、両クーポン書込情報が一致しない場合には(ステップSa1503;NO)、ASPサーバ10は、電子クーポンの利用を許可しないと判定し(ステップSa1505)、利用許否判定処理を終了する。
以上が、利用許否判定処理についての説明である。
なお、この利用許否判定処理において、ステップSa1501からステップSa1503までの処理は、その順序を入れ替えてもよい。
利用許否判定処理が終了すると、ASPサーバ10は、当該処理の結果を通知する結果通知を店舗管理サーバ30に対して送信する(図8、ステップSa16)。ASPサーバ10から結果通知を受信した店舗管理サーバ30は、その結果通知を店舗端末40に転送する。店舗管理サーバ30から結果通知の転送を受けた店舗端末40は、その結果通知が、電子クーポンの利用を許可するものであった場合には、自機の表示部に、ICチップ25から読み取った電子クーポンの情報を表示し、ユーザによる選択を受け付ける。一方、その結果通知が、電子クーポンの利用を許可しないものであった場合には、自機の表示部にエラー通知を表示する。
端末装置20によって電子クーポンが利用されると、店舗端末40は、利用された電子クーポンのクーポンIDと、その電子クーポンの利用枚数を示す情報と、ユーザIDとを含む利用通知を店舗管理サーバ30に送信する。店舗端末40から利用通知を受信した店舗管理サーバ30は、その利用通知をASPサーバ10に転送する(ステップSa17)。
店舗管理サーバ30から利用通知の転送を受けたASPサーバ10は、その利用通知に基づいて各データテーブルを更新する処理を行う(ステップSa18)。具体的には、ASPサーバ10は、利用通知に含まれるクーポンIDとユーザIDとにユーザ管理テーブル132において対応づけられるセット済未利用枚数を、利用通知に示される利用枚数だけ減算し、また、個人の利用枚数に、利用通知に示される利用枚数を加算する。また、ASPサーバ10は、個人の残枚数から、利用通知に示される利用枚数だけ減算する。
例えば、ユーザID「UID001」のユーザによって、クーポンID「CID001」の電子クーポンが1枚利用された場合には、図17に示されるように、ユーザ管理テーブル132において、ユーザID「UID001」とクーポンID「CID001」とに対応づけられるセット済未利用枚数「5」が「1」減じられ、「4」となり、個人の利用枚数「0」が「1」増加し、「1」となる。また、個人の残枚数「10」が「1」減じられ、「9」となる。
以上が、通信システム1の動作についての説明である。
次に、以上説明した通信システム1の動作について、より具体的な事例に即して説明する。図18は、以下の説明において参照される具体的な事例を示す図である。以下の説明では特に、クーポン書込情報及び利用禁止フラグの設定と、当該設定と電子クーポンの利用の可否の関係について説明する。
ユーザAが使用する端末装置20Aが、電子クーポンAを1枚取得することを要求するクーポン取得要求をASPサーバ10に送信すると(イベント1)、ASPサーバ10はセット開始処理を実行する(イベント2)。このセット開始処理では、電子クーポンA、1枚が、セット未確定枚数として設定される。なお、この時点では、図18に示されるように、ASPサーバ10においてクーポン書込情報が記憶されていないため、利用禁止フラグはONに設定されない。
セット開始処理が終了し、ASPサーバ10から端末装置20Aに対して書込指示が送信されると、端末装置20Aにおいて書込処理が実行される(イベント3)。この書込処理では、電子クーポンA、1枚が、端末装置20Aに書き込まれる。
書込処理が終了し、端末装置20AからASPサーバ10に対して終了通知が送信されると、ASPサーバ10においてセット確定処理が実行される(イベント4)。このセット確定処理では、セット未確定枚数として設定されていた電子クーポンA、1枚が、セット済未利用枚数として設定される。また、端末装置20Aのクーポン書込日時がクーポン書込み情報の一情報として記憶される。
次に、ユーザAが使用する端末装置20Aが、電子クーポンAを5枚取得することを要求するクーポン取得要求をASPサーバ10に送信すると(イベント5)、ASPサーバ10はセット開始処理を実行する(イベント6)。このセット開始処理では、電子クーポンA、5枚が、セット未確定枚数として設定される。なお、この時点では、端末装置20Aに記憶されているクーポン書込情報と、ASPサーバ10において記憶されるクーポン書込情報とが一致するため、利用禁止フラグはONに設定されない。
セット開始処理が終了し、ASPサーバ10から端末装置20Aに対して書込指示が送信されると、端末装置20Aにおいて書込処理が実行される(イベント7)。この書込処理では、電子クーポンA、5枚が、端末装置20Aに書き込まれる。
書込処理が終了し、端末装置20AからASPサーバ10に対して終了通知が送信されると、ASPサーバ10においてセット確定処理が実行される(イベント8)。このセット確定処理では、セット未確定枚数として設定されていた電子クーポンA、5枚が、セット済未利用枚数として設定される。また、端末装置20Aのクーポン書込情報が記憶される。
次に、ユーザAが使用する端末装置20Bが、電子クーポンAを5枚取得することを要求するクーポン取得要求をASPサーバ10に送信すると(イベント9)、ASPサーバ10はセット開始処理を実行する(イベント10)。このセット開始処理では、電子クーポンA、5枚が、セット未確定枚数として設定される。また、この時点においてASPサーバ10に記録されているクーポン書込情報は、端末装置20Aのクーポン書込情報であるため、利用禁止フラグがONに設定される。この結果、端末装置20Aによる電子クーポンの利用は禁止される。
セット開始処理が終了し、ASPサーバ10から端末装置20Bに対して書込指示が送信されると、端末装置20Bにおいて書込処理が実行される(イベント11)。この書込処理では、電子クーポンA、5枚が、端末装置20Bに書き込まれる。ただし、この時点ではまだASPサーバ10において端末装置20Aのクーポン書込情報が記憶されているため、端末装置20Bによる電子クーポンの利用は禁止される。
書込処理が終了し、端末装置20BからASPサーバ10に対して終了通知が送信されると、ASPサーバ10においてセット確定処理が実行される(イベント12)。このセット確定処理では、セット未確定枚数として設定されていた電子クーポンA、5枚が、セット済未利用枚数として設定される。また、端末装置20Bのクーポン書込情報が記憶され、利用禁止フラグがOFFに設定される。この結果、端末装置20Bによる電子クーポンの利用は可能となる一方で、端末装置20Aによる電子クーポンの利用は、利用禁止フラグはOFFに設定されたものの、クーポン書込情報が端末装置20Bのクーポン書込情報に更新されているため、引き続き禁止されることになる。
以上説明した本実施形態に係る通信システム1によれば、ユーザによって端末装置20に電子クーポンが書き込まれる際に、当該装置に対して電子クーポンの書込指示がなされた日時に基づき特定される情報を示すクーポン書込情報がASPサーバ10に記憶される。そして、当該ユーザによって電子クーポンが利用される際には、その利用時の端末装置20に記憶されるクーポン書込情報と、ASPサーバ10において記憶されているクーポン書込情報とが比較され、両者が一致した場合にのみ、電子クーポンの利用が許可される。よって、例えば、1人のユーザが、1人あたりの利用制限枚数が10枚であるところ、1台目の端末装置20に10枚の電子クーポンを書き込み、2台目の端末装置20にも10枚の電子クーポンを書き込んだとしても、最初に書きこみを行った端末装置20については、電子クーポンの利用が禁止されることになる。
また、本実施形態に係る通信システム1によれば、すでに電子クーポンが提供されている端末装置20とは異なる端末装置20であって、同一のユーザによって使用される端末装置20に電子クーポンが提供される場合には、そのセット開始処理からセット確定処理にかけて利用禁止フラグがONに設定される。この結果、後で電子クーポンを取得することになる端末装置20に対して電子クーポンが書き込まれ、そのクーポン書込情報がASPサーバ10に記憶されるまでの間は、最初に電子クーポンを取得した端末装置20による電子クーポンの利用は禁止されることになる。
この点についてより具体的に説明すると、例えば図18に示される事例のイベント11において、端末装置20Aによる電子クーポンAの利用は、利用禁止フラグがONに設定されているため、禁止されている。しかし、もし利用禁止フラグがONに設定されていなければ、ASPサーバ10には端末装置20Aのクーポン書込情報が記憶されているため、端末装置20Aによる電子クーポンAの利用は許可されてしまう。このとき、もし電子クーポンAの利用制限枚数が5枚に設定されていたとすると、ユーザAは、この利用制限枚数を超えて、端末装置20Aと端末装置20Bとにより電子クーポンAを利用することができることになってしまう。
しかし、上記に説明した通り、端末装置20Bのためのセット開始処理では、利用禁止フラグがONに設定されるため、イベント11において端末装置20Aによる電子クーポンAの利用は禁止されることになる。
2.第2実施形態
上記の第1実施形態では、端末装置20にICチップ25を備えさせ、このICチップ25をリーダ/ライタ41にかざすことによって電子クーポンが利用されている。しかし、端末装置20にICチップ25を備えさせずに、端末装置20のUI部24に二次元コードを表示させて、これをリーダ/ライタ41により読み取らせることにより、電子クーポンを利用させるようにしてもよい。本実施形態では、このような態様について説明する。なお、以下の説明では、第1実施形態と同様の要素については、同様の参照符号を付し、その説明を省略する。
2−1.構成
図19は、本実施形態に係る通信システム1Aの構成を示す図である。通信システム1Aは、図19に示されるように、ASPサーバ10Aと、端末装置20Cと、店舗管理サーバ30と、店舗端末40とを備える。本実施形態では、第1実施形態と比較して、アプリケーション管理サーバ50が存在しない。
図20は、ASPサーバ10Aのハードウェア構成を示すブロック図である。図20に示されるように、ASPサーバ10Aは、第1実施形態に係るASPサーバ10と比較して、記憶部13に記憶されるデータテーブルが異なっている。具体的には、クーポン管理テーブル131と、ユーザ管理テーブル132Aと、利用管理テーブル133Aとが記憶される。なお、クーポン管理テーブル131のデータ構造については、第1実施形態と同様であるため、その説明を省略する。
図21は、ユーザ管理テーブル132Aのデータ構造を示す図である。ユーザ管理テーブル132Aは、図21に示されるように、「ユーザID」、「クーポンID」、「制限枚数(個人)」、「未利用枚数」、「利用枚数(個人)」及び「残枚数(個人)」という各情報が対応づけられたデータテーブルである。第1実施形態に係るユーザ管理テーブル132と比較して、「セット未確定枚数」及び「セット未利用枚数」に代えて、「未利用枚数」が格納される。この「未利用枚数」は、まだ利用されていない電子クーポンの枚数である。
図22は、利用管理テーブル133Aのデータ構造を示す図である。利用管理テーブル133Aは、図22に示されるように、「ユーザID」、「クーポン書込情報」及び「使用済みフラグ」という各情報が対応づけられたデータテーブルである。
「ユーザID」は、端末装置20Cのユーザを識別する識別情報である。「クーポン書込情報」は、端末装置20Cに電子クーポンが記憶される日時に基づき特定される情報である。「使用済みフラグ」は、電子クーポンがすでに利用済みであるか否かを示す情報である。電子クーポンがすでに利用済みである場合には、「YES」に設定され、まだ利用されていない場合には「NO」に設定される。
図23は、端末装置20Cのハードウェア構成を示すブロック図である。図23に示されるように、端末装置20Cは、ICチップ25とクーポン管理アプリケーション261とを備えない点において、第1実施形態に係る端末装置20と相違している。本実施形態に係る端末装置20Cでは、当該装置のユーザを識別するユーザIDや、ASPサーバ10Aから提供される二次元コードは、例えば記憶部26に記憶される。
2−2.動作
次に、通信システム1Aの動作について説明する。図24は、通信システム1Aの動作を示すシーケンスチャートである。
端末装置20Cは、電子クーポンを取得する際、ASPサーバ10Aに対してクーポン取得要求を送信する(ステップSb1)。このクーポン取得要求には、取得しようとする電子クーポンを示すクーポンIDと、その電子クーポンの取得枚数を示す情報と、記憶部26に記憶されているユーザIDとが含まれる。なお、ユーザIDは、当該クーポン取得要求とは別にASPサーバ10Aに送信するようにしてもよい。端末装置20Cからクーポン取得要求を受信したASPサーバ10Aは、発行処理を実行する(ステップSb2)。図25は、発行処理を示すフローチャートである。
ステップSb21においてASPサーバ10Aは、取得の対象となっている枚数の電子クーポンが提供可能か否かについて判断する。具体的には、ASPサーバ10Aは、クーポン管理テーブル131とユーザ管理テーブル132Aとを参照して、クーポン取得要求に含まれるクーポンIDにより示される電子クーポンの全体の残枚数及び個人の残枚数が、それぞれクーポン取得要求により示される取得枚数以上であるか否かについて判断する。
この判断の結果、電子クーポンの全体の残枚数又は個人の残枚数が、取得枚数未満である場合には(ステップSb21;NO)、ASPサーバ10Aは端末装置20Cに対してエラー通知を送信し(ステップSb22)、発行処理を終了する。一方、この判断の結果、電子クーポンの全体の残枚数及び個人の残枚数が、取得枚数以上である場合には(ステップSb21;YES)、ASPサーバ10AはステップSb23の処理を実行する。
また、電子クーポンに対して有効期限を設定する場合には、ステップSb23においてASPサーバ10Aは、端末装置20Cにおいて利用されなかった電子クーポンがある場合には、その電子クーポンを回収する処理を実行してもよい。具体的には、ASPサーバ10Aは、まず、端末装置20CのユーザのユーザIDとユーザ管理テーブル132Aにおいて対応づけられている未利用枚数をすべてクリアする。次に、ASPサーバ10Aは、ユーザ管理テーブル132Aにおいてクリアした未利用枚数を、クーポン管理テーブル131において、対応する電子クーポンの全体の残枚数に加算する。
次に、ASPサーバ10Aは、取得される電子クーポンの枚数を未利用枚数として設定する(ステップSb24)。具体的には、ASPサーバ10Aは、まず、クーポン取得要求に含まれるクーポンIDに示される電子クーポンについて、クーポン管理テーブル131において、全体の残枚数から取得枚数を減じる。次に、ASPサーバ10Aは、ユーザ管理テーブル132Aにおいて、クーポン取得要求に含まれるユーザIDと対応づけて、当該クーポンIDを書き込み、かつ、クーポン取得要求により示される取得枚数を未利用枚数として設定する。
次に、ASPサーバ10Aは、取得対象の電子クーポンを示す二次元コードを生成する(ステップSb25)。具体的には、ASPサーバ10Aは、クーポン取得要求に含まれるクーポンIDとユーザIDと、当該電子クーポンが発行される日時に基づき特定される情報(例えば、端末装置20Cに電子クーポンが記憶される日時)を示すクーポン書込情報とを組み合わせた文字列を二次元コードに変換する。なおここで、ASPサーバ10Aは、二次元コードに代えて一次元コードを生成するようにしてもよい。また、ASPサーバ10Aは、当該文字列を暗号化したり、当該文字列に電子署名(秘密鍵で暗号化されたハッシュ値)を付加した上で二次元コードに変換してもよい。
次に、ASPサーバ10Aは、クーポン取得要求に含まれるユーザIDと、上記のクーポン書込情報とを対応づけて利用管理テーブル133Aに書き込む(ステップSb26)。また、ASPサーバ10Aは、これらの情報に対応づけて、使用済みフラグをNOに設定する。
なお、この発行処理において、ステップSb23からステップSb26までの処理は、その順序を入れ替えてもよい。また、ステップSb23の処理は省略してもよい。
発行処理が終了すると、ASPサーバ10Aは、生成した二次元コードを端末装置20Cに送信する(図24、ステップSb3)。この後、二次元コードを受信した端末装置20Cのユーザが、電子クーポンを利用する際には、端末装置20CのUI部24に二次元コードを表示させて、この二次元コードを店舗端末40のリーダ/ライタ41に読み取らせる。リーダ/ライタ41によって二次元コードを読み取った店舗端末40は、当該二次元コードからクーポンIDと、ユーザIDと、クーポン書込情報とを抽出し、これらの情報のうち、ユーザIDとクーポン書込情報とを店舗管理サーバ30に送信する。
当該情報を店舗端末40から受信した店舗管理サーバ30は、ASPサーバ10Aに対して、電子クーポンの利用の許否を問い合わせる利用許否問い合わせを送信する(ステップSb4)。この利用許否問い合わせには、店舗端末40から受信したユーザIDと、クーポン書込情報を示す情報とが含まれる。
店舗管理サーバ30から利用許否問い合わせを受信したASPサーバ10Aは、利用許否判定処理を実行する(ステップSb5)。図26は、利用許否判定処理を示すフローチャートである。
ステップSb51においてASPサーバ10Aは、利用許否問い合わせにより示されるクーポン書込情報と、利用許否問い合わせに含まれるユーザIDと利用管理テーブル133Aにおいて対応づけられているクーポン書込情報とが一致するか否かについて判断する。
この判断の結果、両クーポン書込情報が一致しない場合には(ステップSb51;NO)、ASPサーバ10Aは、電子クーポンの利用を許可しないと判定し(ステップSb55)、利用許否判定処理を終了する。一方、この判断の結果、両クーポン書込情報が一致する場合には(ステップSb51;YES)、ASPサーバ10Aは、当該電子クーポンが使用済みであるか否かについて判断する(ステップSb52)。具体的には、ASPサーバ10Aは、利用許否問い合わせに含まれるユーザID及びクーポンIDと利用管理テーブル133Aにおいて対応づけられる使用済みフラグがONに設定されているか否かについて判断する。
この判断の結果、電子クーポンが利用済みである場合には(ステップSb52;YES)、ASPサーバ10Aは、電子クーポンの利用を許可しないと判定し(ステップSb54)、利用許否判定処理を終了する。一方、この判断の結果、電子クーポンが利用済みでない場合には(ステップSb52;NO)、電子クーポンの利用を許可すると判定し(ステップSb53)、利用許否判定処理を終了する。
なお、この利用許否判定処理において、ステップSb51からステップSb52までの処理は、その順序を入れ替えてもよい。
利用許否判定処理が終了すると、ASPサーバ10Aは、当該処理の結果を通知する結果通知を店舗管理サーバ30に対して送信する(図24、ステップSb6)。ASPサーバ10Aから結果通知を受信した店舗管理サーバ30は、その結果通知を店舗端末40に転送する。結果通知を受信した店舗端末40は、その結果通知が、電子クーポンの利用を許可するものであった場合には、自機の表示部に、二次元コードから抽出した電子クーポンの情報を表示し、ユーザによる選択を受け付ける。一方、その結果通知が、電子クーポンの利用を許可しないものであった場合には、自機の表示部にエラー通知を表示する。
端末装置20Cによって電子クーポンが利用されると、店舗端末40は、利用された電子クーポンのクーポンIDと、その電子クーポンの利用枚数を示す情報と、ユーザIDとを含む利用通知を店舗管理サーバ30に送信する。店舗端末40から利用通知を受信した店舗管理サーバ30は、その利用通知をASPサーバ10Aに転送する(ステップSb7)。
店舗管理サーバ30から利用通知の転送を受けたASPサーバ10Aは、その利用通知に基づいて各データテーブルを更新する処理を行う(ステップSb8)。具体的には、ASPサーバ10Aは、利用通知に含まれるクーポンIDとユーザIDとにユーザ管理テーブル132Aにおいて対応づけられる未利用枚数を、利用通知に示される利用枚数だけ減算し、また、個人の利用枚数に、利用通知に示される利用枚数を加算する。また、ASPサーバ10Aは、個人の残枚数から、利用通知に示される利用枚数だけ減算する。また、ASPサーバ10Aは、利用通知に含まれるユーザIDと利用管理テーブル133Aにおいて対応づけられる利用済みフラグをONに設定する。
なお、利用済みフラグをONに設定するタイミングは、この例に限らず、利用許否判定処理において電子クーポンの利用を許可すると判定した時点であってもよい。この場合、利用決済処理のタイミングと、利用通知送信のタイミングとの間に時差が生じたとしても、電子クーポンの重複利用を防ぐことが出来る。
以上が、通信システム1Aの動作についての説明である。
以上説明した本実施形態に係る通信システム1Aによれば、ユーザによって端末装置20Cに電子クーポン(二次元コード)が書き込まれる際に、当該装置に電子クーポンが書き込まれた日時に基づき特定される情報を示すクーポン書込情報がASPサーバ10Aに記憶される。そして、当該ユーザによって電子クーポンが利用される際には、二次元コードから読み取られるクーポン書込情報と、ASPサーバ10において記憶されているクーポン書込情報とが比較され、両者が一致した場合にのみ、電子クーポンの利用が許可される。よって、同一のユーザによって、同一の電子クーポンが複数発行されたとしても、当該ユーザによって利用可能な電子クーポンは、最後に発行された電子クーポンのみとなる。また、仮に電子クーポンを示す二次元コードが他人に複写されてしまったとしても、同一の電子クーポンを再発行してもらえば、当該複写された二次元コードに示される電子クーポンの利用を不能とすることができる。
3.変形例
上記の実施形態は、以下のように変形してもよい。また、以下の変形例は、互いに組み合わせてもよい。
3−1.変形例1
上記の第1実施形態において、クーポン書込情報に代えて、端末IDを使用してもよい。この端末IDは、端末装置20を識別する情報であって、例えばICチップ25のメモリ領域251以外のメモリ領域に記憶されてよい。クーポン書込情報に代えて端末IDを使用した場合でも、端末IDは個々の端末装置20を識別することができる情報であるから、複数の端末装置20を使った制限枚数を超えた電子クーポンの利用を防止することができる。また、第2実施形態においても、クーポン書込情報に代えて、端末IDを使用してもよい。
なお、第1実施形態においてクーポン書込情報に代えて端末IDを使用する際、図8のステップSa1において、クーポン取得要求とは別に端末IDを取得するようにしてもよい。具体的には、ASPサーバ10は、端末装置20から、端末IDを含まないクーポン取得要求を受信した後で、当該端末装置に対して端末IDを要求して取得するようにしてもよい。この際、ASPサーバ10は、図8のステップSa3〜Sa12までの処理と同様に、アプリケーション管理サーバ50を介して端末装置20の端末IDを取得するようにしてもよい。
また、第1実施形態においてクーポン書込情報に代えて端末IDを使用する際、図12のステップSa1304においてASPサーバ10の利用管理テーブル133に書き込まれる端末IDは、端末装置20における電子クーポンの書込処理の終了後に、当該端末装置からASPサーバ10に提供されるようにしてもよい。具体的には、図8のステップSa9において、端末装置20からアプリケーション管理サーバ50に対して送信される結果通知に端末IDを含ませ、図8のステップSa12において、アプリケーション管理サーバ50からASPサーバ10に対して送信される結果通知に当該端末IDを含ませ、図12のステップSa1304においてASPサーバ10が、当該端末IDを利用管理テーブル133に書き込むようにしてもよい。
3−2.変形例2
上記の実施形態においてASPサーバ10又は10Aにより実行されるプログラムは、コンピュータ装置が読み取り可能な記録媒体を介してASPサーバ10又は10Aに提供されてもよい。ここで記録媒体とは、例えば、磁気テープや磁気ディスクなどの磁気記録媒体や、光ディスクなどの光記録媒体や、光磁気記録媒体や、半導体メモリ等である。また、同プログラムはインターネット等のネットワークを介してASPサーバ10又は10Aに提供されてもよい。
3−3.変形例3
上記の第1実施形態において、図8に示されるセット開始処理のステップSa22の処理は、省略してもよい。すなわち、ステップSa21の判断結果が肯定的であった場合に、ステップSa23の処理を実行するようにしてもよい。この場合、図8のステップSa1において端末装置20からASPサーバ10に対して送信されるクーポン取得要求には、クーポン書込情報を示す情報を含めなくてもよい。
3−4.変形例4
上記いずれの実施形態においても、クーポン書込情報としてクーポン書込日時又は書込みを指示された日時のみを利用することを前提としているが、これに限るものではなく、クーポン書込日時又は指示日時に対し一意に定まる、関数により生成された乱数であってもよい。また、クーポン書込日時又は指示日時と、このクーポン書込情報に対する有効期限、利用地域に関する情報、本人であるかを判断できる情報、本人認証を利用時に要求するフラグを組合せた情報であってもよい。これにより、仮に第三者にICデータやQRコード等のクーポン情報が盗み取られ、本人が気づかずに再発行しない場合でも、一定期間や一定地域を超えて、また本人であるかを判断できる情報を店舗端末に表示したり、本人確認を利用者に求めることにより、意図しない第三者がクーポンを利用することを防止することが出来る。
なお、一定地域での利用か否かについては詳細を図示しないが、利用する店舗に備わるリーダ/ライタIDを用いて、サーバ側で予め当該ID端末の設定場所をデータベース化しておき、利用許否判断の中において地域を判定したり、GPS等を用いた周知の位置測位技術により、店舗端末での読み取り時に携帯端末の位置情報を取得する方法であってもよい。
更に店員が本人であるかを判断できる情報は、例えば電子クーポン発行対象ユーザの年齢・性別・使用機種等をクーポン発行処理の際に予め登録しておき、店舗端末での読み取り時に利用者の携帯端末から取得して本人確認を行うようにする方法を取ってもよい。更に、電子クーポンを最初に発行した携帯端末から発行時に使用宣言(例えば、取得完了画面において、使用宣言のボタンを押下させるなど)を行わせ、その際の信号中に当該携帯端末IDを含めておく方法を取ってもよい。いずれの方法によっても、単に複数の携帯端末に書き込まれる利用ケースにおいて、発行枚数等の制限の他に本人制限をより的確に行う構成を採用してもよい。
3−5.変形例5
上記の第1、第2実施形態及び各種変形例におけるクーポン書込情報には、端末装置20に対してASPサーバ10により電子クーポンの書込処理が指示された日時(クーポン書込日付)に基づき特定される情報が含まれるが、端末装置20において実際に電子クーポンの書込処理が完了した日時をクーポン書込日時としてもよい。この場合、ASPサーバ10は、図8のステップSa5において、端末装置20に送信する書込指示にクーポン書込を指示した日時を示す情報を含める必要はなく、端末装置20は、図8のステップSa8において、ASPサーバ10から通知されるクーポン書込を指示した日時に代えて、自装置においての書込処理が完了した日時を示すクーポン書込日時を含むクーポン書込情報をメモリ領域251に書き込む。
また、端末装置20は、図8のステップSa9において、アプリケーション管理サーバ50に送信する結果通知にクーポン書込日時を含むクーポン書込情報を含ませ、アプリケーション管理サーバ50は、図8のステップSa12において、ASPサーバ10に送信する結果通知にクーポン書込日時を含むクーポン書込情報を含ませ、ASPサーバ10は、図12に示されるセット確定処理のステップSa1304において、アプリケーション管理サーバ50から通知されるクーポン書込情報により、利用管理テーブル133に記憶されているクーポン書込情報を更新する。
3−6.変形例6
上記の第1実施形態の、図16に示されるステップSa1501の処理において、ASPサーバ10は、利用許否問い合わせに含まれるクーポンIDに基づいて、制限枚数が設定されているか否かを判断する電子クーポンを特定するようにしてもよい。この場合、店舗端末40は、端末装置20のICチップ25から、ユーザIDとクーポン書込情報に加えて、クーポンIDを読み取り、これらの情報を店舗管理サーバ30に送信する。店舗端末40から当該情報を受信した店舗管理サーバ30は、当該情報を含む利用許否問い合わせをASPサーバ10に対して送信する。