図1は、本発明の一形態に係る決済システムが適用されたゲームシステムを説明する。まず、図1を参照して、ゲームシステムの全体構成を説明する。ゲームシステム1は、サーバ装置としてのセンターサーバ2と、センターサーバ2に所定のネットワーク5を介して接続可能なクライアント装置としてのゲーム機3及びユーザ端末装置4とを含む。センターサーバ2は、複数のコンピュータ装置としてのサーバユニット2A、2B…が組み合わされることにより一台の論理的なサーバ装置として構成されている。ただし、単一のサーバユニットによりセンターサーバ2が構成されてもよい。あるいは、クラウドコンピューティングを利用して論理的にセンターサーバ2が構成されてもよい。
ゲーム機3は、所定のプレイ料金の支払いと引き換えに、そのプレイ料金に対応した範囲でユーザにゲームをプレイさせる商業用(業務用)のゲーム機として構成されている。この種のゲーム機3は、アーケードゲーム機と呼ばれることがある。ゲーム機3は、多数のユーザにゲームを繰り返しプレイさせて収益を上げることを主たる目的として店舗6等の所定の施設に設置されるコンピュータ装置である。なお、店舗6には一以上の適宜数のゲーム機3が設置される。図1では、ゲーム機3を区別せずに描いているが、そのハードウエア構成やゲームの内容は適宜に選択されてよい。ゲーム機3は、特定のゲームに適合する物理的構成(例えば操作部等)を備えた専用機として構成されてもよいし、ソフトウエアの書き換えにより種々のゲームに対応可能な汎用機として構成されてもよい。
一方、ユーザ端末装置4は、ネットワーク接続が可能でかつユーザの個人用途に供されるコンピュータ装置である。例えば、据置型又はブック型のパーソナルコンピュータ(以下、PCと表記する。)4a、あるいは携帯電話(スマートフォンを含む。)のようなモバイル端末装置4bがユーザ端末装置4として利用される。その他にも、据置型の家庭用ゲーム機、携帯型ゲーム機、携帯型タブレット端末装置といった、ネットワーク接続が可能でかつユーザの個人用途に供される各種のコンピュータ装置がユーザ端末装置4として利用されてよい。ユーザ端末装置4は、各種のコンピュータソフトウエアを実装することにより、センターサーバ2が提供する種々のサービスをユーザに享受させることが可能である。
ネットワーク5は、センターサーバ2に対してゲーム機3及びユーザ端末装置4をそれぞれ接続させることができる限り、適宜に構成されてよい。一例として、ネットワーク5は、TCP/IPプロトコルを利用してネットワーク通信を実現するように構成される。典型的には、WANとしてのインターネット5Aと、センターサーバ2及びゲーム機3のそれぞれとインターネット5Aとを接続するLAN5B、5Cとがルータ5Dを介して接続されることにより構築される。ユーザ端末装置4も適宜の構成によりインターネット5Aに接続される。なお、ゲーム機3と店舗6のルータ5Dとの間にローカルサーバが設置され、そのローカルサーバを介してゲーム機3がセンターサーバ2と通信可能に接続されてもよい。センターサーバ2のサーバユニット2A、2B…はLAN5Cに代えて、又は加えてWAN5Aにより、相互に接続される場合もある。
次に、図2を参照してゲームシステム1に適用された決済システムの特徴を説明する。決済システム10は、決済サーバ11と、ゲーム機3をクライアントとするサーバクライアントシステムとして構成されている。決済サーバ11は、センターサーバ2の一部として単一又は複数のサーバユニット2A、2B…により実現される。決済サーバ11は、ゲーム機3からの決済要求に従って、ユーザが保有する仮想通貨の残高をユーザの識別情報(一例としてユーザID)と対応付けて記録した口座データADa、ADb…(図ではユーザA、Bの口座データのみを示す。以下、参照符号ADで代表することがある。)にアクセスし、ゲーム機3から指定された課金対象ユーザの口座データADから仮想通貨を消費させる決済処理を試行し、その処理結果をゲーム機3に通知する。ゲーム機3は決済処理の成功が通知されるとゲームのプレイを許可し、決済処理の失敗が通知されるとゲームのプレイを許可しない。なお、仮想通貨の用語は、現実の通貨と引き換えにユーザが取得可能でかつ電子的な情報として取引される金銭的価値の一例の意味で用いる。決済システム10において、仮想通貨は現実の通貨と同様に金銭的価値として通用する。
ゲーム機3においては、複数のユーザがプレイに必要な料金を分担して支払いたい場合がある。例えば、単一のゲーム機3で二人のユーザがゲームをプレイするモード(いわゆる2Pモード)が選択された場合、そのモードのプレイに必要な料金を二人のユーザが分担して支払う場合等が該当する。この場合、決済サーバ11による決済処理が各ユーザに対する課金のそれぞれを単位として行われ、ゲーム機3にも決済処理の結果が課金毎に個別に通知されることにより、一方のユーザの決済が成功しても、他方のユーザの決済が残高不足等によって失敗し、決済処理が成功したユーザのみでゲームが開始されてしまう可能性がある。そこで、決済システム10においては、ゲーム機3にて、決済処理の結果が同一に定まるべき複数の課金が発生した場合、ゲーム機3がそれらの課金を一群の課金として一括処理の対象に設定して決済サーバ11に決済処理を要求し、決済サーバ11はこれを受けて一群の課金のそれぞれに対応する決済処理を試行する。そして、全ての決済処理が成功した場合には一群の課金に対応する決済処理が成功したことをゲーム機3に通知し、少なくとも一つの課金に対応する決済処理が失敗した場合には、全ての決済処理を失敗したものとして処理して一群の課金に対応する決済処理が失敗したことをゲーム機3に通知する。
上記の処理を具体的な例により説明する。二人のユーザA、Bが共同してゲームをプレイするモードを選択した場合において、ユーザA、Bにプレイ料金がそれぞれ課金され、ユーザAに対する課金額がCa、ユーザBに対する課金額がCbであったとする。課金額Ca、Cbは互いに等しくてもよいし、異なっていてもよい。この場合、ゲーム機3は、ユーザA、Bのそれぞれに対する課金を一群の課金とみなし、ユーザA、Bの口座データADa、ADbを特定するための識別情報、一例として、ユーザA、Bがそれぞれ所有するカード8に記録されたカード毎にユニークなカードIDをユーザA、Bから取得する。次に、ゲーム機3は、ユーザAのカードID及び課金額Caを含む課金情報、及びユーザBのカードBのカードID及び課金額Cbを含む課金情報をそれぞれ生成し、それらの課金情報に従った決済処理を一括処理の対象に設定して、決済サーバ11にそれらの決済処理を要求する。決済サーバ11は、ゲーム機3から一括処理の対象に設定された決済処理の要求を受け取ると、ユーザAのカードIDに基づいてユーザAの口座データADaにアクセスし、口座残高から課金額Caに相当する仮想通貨の消費を試み、その結果(成功又は失敗)を判別し、かつ、ユーザBのカードIDに基づいてユーザBの口座データADbにアクセスし、口座残高から課金額Cbに相当する仮想通貨の消費を試み、その結果(成功又は失敗)を判別する。そして、決済サーバ11は、各決済処理の結果がいずれも成功であれば、一括処理の対象の全ての決済処理が成功したことをゲーム機3に通知する。一方、決済サーバ11は、一つでも決済処理に失敗した場合には一括処理の対象の全ての決済処理が失敗したことをゲーム機3に通知する。この場合、決済サーバ11は一部の決済処理(先に試行した決済処理)が成功していれば、その決済処理を取り消す。
以上のように、決済システム10によれば、ゲーム機3にて決済処理の結果が同一に定まるべき一群の課金が発生した場合、ゲーム機3がそれぞれの課金に対応する決済処理を一括処理の対象に設定してそれらの決済処理を決済サーバ11に要求し、決済サーバ11は、全ての決済処理が成功した場合に限って決済処理の成功が通知され、一つでも決済処理が失敗すれば全ての決済が失敗したものと処理してゲーム機3に全ての決済処理が失敗したことが通知される。したがって、料金を分担すべきユーザ間で決済処理の結果が相反することがない。そのため、決済に成功したユーザに限ってゲームのプレイを開始させるといった、ユーザが意図しない制御を行う必要がなく、一部の決済が失敗した場合に生じ得る不都合を未然に防止することができる。
次に、図3を参照して、決済システム10における制御系の要部の構成を説明する。まず、ゲーム機3には、制御部20と、記憶部21と、リーダ部22とが設けられている。制御部20は、CPU及びその動作に必要な周辺装置を含み、記憶部21に記録されたゲーム機用プログラムPgに従ってゲームをプレイさせるために必要な各種の処理を実行する。記憶部21は磁気記憶媒体、EEPROMといった不揮発性の記憶媒体を有し、制御部20に対する外部記憶装置として機能する。リーダ部22は制御部20からの指示に従ってユーザのカード8に記録されたカードIDを読み取り、制御部20に通知する。
制御部20には、そのハードウエアとソフトウエアとしてのゲーム機用プログラムPgとが協働して実現される論理的装置として、ゲーム制御部23及び課金管理部24が設けられる。ゲーム制御部23は、ユーザの操作に応じてゲームの進行を制御するために必要な各種の演算処理等を実行することによりゲームそれ自体の制御主体となる装置である。課金管理部24はゲーム機3におけるユーザへの課金を管理する装置である。課金管理部24は、ゲーム制御部23からの通知によりユーザへの課金の発生を検出し、課金内容に対応した決済処理を決済サーバ11に要求し、その決済処理の結果を決済サーバ11から受け取ってゲーム制御部23に結果を通知する。課金管理部24は、上述した一群の課金が発生したか否かを判別する処理と、一群の課金のそれぞれに対応する決済処理を一括処理の対象に設定する処理とを担当する。
一方、決済サーバ11には、制御部30と、記憶部31とが設けられている。制御部30は、CPU及びその動作に必要な周辺装置を含み、記憶部21に記録されたサーバ用プログラムPsに従って仮想通貨を用いた決済に必要な各種の処理を実行する。記憶部31は磁気記憶媒体、EEPROMといった不揮発性の記憶媒体を有し、制御部30に対する外部記憶装置として機能する。
制御部30には、そのハードウエアとソフトウエアとしてのサーバ用プログラムPsとが協働して実現される論理的装置として、取引管理部32及び消費管理部33が設けられる。取引管理部32は、ゲーム機3からの決済処理の要求を受け取り、その要求に添えられた課金情報に応じて仮想通貨の消費を消費管理部33に指示し、消費管理部33の処理結果に基づいて、決済処理の結果をゲーム機3に通知するといった仮想通貨の取引に関する制御を実行する。消費管理部33は、仮想通貨の消費を制御する。
決済サーバ11の取引管理部32は、ユーザ情報のデータD10及び取引履歴のデータD11に、消費管理部33は仮想通貨残高のデータD12にそれぞれアクセス可能とされている。ユーザ情報のデータD10は、ユーザのカードIDと、ユーザ毎にユニークなユーザ識別情報としてのユーザIDとの対応関係を記述したデータである。取引管理部32は、ユーザ情報のデータD10にアクセスすることにより、ゲーム機3から受け取った課金情報のカードIDに対応するユーザIDを取得し、そのユーザIDと課金額に相当する仮想通貨の消費量とを消費管理部33に通知する。また、取引管理部32は、決済処理の結果を課金情報とともに取引履歴のデータD11に記録する。
消費管理部33は、取引管理部32からユーザID及び消費量を指定して仮想通貨の消費を指示されると、仮想通貨残高のデータD12にアクセスして、ユーザIDに対応する口座を特定し、その口座に保持された残高を課金情報で指定された消費量に相当する量減少させる決済処理を試み、その結果を取引管理部32に通知する。取引管理部32は、消費管理部33から通知される処理結果に基づいてゲーム機3に処理結果を通知するが、この際、一括処理が設定された決済処理に関しては、それぞれの処理結果を一致させるために必要な処理を行う。つまり、取引管理部32は、ゲーム機3から一括処理の対象として設定された決済処理が要求された場合、その一括処理の対象となる決済処理間で同一の処理結果を得るための処理を担当する。なお、決済サーバ11には、決済処理に伴って発生する各種の関連処理を行うための論理的装置及びデータも設けられるが、それらの図示及び説明は省略する。口座データADに記録される残高は、ユーザ端末装置4からのユーザの購入操作等に従って増加させることができるが、その処理に必要な構成の図示及び説明は省略する。
次に、図4及び図5を参照して決済システム10の処理手順の一例を説明する。図4は、ゲーム機3の課金管理部24が課金の発生に対応して実行する端末課金処理の手順の一例を示している。この例は、ユーザが購入しようとする商品に応じて課金対象者の人数が予め定められ、課金対象者の人数が2以上に設定された商品が購入される場合に一群の課金が発生したと判別する例である。ここでいう商品はゲーム機3においてユーザが購入可能な無形の商品を意味する。例えば、ゲームのモード、コンテンツ(アイテム等)等が商品に相当する。つまり、ゲーム機3にて利用されるべきプログラム又はデータが無形の商品としてユーザの購入対象となる。また、商品には課金対象者(つまり、料金を支払うべきユーザ)の人数が予め設定されており、課金対象者の人数は商品に応じて1又は2以上の複数に設定されている。例えば、二人のユーザでプレイするいわゆる2Pモードの場合、課金対象者の人数として2設定される。なお、購入の用語は、その所有権をユーザが取得する譲渡に限定されず、一定期間又は無期限の使用の権利をユーザが獲得する場合も購入の概念に含まれる。
ゲーム機3にてユーザが何らかの商品を購入する操作を行うと、ゲーム機3の課金管理部24は図4の処理を開始し、まずゲーム制御部23からユーザが購入する商品の情報を取得してその内容を確認する(ステップS11)。ここでは、特に、商品に対して予め設定されている料金及び課金対象者の人数を確認する。例えば、ゲーム機3にてユーザに提供される商品毎にユニークな商品コードを設定し、その商品コードと料金及び課金対象者の人数を指定する情報とを対応付けたテーブルを予めゲーム機3に記録しておくことにより、料金及び課金対象者を確認することができる。
次に、課金管理部24は、課金対象者の人数が複数か否かを判別する(ステップS12)。複数であった場合、課金管理部24は決済処理が同一に定まるべき一群の課金が発生したものと判断してステップS13に進み、単数、つまり課金対象者が一人であった場合にはステップ18に進む。ステップS13に進んだ場合、課金管理部24は課金対象者の人数をユーザに提示してその人数分のカードIDの読み取りを要求し、その要求に対応する全てのユーザのカードIDを取得することにより、課金対象の全てのユーザを識別する。次に、課金管理部24は、課金対象の各ユーザに対する課金額を確定する(ステップS14)。例えば、商品に対して料金(つまり課金額の総額)以外にも、課金対象者の人数に応じて各ユーザへの課金額が予め設定されている場合には、その額をユーザ毎の課金額として確定すればよい。商品に対して料金のみが設定されている場合には、その料金を課金対象のユーザが互いに等しく分担するように課金額が確定されてもよい。つまり、商品の料金をユーザ数で割った額が各ユーザに対する課金額として確定されてもよい。あるいは、各ユーザに対する課金額をユーザに指定させ、指定された額が課金額として確定されてもよい。なお、商品に対して予め課金対象の人数が設定されている場合、商品の料金は課金対象者の人数で等しく割ることができる値に設定されることが望ましい。料金をユーザ数で除したときに余り(端数)が生じる場合には、ユーザからの指示に従って、あるいはユーザの指示を経ることなく、所定の条件に従って自動的に、余りの額を負担するユーザが決定されてもよい。課金額を確定する際に、その単位は仮想通貨にて決済可能な最小単位以上であれば適宜に設定してよい。例えば、1円単位での決済が可能な場合、課金額を1円単位で設定してもよいし、100円単位で設定してもよい。
各ユーザへの課金額が確定すると、課金管理部24は各ユーザに対する課金情報を生成する(ステップS15)。課金情報は課金対象のユーザのカードID、課金額を含む。さらに課金情報には、商品を識別する情報(例えば商品コード)といった取引履歴のデータD11に記録されるべき各種の情報が含まれてもよい。次に、課金管理部24は、課金対象の全てのユーザに対応する決済処理を一括処理の対象に設定する(ステップS16)。例えば、一括処理がなされるべき課金情報を一つの処理単位としてひとまとめに統合することにより、一括処理の対象の決済処理を設定することができる。他にも、一括処理の対象は適宜の手法で設定できる。例えば、課金情報を相互に関連付ける情報を各ユーザに対する課金情報に記録することにより、決済サーバ11にて一括処理の対象となる決済処理が判別できるようにしてもよい。次に、課金管理部24は、生成された課金情報を決済サーバ11に送信して決済処理を要求する(ステップS21)。この場合、課金対象の全てのユーザに関する決済処理が、一括処理の対象として、ひとまとめにして決済サーバ11に要求される。
一方、ステップS12で課金対象者の人数が一人であった場合、課金管理部24は課金対象のユーザのカードIDを取得することによりそのユーザを識別し(ステップS18)、続いてユーザへの課金額を確定する(ステップS19)。この場合の課金額は商品の料金そのものである。さらに、課金管理部24は単一のユーザに関する課金情報を生成し(ステップS20)、その後、ステップS21へと進んで決済処理を要求する。このときの要求では一括処理であることの通知がなされない。
決済処理を要求した後、課金管理部24は決済処理の結果を決済サーバ11から取得するまで処理を保留し(ステップS22)、処理結果を取得したら決済処理が成功したか否かを判別する(ステップS23)。そして、決済処理が成功していればゲーム制御部23に対して商品の購入を許可することを通知し(ステップS24)、決済処理が失敗であればゲーム制御部23に対して商品の購入を許可しないことを通知する(ステップS25)。これを受けてゲーム制御部23は、ユーザが購入を希望した商品をユーザに提供してよいか否かを制御する。例えば、ユーザが所定のモードを商品として購入しようとした場合、ゲーム制御部23は購入許可であればそのモードをプレイさせるための処理に進み、購入が許可されていなければそのモードでのプレイを禁止する。
なお、上記の処理では、ステップS12で課金対象者が複数であった場合、ステップS13にてまず全ユーザのカードIDを取得し、その後、ステップS14で課金額を確定し、ステップS15で全ユーザの課金情報を生成しているが、これらの手順を入れ替えてもよい。例えば、課金対象者の人数が複数であった場合、一人目のユーザに関してまずカードIDの取得、課金額の確定及び課金情報の生成を順次実行し、次に二人目のユーザについて同様の処理を行い、以下、課金対象者の全ユーザに対して処理が完了するまでループを繰り返し、全ての課金情報が生成された時点でステップS16に進んでもよい。さらに、一人目のユーザに関して課金情報が生成された時点でこれを一括処理の対象に設定して決済サーバ11に決済処理を要求し、以下全てのユーザの処理が終わるまで同様の処理を繰り返してもよい。この場合、決済サーバ11では一人目のユーザの課金情報を得た時点で先行して決済処理の試行を開始することができ、かつ、一括処理の対象の決済処理が全て要求されるまで、決済処理の結果の確定とゲーム機3への通知を保留することにより、一括処理の対象となる決済処理の結果を相互に一致させることができる。また、上記の処理では、課金対象者が一人の場合、ステップS18〜20に分岐したが、これを分岐することなくステップS13〜S21の処理を順次実行してもよい。
図5は、図4の処理に対応して決済サーバ11が実行する消費管理処理の手順を示している。決済サーバ11は、ゲーム機3から決済処理が要求されると図5の処理を開始する。図5の処理においては、まず取引管理部32がゲーム機3から決済処理の要求に伴って提供される課金情報を確認し(ステップS31)、次に取引管理部32は、ゲーム機3から要求された決済処理が一括処理の対象として設定されているか否かを判別する(ステップS32)。一括処理の対象であった場合、取引管理部32は処理数を判別するための変数Nに初期値1をセットし(ステップS33)、その後、N人目のユーザに関する決済処理を消費管理部33に試行させる(ステップS34)。この場合、取引管理部32は処理対象のユーザに関する課金情報からカードIDを取得し、そのカードIDに対応するユーザIDをユーザ情報のデータD10から取得し、そのユーザIDと課金情報に含まれた課金額とを消費管理部33に通知する。その通知に応答して、消費管理部33はステップS34の処理を実行する。すなわち、消費管理部33は、仮想通貨残高のデータD12にアクセスして、取引管理部32から通知されたユーザIDに対応する口座データADを特定し、その口座データADの残高が課金額に相当する量(消費量)以上か否かを判別する。そして、残高が消費量以上であれば、残高を消費量だけ減少させて取引管理部32に決済成功を通知する。一方、仮想通貨の残高が消費量未満であった場合、消費管理部33は残高を減少させることなく、決済失敗を取引管理部32に通知する。ただし、残高が足りていても、例えば口座データADからの仮想通貨の消費が禁止されているといった理由により、仮想通貨を消費することができない場合も決済失敗としてよい。
ステップS34にて消費管理部33が決済処理を試行すると、次に取引管理部32は消費管理部33から通知される決済処理の結果が成功か否かを判別する(ステップS35)。成功であった場合、取引管理部32は一括処理の対象とされた全ての決済処理が終了したか否かを判別する(ステップS36)。この場合、変数Nが一括処理の対象となっている決済処理の数、言い換えれば、課金対象者の人数と一致するか否かを判別すればよい。未処理の決済処理があれば取引管理部32は変数Nに1を加算し(ステップS37)、その後、ステップS34の処理に戻る。一方、ステップS36にて全ての決済処理が終わったと判断した場合、取引管理部32はステップS38に進み、全ての決済処理が成功したことを処理結果としてゲーム機3に通知する。
ステップS35にて、消費管理部33から通知される決済処理の結果が失敗であった場合、取引管理部32はステップS39に進み、既に成功している決済処理、この場合は一人目からN−1人目までの決済処理の取り消しを消費管理部33に指示し、これを受けて消費管理部33は該当する決済処理を取り消す(ステップS39)。つまり、消費管理部33はステップS34で残高から引かれた消費量を口座データADの残高に加算することにより、決済処理を取り消す。その後、取引管理部32は、一括処理の対象の全ての決済処理が失敗したことをゲーム機3に通知する(ステップS40)。
なお、ステップS32で一括処理の対象として設定されていないと判断された場合、取引管理部32は課金情報のカードIDに対応するユーザIDを取得して課金額とともに消費管理部33に通知することにより決済処理を要求し、これに対応して消費管理部33が指定されたユーザIDに対応する口座データADを特定して決済処理を試みる(ステップS41)。その後、取引管理部32は消費管理部33から決済成功が通知されたか否かを判別し(ステップS42)、成功であれば決済成功をゲーム機3に通知し(ステップS43)、失敗であれば決済失敗をゲーム機3に通知する(ステップS44)。ステップS38、S40、S43又はS44のいずれかによりゲーム機3に決済処理の結果を通知した後、決済サーバ11は図5の処理を終える。その通知は図4のステップS22にてゲーム機3の課金管理部24に取得される。
以上の処理によれば、一群の課金が発生すると、それらの課金に対応する決済処理が一括処理の対象に設定された状態で決済サーバ11に決済処理が要求され、その場合、決済サーバ11からは全ての決済処理に成功した場合に限って決済成功がゲーム機3に通知され、それ以外の場合、つまり一つでも決済処理が失敗した場合には一括処理の対象の全ての決済処理が失敗したものとしてゲーム機3に決済処理の結果が通知される。したがって、商品の料金を複数のユーザが分担して支払うべき場合において、ユーザ間で決済処理の結果が相反することがない。そのため、決済に成功したユーザに限ってゲームのプレイを開始させるといった、ユーザが意図しない制御を行う必要がなく、一部の決済が失敗した場合に生じ得る不都合を未然に防止することができる。なお、図5の処理でも、ステップS32の分岐を省略し、課金対象のユーザが一人であってもステップS33以下の処理に進むようにしてもよい。
次に、図6を参照してゲーム機3における端末課金処理の他の形態を説明する。なお、図6の端末課金処理は、商品を購入しようとする際に、課金対象者の人数をユーザに決定させ、課金対象者の人数が2以上の場合に一群の課金が発生したと判別する例である。図6の処理は図4の処理の一部を変更したものであり、図4と共通する処理は同一の参照符号を付して説明を省略する。
ゲーム機3にてユーザが何らかの商品を購入する操作を行うと、ゲーム機3の課金管理部24は図6の処理を開始し、まずゲーム制御部23からユーザが購入する商品の情報を取得してその内容を確認する(ステップS51)。ここでは、特に、商品に対して予め設定されている料金(課金額)を確認すればよい。次に、課金管理部24はユーザにカード8の読み取りを指示し、その指示に対応するユーザのカードIDを取得することにより、課金対象のユーザを識別する(ステップS52)。次に、課金管理部24は、所定の基準時、例えばステップS52の処理開始時点から所定の待ち時間が経過したか否かを判別し(ステップS53)、経過していなければステップS52に戻る。待ち時間は、ステップS52、S53の間で処理がループしている間、二人以上のユーザからカード8のカードIDを取得することが十分に可能な長さに設定される。
ステップS53にて待ち時間が経過したと判断されると、課金管理部24はステップS54に進み、複数のユーザのカードIDを取得したか否かを判別する。複数と判断された場合、課金管理部24はステップS55に進み、各ユーザへの課金額を確定する。この処理は図4のステップS14と同様に、商品の料金と課金対象者の人数とに基づいて各ユーザに対する課金額を確定する処理であるが、図6の場合はステップS53の処理が肯定判断されるまでは課金対象のユーザ数が確定しておらず、商品の料金に対して各ユーザに対する課金額を予め定めておくことができない。したがって、ステップS55では、各ユーザに対する課金額をユーザに指定させ、指定された額を課金額として確定するか、あるいは、ユーザの指示を経ることなく課金管理部24が自動的に課金額を確定するようにしてもよい。例えば、商品の料金を課金対象のユーザ数で除した値を各ユーザへの課金額として確定させることが考えられる。この場合、課金額に余り(端数)が生じる場合には、ユーザからの指示に従って、あるいはユーザの指示を経ることなく、所定の条件に従って自動的に、余りの額を負担するユーザが決定されてもよい。
ステップS55にて課金額が確定された後、課金管理部24はステップS15以下の処理に進む。一方、ステップS54にて課金対象のユーザ数が単数であると判断された場合、課金管理部24はステップS19、S20を経てステップS21に進む。これらの処理は図4と同じでよい。
図6の処理によれば、商品に対して予め課金対象者の人数を決めておく必要がなく、商品の料金を何人のユーザで分担して支払うかをユーザが決められるので、決済の自由度が高まる。例えば、所定人数のユーザがプレイすることを前提としたモードであっても、その料金を所定人数より多いユーザで分担して支払い、あるいは、所定人数未満のユーザで支払うといった決済処理を実現することができる。
本発明は以上の形態に限定されることなく、適宜の変更又は変形を施した形態にて実施されてよい。例えば、上記の形態では、一括処理が設定された決済処理が要求された場合、決済サーバ11の消費管理部33にてユーザの口座データADから仮想通貨を順次消費させることにより決済処理を試行しているが、この段階では各ユーザの課金額以上の残高が存在するか否かのみを確認し、全ユーザの残高が課金額以上の場合に、仮想通貨の消費を実行するものとしてもよい。この場合、残高不足のユーザが一人でも存在すれば、一括処理の対象の決済処理が全て失敗したものとする処理結果を取引管理部32が生成し、ゲーム機3に通知する処理を行えばよく、消費管理部33により決済処理を取り消す必要はない。上記の形態では、各ユーザに対する課金額をゲーム機3の課金管理部24にて決定しているが、これに代えて、決済サーバ11側で各ユーザへの課金額が決定されてもよい。
一括処理の対象となる決済処理が、一部ユーザの残高不足を原因として失敗に終わった場合、決済可能な代替の課金プランを決済システムがユーザに提案する機能が追加されてもよい。例えば、残高に余裕があるユーザの課金額を増加させることにより、商品の料金を分担して決済することが可能な場合には、修正後の各ユーザへの課金額をユーザに代替プランとして提示し、ユーザの許可を得て決済処理を試行するものとしてもよい。料金が500円に設定されたモードを二人のユーザが250円ずつ支払ってプレイすることを希望し、一人のユーザの残高が100円しかなかった場合、そのユーザの課金額を100円、他のユーザの課金額を400円として提示するといった例が想定される。
複数のユーザが商品の料金を分担して支払う場合を例に挙げたが、そのような態様に限らず、一人のユーザが複数の決済手段を併用して料金を支払おうとする場合でも本発明の決済システムは適用可能である。例えば、ユーザが所定のサービスを利用した際に、特典としてポイントを付与するシステムにおいては、ユーザが商品の料金の一部をポイントで支払い、残りを仮想通貨で支払うことを希望することがある。この場合、ポイントの利用に関する課金と仮想通貨の利用に関する課金とを一群の課金と見なすことにより、本発明を適用することができる。
本発明の各態様はゲームシステムに適用される例に限らず、各種の決済システムに適用されてよい。例えば、店舗内における決済端末装置を課金管理手段とし、店舗内におけるサーバを決済手段としてそれぞれ機能させる決済システムでも本発明は適用可能である。商品は無形の商品に限らず、有形の商品であってもよい。例えば、決済成功の場合に有形の商品を払い出し、あるいは発送するシステムにおける決済に本発明の各態様が適用されてもよい。
上記の形態では、決済システムが、サーバクライアントシステムとして構成され、ユーザが所有する金銭的価値の一例としての仮想通貨がサーバ側でユーザの識別情報と対応付けて記録され、その残高を課金額に相当する量だけ消費させるいわゆるプリペイド型システムとして構成され、かつ、クライアント側には金銭的価値の残高を保持せず、ユーザの口座を特定する情報をクライアント側で取得してサーバに通知する、いわゆるシンクライアント型のシステムとして構成されている。しかしながら、本発明の一態様に係る決済システムは、これらの例に限らない。例えば、ポストペイ型の決済システムでも、通信エラー、あるいは利用制限などによって一部のユーザの決済処理のみが失敗する可能性があり、こうした場合に一群の課金に対応する決済処理を一括処理の対象に設定して本発明を適用すれば、決済処理間で結果が相反する不都合を回避することができる。また、ユーザが所有するカード、携帯電話等に実装されたICチップ等の記録媒体に仮想通貨の残高が記録され、その残高を店舗等に設置されたコンピュータ装置の付属機器としてのリーダライターで読み取って課金額を消費させるスタンドアローン型の決済システム(あるいは決済装置)であっても、一群の課金のそれぞれで利用されるべき複数の記憶媒体から残高をそれぞれ取得し、全ての記憶媒体の残高が各媒体に対する課金額以上であれば決済処理が成功と見なしてリーダライターに残高消費を指示し、一つでも残高が不足する記憶媒体が存在すれば決済失敗として処理することにより本発明を適用することができる。この場合はコンピュータ装置が課金管理手段及び決済手段として兼用されることになる。
上述した実施の形態及び変形例のそれぞれから導き出される本発明の各種の態様を以下に記載する。なお、以下の説明では、本発明の各態様の理解を容易にするために添付図面の参照符号を括弧書にて付記するが、それにより本発明が図示の形態に限定されるものではない。
本発明の一態様に係る決済システムは、課金の発生に対応して課金内容に応じた決済処理を要求する課金管理手段(24)と、前記決済処理の要求に従って前記課金内容に応じた決済処理を試行し、前記決済処理の結果を前記課金管理手段に通知する決済手段(11)とを備えた決済システム(10)において、前記課金管理手段には、前記決済処理の結果が同一に定まるべき一群の課金が発生したか否かを判別する判別手段(24、S11、S12;S51〜54)と、前記一群の課金が発生したと判別された場合、該一群の課金に対応する決済処理を一括処理の対象に設定して、該一群の課金に対応する決済処理を前記決済手段に要求する決済要求手段(24、S16、S21)と、が設けられ、前記決済手段には、前記一括処理の対象として設定された決済処理が要求された場合、前記一群の課金のそれぞれに対応する決済処理を試行する決済試行手段(33、S34)と、前記決済試行手段により全ての決済処理が成功した場合には前記一群の課金に対応する決済処理が成功したことを前記決済処理の結果として前記課金管理手段に通知し、少なくとも一つの課金に対応する決済処理が失敗した場合には、前記決済試行手段が試行した全ての決済処理を失敗したものとして処理して前記一群の課金に対応する決済処理が失敗したことを前記決済処理の結果として前記課金管理手段に通知する取引管理手段(32、S35、S38〜S40)と、が設けられているものである。
本発明の一態様に係る決済制御方法は、課金の発生に対応して課金内容に応じた決済処理を要求する課金管理手段(24)と、前記決済処理の要求に従って前記課金内容に応じた決済処理を試行し、前記決済処理の結果を前記課金管理手段に通知する決済手段(11)とを備えたコンピュータシステム(1)に適用される決済制御方法において、前記課金管理手段には、前記決済処理の結果が同一に定まるべき一群の課金が発生したか否かを判別する判別手順(S11、S12;S51〜54)と、前記一群の課金が発生したと判別された場合、該一群の課金に対応する決済処理を一括処理の対象に設定して、該一群の課金に対応する決済処理を前記決済手段に要求する決済要求手順(S16、S21)とを実行させ、前記決済手段には、前記一括処理の対象として設定された決済処理が要求された場合、前記一群の課金のそれぞれに対応する決済処理を試行する決済試行手順(S34)と、前記決済試行手順により全ての決済処理が成功した場合には前記一群の課金に対応する決済処理が成功したことを前記決済処理の結果として課金管理手段に通知し、少なくとも一つの課金に対応する決済処理が失敗した場合には、前記決済試行手順で試行した全ての決済処理を失敗したものとして処理して前記一群の課金に対応する決済処理が失敗したことを前記決済処理の結果として前記課金管理手段に通知する取引管理手順(S35、S38〜S40)とを実行させるものである。
本発明の一態様に係る決済制御用のコンピュータプログラムは、所定のコンピュータシステムに含まれた少なくとも一のコンピュータ装置(3、11)を、課金の発生に対応して課金内容に応じた決済処理を要求する課金管理手段(24)、及び、前記決済処理の要求に従って前記課金内容に応じた決済処理を試行し、前記決済処理の結果を前記課金管理手段に通知する決済手段(11)として機能させる決済制御用のコンピュータプログラム(Pg、Ps)であって、前記課金管理手段には、前記決済処理の結果が同一に定まるべき一群の課金が発生したか否かを判別する判別手段(24、S11、S12;S51〜54)と、前記一群の課金が発生したと判別された場合、該一群の課金に対応する決済処理を一括処理の対象に設定して、該一群の課金に対応する決済処理を前記決済手段に要求する決済要求手段(24、S16、S21)と、が設けられ、前記決済手段には、前記一括処理の対象として設定された決済処理が要求された場合、前記一群の課金のそれぞれに対応する決済処理を試行する決済試行手段(33、S34)と、前記決済試行手段により全ての決済処理が成功した場合には前記一群の課金に対応する決済処理が成功したことを前記決済処理の結果として前記課金管理手段に通知し、少なくとも一つの課金に対応する決済処理が失敗した場合には、前記決済試行手段が試行した全ての決済処理を失敗したものとして処理して前記一群の課金に対応する決済処理が失敗したことを前記決済処理の結果として前記課金管理手段に通知する取引管理手段(32、S35、S38〜S40)と、が設けられように構成されたものである。
本発明の一態様に係る決済装置は、課金の発生に対応して課金内容に応じた決済処理を要求する課金管理手段(24)と、前記決済処理の要求に従って前記課金内容に応じた決済処理を試行し、前記決済処理の結果を前記課金管理手段に通知する決済手段(11)とを備えた決済システム(10)において、前記課金管理手段には、前記決済処理の結果が同一に定まるべき一群の課金が発生したか否かを判別する判別手段(24、S11、S12;S51〜54)と、前記一群の課金が発生したと判別された場合、該一群の課金に対応する決済処理を一括処理の対象に設定して、該一群の課金に対応する決済処理を前記決済手段に要求する決済要求手段(24、S16、S21)と、が設けられ、前記決済手段には、前記一括処理の対象として設定された決済処理が要求された場合、前記一群の課金のそれぞれに対応する決済処理を試行する決済試行手段(33、S34)と、前記決済試行手段により全ての決済処理が成功した場合には前記一群の課金に対応する決済処理が成功したことを前記決済処理の結果として前記課金管理手段に通知し、少なくとも一つの課金に対応する決済処理が失敗した場合には、前記決済試行手段が試行した全ての決済処理を失敗したものとして処理して前記一群の課金に対応する決済処理が失敗したことを前記決済処理の結果として前記課金管理手段に通知する取引管理手段(32、S35、S38〜S40)と、が設けられているものである。
本発明の各態様によれば、一群の課金が発生した場合、それらの課金に対応する決済処理が一括処理の対象に設定されて決済処理が要求され、これに対応して決済試行手段により各決済処理が成功するか否かが試行され、全ての決済処理が成功する場合には一群の課金のそれぞれに対応する決済処理が全て成功したことが課金管理手段に通知され、一つでも決済処理が失敗すれば、全ての決済処理が失敗したものとして処理されて課金管理手段には一群の課金のそれぞれに対応する決済処理の全てが失敗したことが通知される。したがって、一群の課金のそれぞれに対応する決済処理間で決済処理の結果が相反するおそれがなく、一部の決済が失敗した場合に生じ得る不都合を未然に防止することができる。
なお、本発明の一態様に係るコンピュータプログラムは、記憶媒体に記憶された状態で提供されてもよい。この記憶媒体を用いれば、例えばコンピュータに本発明に係るコンピュータプログラムをインストールして実行することにより、そのコンピュータを利用して本発明のゲームシステムを実現することができる。コンピュータプログラムを記憶した記憶媒体は、CDROM等の非一過性の記憶媒体であってもよい。
本発明の一態様において、前記判別手段は、複数のユーザが料金を分担して支払うことにより商品を購入する場合に、各ユーザに対してなされるべき課金の集合が前記一群の課金に相当するものとして前記一群の課金が発生したと判別してもよい。この場合は、複数のユーザが料金を分担して支払うことにより商品を購入する場合、ユーザ間で決済処理の結果が相反するおそれを排除することができる。
上記の態様において、前記判別手段は、商品に応じて予め定められた課金対象者の人数を判別可能であり、前記課金対象者の人数が2以上の場合に前記一群の課金が発生したと判別してもよい。この場合には、商品に対して課金対象者の人数を予め設定しておくことにより、一群の課金が発生したか否かを容易に判別することができる。
あるいは、前記判別手段は、前記商品が購入される際に、課金対象者の人数をユーザの操作に基づいて判別し、前記課金対象者の人数が2以上と判別された場合に前記一群の課金が発生したものと判別してもよい。この場合には、ユーザの操作によって課金対象者の人数を判別するので、商品の料金を何人のユーザで分担して支払うかをユーザが決めることができ、決済の自由度が高まる。
上記形態において、前記決済試行手段は、前記複数のユーザのそれぞれが分担すべき料金の額に相当する金銭的価値を各ユーザに消費させる処理をユーザ毎の決済処理として試行するものとしてもよい。これによれば、ユーザに金銭的価値を消費させることにより決済処理が行われる。
さらに、前記一群の課金が発生した場合、商品の料金と課金対象者としてのユーザの人数とに基づいて前記複数のユーザがそれぞれ分担すべき料金の額を決定する課金額決定手段(24、S14;S54)をさらに具備し、前記決済試行手段は、前記料金決定手段が決定した課金額に相当する金銭的価値を各ユーザに消費させてもよい。これによれば、課金額決定手段により各ユーザの課金額が決定されるので、各ユーザが料金の分担額を計算して指示するといった手間を省くことができる。
あるいは、前記ユーザが保有する金銭的価値がユーザの識別情報と対応付けて所定の残高データ(D12)に記録され、前記決済試行手段は、各ユーザが消費すべき金銭的価値を、前記残高データに記録された各ユーザの金銭的価値から減少させることにより前記決済処理を試行するものとしてもよい。これによれば、残高データにユーザの識別情報と対応付けて記録された金銭的価値を減少させるため、いわゆるプリペイド型のシステムにおいて、一部の決済処理が失敗した場合の問題を解決することができる。
本発明の一態様において、前記取引管理手段は、少なくとも一つの課金に対応する決済処理が失敗した場合には、前記一群の課金に対応して前記決済試行手段が試行した決済処理のうち、成功した決済処理を取り消すものとしてもよい(S39)。これによれば、一部の決済処理が失敗した場合、先行して成功した決済処理が取り消されるため、一括処理の対象として設定された決済処理の一部が成功した状態で残されるおそれがない。
本発明の一態様においては、前記商品が、所定のコンピュータ装置(3)上で前記ユーザの利用に供される無形の商品であってもよい。これによれば、コンピュータ装置にて利用される商品の購入に際して複数の課金が発生した場合、それらの課金に対応する決済処理間で処理結果が相反することによる不都合の発生を防止することができる。
本発明の一態様においては、前記コンピュータ装置としてゲーム機(3)が設けられ、前記商品が前記ゲーム機にて利用されるべきプログラム又はデータであってもよい。これによれば、ゲーム機にて利用されるプログラム又はデータの購入に際して複数の課金が発生した場合、それらの課金に対応する決済処理間で処理結果が相反することによる不都合の発生を防止することができる。
さらに、前記ゲーム機にて複数のユーザが共同してプレイする場合における前記複数のユーザのそれぞれへの課金の集合が前記一群の課金に相当するものとされてもよい。これによれば、ゲーム機にてゲームをプレイ使用とする複数のユーザのそれぞれに課金が発生した場合、それらの課金に対応する決済処理間で処理結果が相反することによる不都合の発生を防止することができる。
本発明の一態様においては、決済システムがサーバクライアント型のシステムとして構成され、前記課金管理手段が前記クライアント(3)側に、前記決済手段が前記サーバ(11)側にそれぞれ設けられてもよい。これによれば、クライアント側から一括処理の対象を設定して決済処理を要求することにより、サーバ側では決済処理間の処理結果の相反を防ぐように適切な処理を行うことができる。