【0090】
請求書発行処理では、CPU11は、ユーザデータベース17に登録された各ユーザについて、順にループ処理を行う(ステップS501−S501’)。ループ内の処理では、CPU11は、処理対象としているユーザのレコードに含まれるポイントを取り出し、このポイントがマイナスの値を示しているかどうかを判定する(ステップS502)。
【0091】
ポイントがマイナスの値を示していれば、CPU11は、当該ユーザを宛先として、マイナスの値に応じて対価(金銭であってもなくても可)を請求する請求書を発行し(ステップS503)、プリンタにより用紙上に印刷させる(ステップS504)。印刷された請求書は、郵送などの手段によりユーザに届けられることとなる。
【0092】
ポイントの値がマイナスを示していないか、請求書の印刷が終了した場合には、1人のユーザについての処理が終わる。CPU11がステップS501’においてユーザデータベース17に登録された全てのユーザについてループ内の処理が終了したと判定すると、ループを抜け、請求書発行処理を終了する。
【0093】
以上の説明したように、このポイント交換システムにおいてポイントをマイナスにすることも可能とし、ポイントのマイナス値に応じた請求書を発行可能とすることで、クレジットカード、プリペイドカード及びポイントカードの機能を併せ持つようなポイント交換システムを実現することができるようになる。
【0094】
上記の実施の形態では、交換用バーコードは、その発行から一定時間の経過によって使用できなくしており、暗号化されていることによって、偽造されてポイントが不正に商品と交換されるのを防ぐようにしていた。しかしながら、本発明において適用可能な交換用バーコードの偽造防止技術はこれに限るものではない。
【0095】
例えば、交換用バーコードに電子透かしを埋め込むものとしてもよい。この電子透かしは、誤り訂正が可能な範囲で意図的に交換用バーコードを本来の交換用バーコードの内容とは変えたものとすることができる。このような電子透かしとして、二次元コード上に、二次元コードで誤り補正が可能な幾何学的な模様を意図的に付け加えたものを適用することができる。ここで、幾何学的な模様として会社のロゴやサービスの名称等を用いることもできる。これにより、交換用バーコードがどこから発行されたかを視覚的に判別することができる。
【0096】
交換用バーコードにJava(商標)言語などで記述されたプログラムを埋め込んでおき、このプログラムの作用により、携帯電話機3に受信されてから所定時間経過することで交換用バーコードが自壊するようなものとしてもよい。このプログラムは、定期的にサーバ装置1に時間を確認する機能を有するものとすることができる。このプログラムは、交換用バーコードの利用期限が近くなると、警告音を鳴らしたり、バーコードの色を変えたりすることによってユーザに通知する機能を有していてもよい。このプログラムは、交換用バーコードの利用期限が過ぎると、自動的に画像を差し替えたり、文字情報を表示して二次元バーコードを消滅させる機能を有するものとすることができる。
【0097】
発行から一定時間を経過することによって交換用バーコードを使用できなくする手法も上記のものに限られず、携帯電話機3に配信する交換用バーコードに期限情報を含ませてもよい。バーコード読み取り装置24は、交換用バーコードの読み取り時にこの期限情報も併せて読み取り、店舗端末装置2は、サーバ装置1に期限情報を送信するものとすることができる。サーバ装置1のCPU11は、店舗端末装置2から送られてきた期限情報に基づいて、交換用バーコードの有効性を判断することができる。
【0098】
固有バーコードは、それ自体が偽造されてもポイントが不正に使用されることはないが、交換用バーコードの暗号化に用いる暗号鍵が解読される可能性もある。暗号鍵が解読されれば、交換用バーコードが不正に用いられる場合も生じる。そこで、サーバ装置1において固有バーコードを一定期間毎に更新することで、暗号鍵が解読される危険性を抑えることができ、暗号鍵が解読されて交換用バーコードが不正に用いられた場合の被害を最小限に抑えることができる。固有バーコードは、更新される度にサーバ装置1から携帯電話機3に送信されるものとすることができる。
【0099】
上記の実施の形態では、固有バーコードは、携帯電話機3からサーバ装置1に要求を行うことで発行されていたが、携帯電話機3に当初から割り当てられ、ROM32に予め記憶されているものであってもよい。固有バーコードの割り当てられた携帯電話機3を購入した者は、自動的にこのシステムで提供するサービスのユーザとなることができる。この場合において、携帯電話機3に当初から割り当てられた固有バーコードは、単に初期設定時の固有バーコードとして使用されるだけで、更新していくことも可能である。
【0100】
図15は、固有バーコード更新処理を示すフローチャートである。この処理は、サーバ装置1のCPU11が有する内部タイマによって所定時間毎にタイマ割り込みが生じることで実行される。
【0101】
請求書発行処理では、CPU11は、ユーザデータベース17に登録された各ユーザについて、順にループ処理を行う(ステップS601−S601’)。ループ内の処理では、CPU11は、処理対象としているユーザのユーザIDをキーとしてバーコードデータベース18を参照し、当該ユーザがこれまで使用していた固有バーコードとは異なり、かつ他のユーザによっても使用されていない新たな固有バーコードを発行する(ステップS602)。
【0102】
CPU11は、発行した新たな固有バーコードを、これまで登録されていた固有バーコードに書き換えて、バーコードデータベース18に登録する(ステップS603)。CPU11は、発行した新たな固有バーコードを通信装置15からインターネット4を介して携帯電話機3に送信させる(ステップS603)。
【0103】
新たな固有バーコードの送信が終了した場合には、1人のユーザについての処理が終わる。CPU11がステップS601’においてユーザデータベース17に登録された全てのユーザについてループ内の処理が終了したと判定すると、ループを抜け、サーバ装置1の側における処理を終了する。
【0104】
それぞれの携帯電話機3において、通信装置36がこの固有バーコードを受信すると(ステップS621)、CPU31は、これをRAM33の所定の領域に上書きして、携帯電話機3内に保持させる固有バーコードを更新する(ステップS622)。これで固有バーコード更新処理を終了する。
【0105】
上記の実施の形態では、交換用バーコードは、固有バーコードとは全く異なる形態のものであり、ユーザがポイントを商品に交換しようとするときには、固有バーコードと交換用バーコードとは、別々にバーコード読み取り装置24で読み取る必要があった。これに対して、固有バーコードと交換用バーコードとを同時に表示装置35に表示できるようにしてもよい。これにより、ポイント交換時のバーコードの読み取りが1回で済む。
【0106】
上記の実施の形態では、交換用バーコード自体が、ユーザが商品との交換を要求したポイントを示すものとなっていた。しかしながら、交換用バーコードは、ポイントとは無関係な態様のものであってもよい。バーコードデータベース18において交換用バーコードはポイントと対応付けて記憶されているため、ステップS450におけるユーザのポイントの減算と、ステップS451における加盟店のポイントの加算とは、バーコードデータベース18に交換用バーコードに対応付けて記憶されているポイントに従って行えばよいこととなる。
【0107】
上記の実施の形態では、固有バーコード及び交換用バーコードは、二階調の二次元マトリクスパターンを有するバーコードとして携帯電話機3の表示装置35に表示されていたが、多階調のパターンを有するバーコードや、三次元のパターンを有するバーコードとして表示されるものであってもよい。この三次元バーコードは、例えばポリゴンで形成された立方体の各面に二次元バーコードを表示させたものであり、Java等のアプリケーションによってポリゴンが回転される。店舗端末2では、ポリゴンの回転によって立方体の各面に表示された二次元バーコードコードを全て認識することができる。三次元バーコードは、面数の増加によってより大きな情報量を含むことができる。
【0108】
例えばブルートゥース技術などの適用により、店舗端末装置2と携帯電話機3とを直接通信可能に構成した場合には、視認不可能な情報であっても、上記した固有バーコード及び交換用バーコードの代わりに適用することができる。
【0109】
上記の実施の形態では、サーバ装置1のCPU11は、固有バーコードまたは交換用バーコードを、どのユーザの携帯電話機3に送る場合でも同じように生成していた。しかしながら、携帯電話機3の表示装置35は、機種によって大きさもドット数もまちまちである。いずれの携帯電話機3でも表示装置35に表示可能なように固有バーコードまたは交換用バーコードを生成するものとすると、固有バーコード及び交換用バーコードのパターンは、単純なものとならざるを得ず、偽造される危険が大きくなる。
【0110】
携帯電話機3の機種に応じて最も効果的な固有バーコード及び交換用バーコードを生成するために、サーバ装置1は、図16に示す機種データベース19を備えることができる。機種データベース19は、ユーザIDと携帯電話機3の機種に関する情報(少なくとも表示装置35の大きさ及びドット数を含む)を対応付けて記憶している。
【0111】
サーバ装置1のCPU11は、ステップS256において固有バーコードを発行する際に、機種データベース19を参照して、要求元の携帯電話機3の機種に応じた固有バーコードを発行することができる。CPU11は、ステップS443において交換用バーコードを発行する際に、機種データベース19を参照して、要求元の携帯電話機3の機種に応じた交換用バーコードを発行することができる。
【0112】
サーバ装置1から携帯電話機3に送信される固有バーコード及び交換用バーコードは、圧縮されたものであってもよい。サーバ装置1のCPU11は、機種に関係なく固有バーコードまたは交換用バーコードを生成してから、要求元の携帯電話機3の機種を機種データベース19から読み出し、機種に応じて固有バーコードまたは交換用バーコードを圧縮することができる。固有バーコードまたは交換用バーコードは、自己解凍方式のものとすれば、店舗端末2のCPU21は、解凍された固有バーコードまたは交換用バーコードを用いて、上記と全く同じ処理を行うことができる。
【0113】
サーバ装置1に機種データベース19を設けることで、上記のように携帯電話機3に送信される固有バーコード及び交換用バーコードは、携帯電話機3が新型のもので表示装置35の表示ドット数が多ければ細かなパターンのバーコードと、携帯電話機3が旧型のもので表示ドット数が少なくても表示装置35に表示可能なバーコードを生成することができる。これにより、表示装置35の機能を最大限に生かして固有バーコードまたは交換用バーコードを表示装置35に表示させることができる。ユーザが携帯電話機3の機種を頻繁に変えても、ユーザデータベース28に登録される機種を変えれば、新しい機種に適合した二次元バーコードとなるので、技術的進歩が早い携帯電話機3への適用するのに特に有効である。
【0114】
上記の実施の形態では、固有バーコード及び交換用バーコードを表示して店舗の店員に提示する端末装置として、表示装置35を有する携帯電話機3を適用していたが、サーバ装置1と通信可能なモバイル端末(例えば、PDA(Personal Digital Assistants)など)を、携帯電話機3の代わりに適用することもできる。この端末は、サーバ装置1に有線接続されるものであってもよい。PDAなどのモバイル端末は、一般に表示装置の大きさが携帯電話機3よりも大きいので、より複雑なパターンを有し、多くの情報量を含んだ固有バーコード及び交換用バーコードが使用可能となる。ブルートゥース技術などの適用により視認不可能な情報を固有バーコード及び交換用バーコードの代わりに用いた場合には、その端末は、表示装置を有しないものであってもよい。
【0115】
上記の実施の形態では、ユーザが蓄積したポイントがマイナスされるのは、ユーザが加盟店で商品と交換を行ったときであった。しかしながら、交換用バーコードの発行を行ったときに、ポイントがマイナスされるものとしてもよい。交換用バーコードを発行した際に当該交換用バーコードに応じたポイントの一部をマイナスし、交換用バーコードを用いて商品交換をした場合に、さらにポイントをマイナスするものとしてもよい。これにより、携帯電話機3からサーバ装置1に交換用バーコードの発行要求がむやみにされることがなく、サーバ装置1にかかる負荷を小さくすることができる。
【0116】
上記の実施の形態では、固有バーコード及び交換用バーコードは、サーバ装置1において、バーコードデータベース18に保管しておき、ポイント交換処理を行う際に、さらに固有バーコードに関してはポイント蓄積処理を行う際にも参照されるものとしていた。しかしながら、上記の用に固有バーコードおよび/または交換用バーコードをサーバ装置1内に保管しておくと、サーバ装置1がハッキングされることにより、各ユーザが所持するポイントが不正に使用され、他の物と交換されてしまう危険があり得る。そこで、上記のポイント交換システムに対して次のような変形を加えることで、このような危険を回避することが可能となる。
【0117】
この変形例におけるサーバ装置1は、ユーザデータベース17の代わりに、詳細を後述するユーザデータベース107(図18参照)を備えている。また、バーコードデータベース18はなく、固有バーコード及び交換用バーコードの画像データ(これらを数値化する方法及び数値A、B、C、Dの値(後述)が分からなくても、これらの画像データを復元することが可能となる他の種類のデータを含む)は、ユーザデータベース107を含むサーバ装置1内のどこにも保存されていない。もっとも、固有バーコードであるか交換用バーコードであるかに関してだけは、そのパターンから区別できるものとする。
【0118】
固有バーコード及び交換用バーコードの画像データがサーバ装置1内に保存されていないので、この実施の形態では、バーコードの照合によらないで認証が行われることとなる。図17は、この実施の形態における認証の方法を説明する図である。認証の方法は、固有バーコードと交換用バーコードとで異なるところがないので、ここでは、固有バーコードを例として説明する。この図にある第1テーブル111及び第2テーブル112は、それぞれサーバ装置1のメモリ12の所定の領域に記憶されている。
【0119】
固有バーコードの画像データ(図中、実線で示す)を受信すると、サーバ装置1は、これを所定の方法で数値化する。固有バーコードのパターンが異なれば、数値化された後の値は異なることとなる。固有バーコードを数値化した値X(以下、固有バーコード値と呼ぶ)を数値Aで除算した剰余aと数値Bで除算した剰余bとがそれぞれ求められる。数値Aと数値Bとの最小公倍数は、固有バーコード値がとり得る値の最大値と最小値との差よりも大きいという関係がある。この関係を満たす場合、互いに異なる2つの固有バーコード値をそれぞれ数値Aで除算した剰余aが一致する場合には、当該2つの固有バーコード値をそれぞれ数値Bで除算した剰余bが一致することはあり得なくなる。数値Aと数値Bとは互いに素であることが好ましい。
【0120】
剰余aに対応した第1テーブル111内の記憶位置には、ユーザデータベース107において当該固有バーコードに対応したユーザ情報が記憶された位置を指し示すポインタが記憶されている。剰余bに対応した第2テーブル112内の記憶位置には、ユーザデータベース107において当該固有バーコードに対応したユーザ情報が記憶された位置を指し示すポインタが記憶されている。固有バーコードは、第1テーブル111と第2テーブル112の両方から同一のユーザ情報まで辿ることができたので、当該固有バーコードは、そのユーザが所有するものとして認証される。
【0121】
剰余aに対応した第1テーブル111内の記憶位置には、ユーザデータベース107において他の固有バーコード(図中、破線で示す)に対応したユーザ情報が記憶された位置を指し示すポインタも記憶されている。しかし、第2テーブル112からは当該他の固有バーコードに対応したユーザ情報まで辿ることができない。他の固有バーコードの画像(図中、破線で示す)データをサーバ装置1が受信した場合、その固有バーコード値X’を数値Aで除算した剰余a’が剰余aに一致する場合、第1テーブル111からは実線で示した固有バーコードに対応したユーザ情報まで辿ることができる。しかし、固有バーコード値X’を数値Bで除算した剰余b’が剰余bに一致することはないので、第2テーブル112からは実線で示した固有バーコードに対応したユーザ情報まで辿ることができない。従って、受信した固有バーコードとは無関係なユーザが対応づけられてしまうこととは起こり得ない。
【0122】
交換用バーコードについても、同じ認証方法を用いてユーザとの対応付けが図られる。交換用バーコードの画像データについても、サーバ装置1は、これを受信すると所定の方法で数値化する。交換用バーコードのパターンが異なれば、数値化された後の値は異なることとなる。交換用バーコードを数値化した値Y(以下、交換用バーコード値と呼ぶ)については、数値Cで除算した剰余cと数値Dで除算した剰余cとがそれぞれ求められる。数値Cと数値Dについても、その最小公倍数が交換用バーコード値がとり得る値の最大値と最小値との差よりも大きく、数値Cと数値Dとが互いに素であることが好ましいことも、固有バーコードの場合と同じである。
【0123】
交換用バーコードに関しては、固有バーコードについての第1テーブル111及び第2テーブル112と同様に、第3テーブル113及び第4テーブル114(いずれも図示しないが、これらの符号で参照するものとする)が設けられ、サーバ装置1のメモリ12に記憶されている。なお、交換用バーコードについては、一人のユーザが複数所持することができるので、この点で固有バーコードと異なる扱いが必要になる。これについての詳細は、後述するものとする。
【0124】
次に、ユーザデータベース107について詳しく説明する。図18(a)は、ユーザデータベース107の構成を示す図である。ユーザデータベース107の各レコードは、可変長レコードであり、ユーザ登録の度に新たに生成される。ユーザデータベース107の各レコードは、上記の実施の形態で示したユーザデータベース17の各レコードにあるユーザID、氏名、住所、生年月日、年齢及びポイントの他に、1つの固有バーコード情報と、0個以上の任意の数の交換用バーコード情報を含んでいる。各レコードの最後にある「EOR」は、当該レコードの終わりであることを示す制御情報である。
【0125】
図18(b)は、固有バーコード情報の詳細を示す。図示するように、固有バーコード情報は、固有バーコード値Xを数値Aと数値Bとでそれぞれ除算した剰余aと剰余bとを含んでいる。ここに登録されている剰余aとbとについては、ユーザが固有バーコードの再発行を求めたときに、第1テーブル111及び第2テーブル112に登録されている前の固有バーコードに関してのユーザ情報を指し示すポインタを消すために必要となるものである。
【0126】
図18(c)は、1個当たりの交換用バーコード情報の詳細を示す。図示するように、交換用バーコード情報は、発行日時と、ポイント数と、使用済みフラグとを含んでいる。これらは、上記の実施の形態で交換用バーコードテーブル18Bに登録されていたものと同じである。交換用バーコード情報は、また、交換用バーコード値Yを数値Cと数値Dとでそれぞれ除算した剰余cと剰余dとも含んでいる。
【0127】
交換用バーコードについては、1人のユーザが複数持つことができるので、剰余cと剰余dとは、ユーザ情報(ユーザ毎のレコード)に辿り着いた後に、どの交換用バーコードであるかを特定するために用いられる。また、第3テーブル113及び第4テーブル114には、それぞれ同じユーザ情報を指し示すポインタが複数登録される場合があり、交換用バーコードの所有者でないユーザ情報に辿り着いてしまう場合もあるので、剰余cと剰余dとは、どのユーザが所有する交換用バーコードであるかを識別するためにも用いられる。
【0128】
また、この変形例においては、サーバ装置1から携帯電話機3に交換用バーコードを送信する場合は、固有バーコードを暗号鍵として用いて暗号化される。暗号化された交換用バーコードは、店舗端末装置2で復号化するのではなく、携帯電話機3において、そこに保持されている固有バーコードを復号鍵として復号化される。つまり、交換用バーコードの暗号化及び復号化には、固有バーコードを鍵とする対称鍵暗号系が適用されている。
【0129】
次に、この変形例にかかるポイント交換システムにおいて、上記の実施の形態にかかるポイント交換システムと処理の異なる部分を、図19〜図23のフローチャートを参照して説明する。
【0130】
図19は、この変形例におけるユーザ登録処理を示すフローチャートである。このフローチャートの処理は、図10のステップS256〜S258の処理に代わって実行される。ステップS253においてサーバ装置1においてユーザ情報がユーザデータベース107に登録されると、CPU11は、ランダムに固有バーコードの画像パターンを生成する(ステップS701)。
【0131】
CPU11は、生成した固有バーコードの画像パターンを所定の方法で数値化し、数値化した固有バーコード値を変数Xに代入する(ステップS702)。ここで固有バーコードの画像パターンを数値化する方法としては、同じパターンであれば必ず同じ数値となり、異なるパターンであれば必ず異なる数値となるものであれば、任意の方法を適用することができる。
【0132】
CPU11は、固有バーコード値Xを数値Aで除算した剰余aを求め(ステップS703(a))、固有バーコード値Xを数値Bで除算した剰余bを求める(ステップS703(b))。数値Aと数値Bとの最小公倍数は、固有バーコード値Xがとり得る値の最大値と最小値との差よりも大きい。CPU11は、第1テーブル111のうちの剰余aに対応する記憶位置に登録されているポインタを全て取り出し(ステップS704(a))、第2テーブル112のうちの剰余bに対応する記憶位置に登録されているポインタを全て取り出す(ステップS704(b))。
【0133】
CPU11は、第1テーブル111から取り出したポインタと第2テーブル112から取り出したポインタとを比較し、ユーザデータベース107に登録されているユーザ情報のうちで同一のユーザ情報を指し示すものがあるかどうかを判定する(ステップS705)。第1テーブル111と第2テーブル112とに同一のユーザ情報を指し示すポインタがあれば、ステップS701の処理に戻り、固有バーコードの発行をやり直しさせる。
【0134】
第1テーブル111と第2テーブル112とに同一のユーザ情報を指し示すポインタがなければ、CPU11は、第1テーブル111のうちの剰余aに対応する記憶位置に、ユーザデータベース107に登録した当該ユーザのユーザ情報を指し示すポインタを登録すると共に、その固有バーコード情報の剰余aとしてステップS703(a)で求めた値を登録する(ステップS706(a))。CPU11は、また、第2テーブル111のうちの剰余bに対応する記憶位置に、ユーザデータベース107に登録した当該ユーザのユーザ情報を指し示すポインタを登録すると共に、その固有バーコード情報の剰余bとしてステップS703(b)で求めた値を登録する(ステップS706(b))。
【0135】
ステップS706(a)または(b)において、ユーザデータベース107の該当位置に他のユーザのユーザ情報を指し示すポインタが登録されていた場合は、リストでつなぐなどの手法により、当該ユーザのユーザ情報を指し示すポインタも同じ位置に重複して登録する。
【0136】
第1テーブル111及び第2テーブル112へのポインタの登録が終了すると、CPU11は、ステップS703で生成した固有バーコードの画像パターンを、通信装置15から登録要求をした携帯電話機3に送信する(ステップS707)。CPU11は、固有バーコードの画像パターンの送信が完了した時点で、その固有バーコードの画像パターンを破棄する(ステップS708)。そして、このフローチャートの処理を終了する。
【0137】
ユーザが発行された固有バーコードを紛失した場合に、固有バーコードの再発行要求が携帯電話機13から送られてくる。この場合における固有バーコードの再発行も、ステップS701〜S708と同じ処理で行われるが、ステップS706(a)及び(b)に次のような処理が追加される。CPU11は、ユーザデータベース107の当該ユーザのレコードの固有バーコード情報に含まれる剰余a及び剰余bに従って、第1テーブル111及び第2テーブル112にこれまでに登録されていた当該ユーザのユーザ情報を指し示すポインタを削除する。その後、固有バーコード情報の剰余a及び剰余bをそれぞれステップS703(a)及び(b)で求めた数値に更新する。
【0138】
図20は、図19のユーザ登録処理において発行され、携帯電話機3に送信された固有バーコードの認証処理を示すフローチャートである。このフローチャートの処理は、図11のポイント蓄積処理におけるステップS341の処理とS342の処理との間と、図12のポイント交換処理におけるステップS441の処理とS442の処理との間に、それぞれ付加されて実行されるものである。サーバ装置1は、ポイント蓄積処理ではステップS341において店舗端末装置2から、ポイント交換処理ではステップS441において携帯電話機3から(交換要求には固有バーコードが含まれている)、固有バーコードを画像データとして受信している。
【0139】
CPU11は、店舗端末装置2または携帯電話機3から受信した固有バーコードの画像パターンを所定の方法で数値化し、数値化した固有バーコード値を変数Xに代入する(ステップS801)。ここで固有バーコードの画像パターンを数値化する方法も、ステップS702における方法と同じである。CPU11は、数値化した固有バーコード値XがステップS701で生成可能な固有バーコードの範囲にあるかどうかを判定する(ステップS802)。固有バーコード値Xが生成可能な固有バーコードの範囲になければ、エラー終了となる。
【0140】
固有バーコート値Xが生成可能な固有バーコードの範囲にあれば、CPU11は、固有バーコード値Xを数値Aで除算した剰余aを求め(ステップS803(a))、固有バーコード値Xを数値Bで除算した剰余bを求める(ステップS803(b))。数値Aと数値Bは、図19のフローチャートで示したのと同じ値が用いられる。CPU11は、第1テーブル111のうちの剰余aに対応する記憶位置に登録されているポインタを全て取り出し(ステップS804(a))、第2テーブル112のうちの剰余bに対応する記憶位置に登録されているポインタを全て取り出す(ステップS804(b))。
【0141】
CPU11は、第1テーブル111から取り出したポインタと第2テーブル112から取り出したポインタとを比較し、ユーザデータベース107に登録されているユーザ情報のうちで同一のユーザ情報を指し示すものがあるかどうかを判定する(ステップS805)。第1テーブル111と第2テーブル112とから同一のユーザ情報を指し示すポインタが取り出されていなかった場合には、エラー終了となる。
【0142】
第1テーブル111と第2テーブル112とに同一のユーザ情報を指し示すポインタがあれば、両方のテーブル111、112からのポインタで指し示されたユーザ情報に従って、受信した固有バーコードが当該ユーザが有するものとして認証する。そして、ポイント蓄積処理においてこのフローチャートの処理を行ったのであればステップS342の処理に、ポイント交換処理においてこのフローチャートの処理を行ったのであればステップS442の処理に、それぞれ進むこととなる。
【0143】
図21は、この変形例における交換用バーコード発行処理を示すフローチャートである。このフローチャートの処理は、図12のポイント交換処理におけるステップS443〜S445の処理に代わって行われる。ステップS442において要求されたポイント以上のポイントが蓄積されていた場合には、CPU11は、ランダムに交換用バーコードの画像パターンを生成する(ステップS901)。
【0144】
CPU11は、生成した交換用バーコードの画像パターンを所定の方法で数値化し、数値化した交換用バーコード値を変数Yに代入する(ステップS902)。交換用バーコードの画像パターンを数値化する方法についても、ステップS702の場合と同じ方法によって行うことができるが、ステップS702の場合とは別の方法によって行ってもよい。もっとも、同じパターンであれば必ず同じ数値となり、異なるパターンであれば必ず異なる数値となることは、ステップS702の場合と同様に必須である。
【0145】
CPU11は、交換用バーコード値Yを数値Cで除算した剰余cを求め(ステップS903(a))、交換用バーコード値Yを数値Dで除算した剰余dを求める(ステップS903(b))。CPU11は、第3テーブル113のうちの剰余cに対応する記憶位置に登録されているポインタを全て取り出し(ステップS904(a))、第4テーブル114のうちの剰余dに対応する記憶位置に登録されているポインタを全て取り出す(ステップS904(b))。
【0146】
CPU11は、第3テーブル113から取り出したポインタと第4テーブル114から取り出したポインタとを比較し、ユーザデータベース107に登録されているユーザ情報のうちで同一のユーザ情報を指し示すものがあるかどうかを判定する(ステップS905)。第3テーブル113と第4テーブル114とに同一のユーザ情報を指し示すポインタがなければ、ステップS901で生成した交換用バーコードは未発行のものということになるので、ステップS908(a)及び(b)の処理に進む。
【0147】
第3テーブル113と第4テーブル114とに同一のユーザ情報を指し示すポインタがあれば、CPU11は、第3テーブル113と第4テーブル114とから辿り着くことができた全てのユーザ情報(ユーザデータベース107のレコード)に含まれる交換用バーコード情報をチェックする(ステップS906)。そして、この中にステップS903(a)及び(b)で求めた剰余cと剰余dとが両方とも一致するものがあるかどうかを判定する(ステップS907)。剰余cと剰余dの両方が一致する交換用バーコード情報があれば、ステップS901の処理に戻り、交換用バーコードの発行をやり直しさせる。剰余cと剰余dとの両方が一致するバーコード情報がなければ、ステップS901で生成した交換用バーコードは未発行のものということになるので、ステップS908(a)及び(b)の処理に進む。
【0148】
ステップS908(a)では、CPU11は、第3テーブル113のうちの剰余cに対応する記憶位置に、ユーザデータベース107に登録した当該ユーザのユーザ情報を指し示すポインタを登録する。さらに、当該ユーザについてのユーザデータベース107中にレコードに交換用バーコード情報を新たに追加し、剰余cの値としてステップS903(a)で求めた値を登録する。また、ステップS908(b)では、CPU11は、第4テーブル114のうちの剰余dに対応する記憶位置に、ユーザデータベース107に登録した当該ユーザのユーザ情報を指し示すポインタを登録する。さらに、当該ユーザについてのユーザデータベース107中にレコードに交換用バーコード情報を新たに追加し、剰余dの値としてステップS903(b)で求めた値を登録する。
【0149】
ステップS908(a)または(b)において、ユーザデータベース107の該当位置に他のユーザのユーザ情報を指し示すポインタが登録されていた場合は、リストでつなぐなどの手法により、当該ユーザのユーザ情報を指し示すポインタも同じ位置に重複して登録する。
【0150】
ステップS908(a)及び(b)の処理が終了すると、CPU11は、当該ユーザ情報のレコードに新たに作成した交換用バーコード情報について、発行日時及びポイントを登録する(ステップS909)。CPU11は、ステップS441の交換要求時に送られてきた固有バーコードを暗号鍵として用いて、ステップS901で生成した交換用バーコードの画像データを暗号化する(ステップS910)。
【0151】
CPU11は、ステップS910で暗号化した交換用バーコードの画像パターンを、通信装置15から要求元の携帯電話機3に送信する(ステップS911)。CPU11は、交換用バーコードの画像パターンの送信が完了した時点で、その交換用バーコードの画像パターンを破棄する(ステップS912)。そして、このフローチャートの処理を終了する。
【0152】
図22は、ポイント交換処理で提供される交換用バーコードの表示及び読み取りに関する処理を示すフローチャートである。この処理は、図12のポイント交換処理におけるステップS404及びS405、並びにステップS421乃至S423の処理に代わって行われる。携帯電話機3で交換用バーコードを受信した場合(ステップS403の判定結果がYES)、この交換用バーコードはステップS910において当該携帯電話機3の固有バーコードを暗号鍵として用いて暗号化されているので、CPU31は、固有バーコードを復号鍵としても用いて復号化する(ステップS1001)。
【0153】
携帯電話機3のユーザは、入力装置34を操作することで、この復号化された交換用バーコードを表示装置35に表示させて、その携帯電話機3をポイントを商品に交換しようとする加盟店の店員に提示する(ステップS1002)。加盟店の店員は、携帯電話機3の表示装置35に表示された交換用バーコードをバーコード読み取り装置24に読み取らせる(ステップS1021)。そして、ステップS424の処理では、バーコード読み取り装置24で読み取られたままの交換用バーコードの画像データが、店舗端末装置2からサーバ装置1に送られることとなる。
【0154】
図23は、図21の交換用バーコード発行処理において発行され、携帯電話機3に表示されて店舗端末装置2で読み取られた交換用バーコードの認証処理を示すフローチャートである。このフローチャートの処理は、図13のポイント交換処理におけるステップS448の処理に代わって実行される。
【0155】
CPU11は、ステップS447の処理において店舗端末装置2から交換用バーコードの画像パターンを受信すると、これをを所定の方法で数値化し、数値化した交換用バーコード値を変数Yに代入する(ステップS1101)。ここで交換用バーコードの画像パターンを数値化する方法は、ステップS902における方法と同じである。CPU11は、数値化した交換用バーコード値YがステップS901で生成可能な交換用バーコードの範囲にあるかどうかを判定する(ステップS1102)。交換用バーコード値Yが生成可能な交換用バーコードの範囲になければ、ステップS453の処理へと進む。
【0156】
交換用バーコート値Yが生成可能な交換用バーコードの範囲にあれば、CPU11は、交換用バーコード値Yを数値Cで除算した剰余cを求め(ステップS1103(a))、交換用バーコード値Yを数値Dで除算した剰余dを求める(ステップS1103(b))。CPU11は、第3テーブル113のうちの剰余cに対応する記憶位置に登録されているポインタを全て取り出し(ステップS1104(a))、第4テーブル114のうちの剰余dに対応する記憶位置に登録されているポインタを全て取り出す(ステップS1104(b))。
【0157】
CPU11は、第3テーブル113から取り出したポインタと第4テーブル114から取り出したポインタとを比較し、ユーザデータベース107に登録されているユーザ情報のうちで同一のユーザ情報を指し示すものがあるかどうかを判定する(ステップS1105)。第3テーブル113と第4テーブル114とに同一のユーザ情報を指し示すポインタがなければ、ステップS447で受信した交換用バーコードは未発行のものということになるので、ステップS453の処理へと進む。
【0158】
第3テーブル113と第4テーブル114とに同一のユーザ情報を指し示すポインタがあれば、CPU11は、第3テーブル113と第4テーブル114とから辿り着くことができた全てのユーザ情報(ユーザデータベース107のレコード)に含まれる交換用バーコード情報をチェックする(ステップS1106)。そして、この中にステップS903(a)及び(b)で求めた剰余cと剰余dとが両方とも一致するものがあるかどうかを判定する(ステップS1107)。
【0159】
剰余cと剰余dとの両方が一致するバーコード情報がなければ、ステップS447で受信した交換用バーコードは未発行のものということになるので、ステップS453の処理へと進む。一方、剰余cと剰余dとの両方が一致するバーコード情報があった場合には、ステップS447で受信した交換用バーコードは、当該ユーザが正当に所有するものであると認証できるので、ステップS449の処理に進む。
【0160】
以上説明した変形例では、サーバ装置1は、固有バーコードを発行する際に、第1テーブル111及び第2テーブル112のバーコード値Xから求めた剰余a、bに対応する記憶位置に、当該固有バーコードに対応したユーザを指し示すポインタを登録している。店舗端末装置2または携帯電話機3から固有バーコードの画像パターンを受信した場合、これを数値化して求めた剰余a、bに従って第1テーブル111及び第2テーブル112を参照して、固有バーコードが正当なものであるかどうかの認証を行っている。すなわち、固有バーコード同士の照合を行うことなく、演算処理と記憶内容の参照とによって、固有バーコードとユーザとの対応付けを高速に行うことができる。
【0161】
また、交換用バーコードについては、固有バーコードと同様の処理に加えて、剰余cと剰余dとの両方が一致する交換用バーコード情報があるかどうかについてもチェックしているが、交換用バーコードの画像パターン同士を照合するのに比べれば、この処理も比較的短時間で済む。すなわち、交換用バーコード同士の照合を行うことなく、演算処理と記憶内容の参照とによって、受信した交換用バーコードがどのユーザに属するものであるか、また、その発行日時、ポイント及び使用済みであるかどうかといったことを特定するまでの処理を高速に行うことができる。
【0162】
固有バーコード値Xを除算する除数となる数値A及びBの最小公倍数は、バーコード値がとり得る値の最大値と最小値との差よりも大きいという関係がある。異なるバーコード値では、剰余aとbとの両方が一致することがないので、ユーザデータベース107に登録された各ユーザのユーザ情報へは、他人のバーコードに基づいて第1テーブル111と第2テーブル112との両方から辿り着くことはあり得ない。従って、受信した固有バーコードからユーザを一義的に特定することができる。
【0163】
バーコード同士の照合を行わなくても固有バーコードまたは交換用バーコードについての認証が行えるため、サーバ装置1は、発行した固有バーコードまたは交換用バーコードを携帯電話機3に送信完了した時点で、固有バーコードまたは交換用バーコードを破棄するものとしている。つまり、サーバ装置1の中に発行した固有バーコードまたは交換用バーコードの画像パターンを保存しておく必要が全く必要がない。固有バーコード及び交換用バーコードの画像パターンは、携帯電話機3以外では、他のコンピュータ装置に保存される訳でもない。
【0164】
このように固有バーコード及び交換用バーコードの画像パターンを保存するためのデータベースが必要ない。このため、サーバ装置1に必要な記憶容量を小さくすることができる。バーコードのような画像パターンの情報量は、文字データの情報量に比べて比較的大きくなるため、必要な記憶容量の圧縮のために非常に効果的である。
【0165】
固有バーコード及び交換用バーコードの画像パターンは、ユーザが有する携帯電話機3以外には保存されていないので、例えばサーバ装置1にハッカーが侵入したとしても、各ユーザに付与された固有バーコード及び交換用バーコードの画像パターンが盗み出されることがない。このため、認証を行うための情報として使用される固有バーコード及び交換用バーコードに対して、高度なセキュリティを達成することができる。ユーザにとっても、自分が固有バーコード及び交換用バーコードの管理を怠らない限り、不正に第三者に取得されることがないという安心感を得ることができる。
【0166】
なお、固有バーコード値から固有バーコード値がとり得る値の最小値を減算した値、または固有バーコード値がとり得る値の最大値から数値化した固有バーコード値を減算した値を、数値AまたはBで除算するものとしてもよい。交換用バーコードに関しても、同様である。この場合、固有バーコード値または交換用バーコード値がとり得る値の範囲によっては、被除数がかなり小さくなって、除算の処理が高速化される。
【0167】
また、店舗端末装置2は、バーコード読取装置24で読み取った固有バーコードまたは交換用バーコードの画像パターンを数値化して、その固有バーコード値または交換用バーコード値をサーバ装置1に送るものとしてもよい。店舗端末装置2は、固有バーコード値を数値AとBとでそれぞれ除算した剰余a、bを、或いは交換用バーコード値を数値CとDとでそれぞれ除算した剰余c、dを、サーバ装置1に送るものとしてもよい。
【0168】
また、ユーザデータベース107の固有バーコード情報としては、ステップS703(a)及び(b)で求めた剰余a、bが、交換用バーコード情報としては、ステップS903(a)及び(b)で求めた剰余c、dが、それぞれそのまま登録されるものとしていたが、これらの剰余a、b、c、dは、所定の方法で暗号化した上で、ユーザデータベース107に登録するものとしてもよい。このための暗号鍵及び復号鍵は、サーバ装置1に置かないで、サーバ装置1と接続された別のコンピュータ装置から必要に応じて取得するものとしてもよい。非対称暗号系を適用する場合は、復号鍵のみを別のコンピュータ装置に置いてもよい。
【0169】
固有バーコードの再発行時やステップS906またはS1107の処理では、ユーザデータベース107から剰余a及びb、或いは剰余c及びdを読み出すこととなるが、これらが暗号化されて登録されている場合には、復号化してから次の処理に進めばよい。剰余a、b、c、dを暗号化して登録することで、固有バーコード及び交換用バーコードの復元には復号鍵もなければならないので、さらに安全性が増す。少なくとも復号鍵が別のコンピュータ装置に置かれていれば、サーバ装置1をハッキングしても、これだけでは固有バーコード及び交換用バーコードを復元可能な情報は得られないものとなる。
【0170】
また、固有バーコードに対応した数値をそれぞれ数値A、Bで除算した剰余a、bに対応した第1テーブル111及び第2テーブル112の記憶位置には、ユーザ情報を一義的に特定可能な他の情報(例えば、ユーザID)を登録するものとしてもよい。この場合、剰余a及びbにそれぞれ対応した第1テーブル111及び第2テーブル112の記憶位置に登録された情報に互いに一致するものがあるかどうかを判定することで、その認証を行うことができる。交換用バーコードについても同様である。
【0171】
また、各ユーザが交換用バーコードを一度に1つしか取得できないものとすれば、ユーザデータベース107の交換用バーコード情報として剰余c、dを保存しておく必要はない。この場合、交換用バーコードの発行要求があった場合には、当該ユーザのユーザ情報を指し示すポインタを第3テーブル113及び第4テーブル114から検索し、これを最初に消去する。そして、図21に示したように交換用バーコードを発行すればよい。もっとも、この場合にステップS906及びS907の処理は行われなくなり、ステップS905の判定結果がYESとなった場合には、ステップS901の処理に戻るものとすればよい。
【0172】
さらに、直接アドレス法の適用によって、固有バーコードまたは交換用バーコードとユーザとの対応付けをさらに高速に行えるようにしてもよい。図24は、この変形例を説明する図である。固有バーコードでも交換用バーコードでも同じ手法が適用できるが、ここでは固有バーコードを例として説明する。第1テーブル111’の先頭番地をM、第2テーブル112’の先頭番地をNとしている。第1テーブル111’及び第2テーブル112’の各ワードには、固有バーコードに対応するユーザ情報の先頭番地が格納される。新たに発行した固有バーコードにより衝突が発生した場合には特定値が格納されると共に、当該ワードに対応して、特定値テーブル113が別に設けられる。
【0173】
CPU11は、ランダムに生成した固有バーコードもしくは店舗端末装置2または携帯電話機3から受信した固有バーコードを数値化した固有バーコード値Xを数値Aで除算した剰余aに先頭番地Mを加算したM+a番地を直接アドレスして、第1テーブル111’を参照する。CPU11は、固有バーコード値Xを数値Bで除算した剰余bに先頭番地Nを加算したN+b番地を直接アドレスして、第2テーブル112’を参照する。M+a番地またはN+b番地に特定値が格納されていると、それに対応して設けられた特定値テーブル113を参照する。
【0174】
M+a番地とN+b番地(場合によってはこれらの番地に対応して設けられた特定値テーブル113)とに同じユーザ情報の先頭番地が格納されていれば、認証が可能となる。ユーザデータベース107からのユーザ情報の取り出しも、M+a番地及びN+b番地(場合によってはこれらの番地に対応して設けられた特定値テーブル113)に格納された番地の直接アドレスによって行うことができる。
【0175】
ここまで説明した変形例は、ハッシュ法を応用したものではあるが、ハッシュ関数の選択方法としては上記の方法に限られるものではない。すなわち、任意の複数種類のハッシュ関数によるハッシュ値の計算を行い、各ハッシュ関数に対応して設けられた複数のハッシュテーブルのハッシュ値に対応した記憶位置にユーザ情報を指し示すポインタを登録するようなものであればよい。もっとも、異なる2つのバーコードに対して、少なくとも1種類のハッシュ関数によって計算したハッシュ値は一致しないものとなることが必要である。
【0176】
なお、上記のようなハッシュ法を応用した変形例は、固有バーコードにのみ適用する(すなわち、図21乃至図23のフローチャートの処理は行わない)ものであっても、サーバ装置1のハッキングによるポイントの不正使用を防ぐためには十分な効果を得ることができる。上記の実施の形態において説明したように、交換用バーコードは、有効期限が付されており、ユーザ側で長期間管理されることがない。サーバ装置1がハッキングされて交換用バーコードが盗み出されたとしても、それを有効期限内で使用することは実質的に不可能だからである。
【0177】
上記の実施の形態では、図9〜図13、或いは図19〜図23のフローチャートに示すプログラムは、サーバ装置1のメモリ12、店舗端末装置2のメモリ22、或いは携帯電話機3のROM32に記憶されているものとして説明した。しかしながら、これらのプログラムの全部または一部が、図25に示すような手法を用いて、ハードウェアとは別個に提供されるものであってもよい。
【0178】
図25(a)は、プログラムの提供方法の第1の例を示す。サーバ装置1、店舗端末装置2は、それぞれCD−ROMやDVD−ROMなどのコンピュータ読み取り可能な記録媒体55を駆動し、データを読み取るディスクドライブ51、52をさらに備える。CPU11、21は、それぞれディスクドライブ51、52に記録媒体55に記録されたプログラムを読み取らせ、メモリ12、22にインストールさせるものとすることができる。携帯電話機3は、ROMカード56を挿入し、データを読み取るカードスロット53をさらに備える。CPU31は、カードスロット53を介してROMカード56に記録されたプログラムの命令を順次取り出して、実行するものとすればよい。
【0179】
図25(b)は、プログラムの提供方法の第2の例を示す。サーバ装置1、店舗端末装置2及び携帯電話機3の処理プログラムは、インターネット4上のWebサーバ57が有する固定ディスク装置58に格納されている。サーバ装置1、店舗端末装置2または携帯電話機3からプログラムの送信要求が送られてくると、Webサーバ57は、固定ディスク装置58に格納されたプログラムをデータ信号化し、搬送波59に重畳してインターネット4を介して要求元の装置に返送する。サーバ装置1、店舗端末装置2または携帯電話機3の通信装置15、27、36が搬送波に重畳されて送信されたプログラムを受信すると、CPU11、21、31は、このプログラムをメモり12、22またはROM32にインストールさせるものとすることができる。ここで、携帯電話機3のROM32としては、電気的にデータの書き込み及び消去が可能なフラッシュメモリを適用することができる。
【0180】
上記の実施の形態では、固有バーコードと交換用バーコードとがセットとなって、ポイントの蓄積及び交換のために用いられるものとしていた。もっとも、携帯電話機3に割り当てられた固有バーコードは、交換用バーコードとは独立して、顧客管理などの他の用途にも用いることができる。また、ユーザが所持し、他の商品と交換するポイントは、商品の購入によって蓄積されるものに限らない。
【0181】
このポイントは、ユーザが飛行機に搭乗した距離で蓄積するマイレージであってもよい。このポイントは、パチンコやスロットマシンなどの遊技でユーザが獲得した遊技球やメダルの数によって与えられるものでもよい。このポイントは、ユーザがバナー広告の付されたWebページを閲覧することによって与えられるものであってもよい。
【0182】
このポイントは、プリペイドカードのように、ユーザが予め支払った金銭の額に応じた蓄積させるものであってもよい。つまり、ポイントそのものが金銭価値を示すものであってもよい。図14に示したようにポイントの値がマイナスを示すことを可能とし、所定期間毎にマイナス分の請求書を発行する処理は、ポイントそのものが金銭価値を示すものとした場合に特に有効である。
【0183】
ユーザが蓄積したポイント(マイナスを含む)には、所定の利息を付けたり、一定値に達する毎にボーナスポイントを付したりすることもできる。商品の購入でポイントを蓄積する以外に、友人をユーザとして紹介した場合にボーナスポイントを付することもできる。
【0184】
ユーザが蓄積したポイントは、提供者が予め商品の中から希望の商品を選び、郵送、宅配または加盟店で受け取るものという手法で、商品と交換できるようにしてもよい。ーザが蓄積したポイントは、商品割引クーポンの取得に利用できるようにしてもよい。ユーザが蓄積したポイントは、コンサートの座席などの優先予約ができるようなものとしてしようしてもよい。ポイントそのものが金銭価値を示すものである場合は、ユーザにキャッシュバックすることも可能である。
【0185】
【発明の効果】
以上説明したように、本発明によれば、ユーザがポイントを他の物と交換する際に必要となる識別情報の偽造を防ぐことができると共に、ユーザが有するポイントが不正に他の物に交換されるのを防ぐことができる。
2007年08月22日
