以下、添付図面を参照して本発明の複数の形態を説明する。本発明に係るサービスシステムは各種のサービスを提供するシステムとして構成可能であるが、以下の形態では、ユーザが支払うべき料金を決済する決済サービスに関して本発明を適用したサービスシステムの一例を説明する。
(第1の形態)
図1に示すように、第1の形態に係るサービスシステム1は、バックオフィスサーバ10、スクリプト管理サーバ20、及び決済実行サーバ30と、これらのサーバ10〜30に対するクライアントとして機能するサービス端末40、管理端末50及びユーザ端末60とをコンピュータの一例として含んでいる。また、サービスシステム1は、決済サービスに関連して口座管理サーバ70、品目管理サーバ80及びサービス管理サーバ90と連携する。サーバ10〜30、70〜90、及び端末40〜60のそれぞれは不図示のネットワーク、一例としてインターネットに適宜に接続されることにより、相互間で情報を送信又は受信することが可能である。したがって、サービス端末40、管理端末50及びユーザ端末60は、口座管理サーバ70、品目管理サーバ80、サービス管理サーバ90のクライアントとしても適宜に機能してよい。
サービス端末40は、ユーザに対して決済サービスを提供しようとする者(以下、これをサービス提供者と呼ぶ。)が商業施設等の管理領域SAに設置し、運用する端末装置である。サービス端末40は、決済サービスを提供するためにユーザ端末60に読み取らせるべき情報画像の一例としての二次元コード100を表示する機能を有している。サービスシステム1における決済サービスは、サービス端末40に表示された二次元コード100がユーザ端末60にて読み取られ、その二次元コード100に記録されている特定情報に所定の情報を付加した参照情報がユーザ端末60から決済実行サーバ30に送信されることによって進められる。決済処理の手順は後に詳しく説明する。
サービス端末40には、一例として、ゲーム機40A、店頭端末40B等の端末装置が含まれてよい。ゲーム機40Aは、所定の料金の支払いと引き換えにユーザにゲームをプレイさせる業務用のゲーム機の一例である。店頭端末40Bは、例えばコンビニエンスストア等の店舗内に設置され、チケット等の各種の商品の販売、あるいは料金の収受といった各種のサービスを提供する端末装置の一例である。ゲーム機40A、及び店頭端末40Bによってユーザに提供されるサービスは、サービスシステム1によって処理される決済サービスと関連付けてその適用が制御されるサービスであって、決済サービスとは区別されるべきものである。以下では、この種のサービスを関連サービスと称して決済サービスと区別することがある。
サービス端末40は関連サービスを提供する例に限らない。例えば、店舗等でユーザが購入した商品を売上登録し、ユーザが支払うべき料金を計算するレジスター端末のように、決済サービスそれ自体をユーザに利用させる目的で設置され、関連サービスを提供しない端末がサービス端末40として設けられてもよい。いわゆるPOS端末がサービス端末40として設けられてもよい。その他にもサービス端末40としては各種の端末装置が用いられてよい。ただし、サービス端末40は二次元コード100を表示するための表示装置を備えている必要がある。
管理端末50は、決済サービスの管理、あるいは決済サービスに関する各種の設定等を目的として管理領域SAに設けられる端末装置である。管理端末50は、決済サービスを実現するために必要な情報をバックオフィスサーバ10に提供する端末として利用可能である。管理端末50としては、例えばブック型のパーソナルコンピュータ等の各種の端末装置が用いられてよい。ゲーム機40A、あるいは店頭端末40B等のサービス端末40が管理端末50として兼用されてもよい。なお、管理領域SAはサービス提供者が管理する領域を示す概念であって、一つのまとまった場所を必ずしも意味しない。例えば、サービス端末40は店舗等に設置され、管理端末50はサービス端末40を運用するサービス提供者の事務所等に設置されてよい。
ユーザ端末60は、ユーザの個人的用途に利用されるべき端末である。一例として、ネットワーク接続機能を備えたスマートフォンがユーザ端末60として利用される。ユーザ端末60はサービス端末40上に表示された二次元コード100を読み取り、その二次元コード100に含まれた特定情報に対して所定の情報を付加して参照情報を生成し、得られた参照情報を決済実行サーバ30に送信する。ユーザ端末60としては、スマートフォンに限らず、ネットワーク接続機能を備え、かつサービス端末40上に表示される二次元コード100を読み取ることが可能であれば適宜の端末装置が用いられてよい。ユーザ端末60は、サービス端末40が設置された場所に携行して使用できる携行性を備えることが好ましい。
次に、各サーバについて順次説明する。バックオフィスサーバ10、スクリプト管理サーバ20及び決済実行サーバ30は、決済サービスを提供するために必要な決済処理を実行し、あるいはその実行に必要な付随的な処理を担当するサーバとして設けられている。バックオフィスサーバ10は、サービス端末40及び管理端末50とスクリプト管理サーバ20との間を仲介するサーバとして設けられている。例えば、バックオフィスサーバ10は、管理端末50から取得した情報に基づいて、ユーザがユーザ端末60を利用する際に支払うべき料金の支払条件を設定し、その支払条件の情報をスクリプト管理サーバ20に通知する。また、バックオフィスサーバ10は、スクリプト管理サーバ20から二次元コード100を発行するために必要な情報を取得してこれをサービス端末40に提供する。
スクリプト管理サーバ20は、バックオフィスサーバ10が設定した支払条件に従って決済実行サーバ30に決済処理を実行させるためのスクリプトを作成し、得られたスクリプトをスクリプトデータベースDB2に蓄積して管理する。スクリプト管理サーバ20が作成するスクリプトは、サービスシステム1にて行われるべき決済処理の内容を、決済実行サーバ30が実行可能なフォーマットで記述したコンピュータプログラムの一種であって、サービスを提供するために決済実行サーバ30が実行すべき処理を定めた処理プログラムの一例に相当する。また、スクリプトデータベースDB2はプログラム保持手段の一例に相当する。スクリプトについては後に一例を挙げて説明する。決済実行サーバ30は、ユーザ端末60から取得した参照情報に対応するスクリプトをスクリプト管理サーバ20から取得し、得られたスクリプトに従って決済処理を実行する。
決済実行サーバ30は、決済処理を実行するサーバである。決済実行サーバ30は、決済処理の内容に応じて、口座管理サーバ70等の他のサーバと適宜に連携して決済処理を実行する。連携相手の一例としての口座管理サーバ70は、口座データベースDB7を操作して特定種類の電子通貨を用いた料金の支払いを処理するサーバである。例えば、口座データベースDB7には、ユーザが所持する特定種類の電子通貨の残高の情報がユーザ認証コードと対応付けて記録されている。口座管理サーバ70は、ユーザ認証コードを手掛かりとしてユーザの残高を特定し、特定された残高からユーザが支払うべき料金に相当する量又は額の電子通貨を消費(減算)することにより、電子通貨による支払いを実現する。
決済実行サーバ30は、口座管理サーバ70が管理する電子通貨による料金の支払いが必要とされる場合、口座管理サーバ70に支払処理を依頼することにより、口座管理サーバ70と連携して決済処理を実行する。なお、図1では料金の支払いを実現する決済手段として口座管理サーバ70が管理する電子通貨による決済手段が利用される例を示したものである。決済手段として、ユーザの銀行口座(オンラインバンキング)からの引き落とし、あるいはクレジットカードを用いた決済等が必要とされる場合、決済実行サーバ30はそれらの決済手段による支払いを実現する他のサーバと適宜に連携して決済処理を実行する。つまり、口座管理サーバ70は決済実行サーバ30と連携して決済処理を実行するサーバの一例に過ぎない。電子通貨、銀行口座、あるいはクレジットカードといったようにネットワークを介した情報の交換を利用して支払いを処理する仕組みそれ自体は市場で広く実用に供されており、決済実行サーバ30は決済手段に応じて各種の仕組みを適宜に利用して決済処理を実行すればよい。
決済実行サーバ30は、決済処理に関連して、品目管理サーバ80及びサービス管理サーバ90とも適宜に連携する。品目管理サーバ80は、品目管理データベースDB8を適宜に参照しつつ、サービス端末40で提供される商品、あるいはサービスを品目として各品目の単価等の販売に関する事項を管理し、あるいはサービス端末40における品目ごとの料金の支払先といったように売上の処理に関する事項を管理するサーバである。例えば、ゲーム機40Aを対象とする場合、品目管理サーバ80は、ゲーム機40Aにて提供される各種のコンテンツを品目として、各品目の単価、支払先等を品目ごとにユニークな品目コードに対応付けて品目管理データベースDB8に記録する。その場合、品目管理サーバ80は、ゲーム機40Aや管理端末50の求めに応じてそれらの情報を提供する。あるいは、品目管理サーバ80は、ゲーム機40Aにおけるコンテンツの利用に対して支払われた料金を売上として記録し、得られた売上を関係する事業者間で分配するといった処理を担当する。店頭端末40Bの場合も同様であって、店頭端末40Bにて提供される商品やサービスを品目として管理するものである。決済実行サーバ30は、スクリプトに従って実行した決済処理にて料金が支払われた場合、その支払内容を品目管理サーバ80に通知する。品目管理サーバ80はその通知を受けて支払内容を把握し、売上の管理等に反映させることができる。
サービス管理サーバ90は、サービス端末40にてユーザに提供される関連サービス、又はその関連サービスとさらに関連付けられた他のサービスを管理するサーバである。以下では、サービス管理サーバ90が提供するサービスをユーザサービスと呼ぶことがある。例えば、サービス端末40としてゲーム機40Aが設けられている場合、サービス管理サーバ90はゲーム機40Aにてゲームをプレイするユーザを認証し、そのユーザがゲーム機40Aにてゲームをプレイした結果をプレイデータとしてユーザデータベースDB9に保存し、保存されたプレイデータをゲーム機40Aからの求めに応じて送信するサービスをユーザサービスとして提供する。あるいは、サービス管理サーバ90はユーザ端末60からの求めに応じてプレイデータに基づくユーザサービスを提供する。この場合のユーザサービスとしては、例えばユーザのプレイ履歴の閲覧、過去のプレイ映像の閲覧、ゲームにて使用するアイテムの購入といった各種のサービスが用意されてよい。サービス端末40として店頭端末40Bが設けられている場合も同様であって、サービス管理サーバ90は店頭端末40Bにおける関連サービスの提供に際してユーザを認証し、関連サービスの提供に必要な各種の情報を店頭端末40Bに適宜に提供するように構成されてよい。
サービス管理サーバ90におけるユーザの認証は、例えばユーザIDといったユーザごとにユニークなユーザ識別情報を用いて行われる。決済実行サーバ30、あるいは口座管理サーバ70にてユーザの識別に用いられるべきユーザ認証コードは、例えば、サービス管理サーバ90にて利用されるユーザ識別情報と共通化される。ただし、そのユーザ認証コードは、サービス管理サーバ90にて利用されるユーザ識別情報と1対1に対応付けられてもよい。いずれの場合でも、決済実行サーバ30はサービス管理サーバ90と連携することにより、例えば決済処理の結果をサービス管理サーバ90に提供して、サービス管理サーバ90が提供するユーザサービスに反映させる、といった処理を関連処理の一例として実行することができる。なお、サービス端末40が関連サービスを提供しない場合、決済実行サーバ30とサービス管理サーバ90との連携は不要である。
次に、図2を参照してスクリプトの一例を説明する。図2に示したスクリプトは、決済処理を実行するためのスクリプトの一例であって、ユーザ、支払先、支払方法、及び支払内容のそれぞれを特定する情報を含む。スクリプトに記述される情報は、決済処理に関して、「誰が」、「誰に」、「何で」、「何をするか」を特定するための情報の一例である。ユーザの情報は、支払いを「誰が」行うべきかを特定するためにスクリプトに記述される。ユーザの情報としては、例えばユーザごとにユニークに設定されるユーザ認証コードが用いられてよい。
支払先の情報は、「誰に」対して料金を支払うべきかを特定するためにスクリプトに記述される。支払先は、要するに料金が支払われるべき相手である。支払先は、一例として、サービス提供者としての事業者とされてよい。あるいは、サービス端末40を介して関連サービスを提供する他の事業者が支払先として設定されてもよい。そのような事業者としては、例えば、ゲーム機40Aにて利用されるコンテンツを提供する事業者、店頭端末40Bを介して販売されるチケット等の商品を提供する事業者、あるいは、それらの事業者から料金徴収の委託を受けた事業者等が支払先として設定されてよい。一例として、図1の品目管理サーバ80を運用する事業者、又は当該事業者が指定する収受機関、決済機関等が支払先としてスクリプトに記述されてよい。この場合は、決済実行サーバ30から品目管理サーバ80に対して料金の支払いが通知されることにより、支払先への支払いが実現される。
支払方法の情報は、「何で」決済をするか、すなわち料金の支払いに用いられるべき決済手段を特定するためにスクリプトに記述される。例えば、電子通貨による決済、銀行の預金口座からの引き落としによる決済、クレジットカードを用いた決済等のように、ネットワークを介した情報処理を用いて決済を完了させることが可能な決済手段が支払方法として設定される。電子通貨には発行主体あるいは管理主体に応じて種々の電子通貨が存在するが、支払方法の情報にて電子通貨による支払いが指定される場合には、いずれの電子通貨を利用して決済が行われるべきか、が特定できるように支払方法の情報が設定されてよい。例えば、図1の口座管理サーバ70にて管理されている電子通貨による支払いが決済手段としてスクリプトに記述されてよい。この場合は、スクリプトに従って決済実行サーバ30が口座管理サーバ70に決済を依頼することにより、料金の支払いが実現される。決済サービスに関連するスクリプトは、少なくとも決済手段の異同に応じて作り分けられる。換言すれば、決済サービスは決済手段の相違に応じて区分され、決済手段の種類に応じてスクリプトも異なる。さらに、スクリプトは、料金の支払先の相違に応じてさらに区分して作成されてよい。
支払内容の情報は、決済処理に関して、「何をするか」を特定するためにスクリプトに記述される。例えば、「品目Xの購入に対して〇〇円を支払う」といったように、決済処理の原因となったユーザの行為内容を特定する情報がスクリプトに記述されてよい。スクリプトに記述された支払方法及び支払先とともに、支払内容の情報が参照されることにより、決済処理にて実現されるべき支払いの詳細を確定することができる。支払内容の情報は最小限の情報として支払額の情報を含むものとされてよい。例えば、ユーザが購入した品目の情報が決済処理にて不要とされる場合、スクリプトの支払内容の情報は支払額を指定する情報として設定されてよい。
スクリプトは、さらにコメント、有効期限及びシリアル番号の情報を含む。コメントは、ユーザ端末60を介してユーザに決済の承認を求める際にユーザ端末60上に表示させるべきテキスト情報としてスクリプトに記述される。有効期限はスクリプトが決済処理にて通用する期限を示す情報としてスクリプトに記述される。有効期限が経過したスクリプトはスクリプトデータベースDB2から適宜に削除される。それにより、スクリプトデータベースDB2に記録されるデータ量を適切な範囲に抑えることが可能である。シリアル番号はスクリプトごとにユニークに設定されるコードであって、スクリプトに対してユニークに関連付けられる処理情報及び処理識別情報のそれぞれの一例に相当する。図2では、スクリプトとシリアル番号とを関連付ける手法として、スクリプトの一部としてシリアル番号をスクリプトに含めているが、シリアル番号はスクリプトに含めることなく、スクリプトとシリアル番号とを1対1で対応付けてスクリプトデータベースDB2に記録することにより、スクリプトとシリアル番号とが関連付けられてもよい。
以上のように、スクリプト管理サーバ20が作成するスクリプトは、決済実行サーバ30にて実行されるべき処理の内容を記述したコンピュータプログラムとしての処理プログラムの一例である。また、スクリプトに記述されるべき各種の情報の集合は、そのスクリプトに含まれる変数群の一例に相当する。スクリプトデータベースDB2に保持されたスクリプトに記述される情報には、確定した状態と未確定の状態とが存在する。それらの状態はスクリプトに含まれる変数の値が確定した状態、又は未確定の状態の一例に相当する。例えば、ユーザの情報を一つの変数とした場合、ユーザ認証コードが具体的に指定された状態は変数の値が確定した状態であって、ユーザ認証コードが指定されていない状態は変数の値が未指定の状態に相当する。スクリプトに記録される各種の情報の一部は管理端末50から与えられる情報に従って設定される。例えば、支払先、支払方法といった情報は、管理端末50からバックオフィスサーバ10を介して与えられる情報に従って具体的な値が確定した変数としてスクリプトに記述されてよい。スクリプトが作成された時点では全ての情報が具体的に確定しているわけではなく、スクリプトデータベースDB2に保持されているスクリプトにおいては、少なくとも一部の変数の値が未確定な状態にある。その未確定な変数の値は、サービス端末40からユーザ端末60を経て決済実行サーバ30へと情報が順次伝達される過程で適宜に確定される。なお、上記ではスクリプトに記録すべき情報の種類を予め定めた上でスクリプト管理サーバ20がスクリプトを作成しているが、サービス端末40からユーザ端末60を経て決済実行サーバ30へと情報が伝達される過程で、スクリプトに対して追加されるべき新たな種類の情報が指定されてもよい。いずれにしても、スクリプト管理サーバ20がスクリプトを作成して記録する段階では、スクリプトが未完成であって、サービス端末40からユーザ端末60を経て決済実行サーバ30へと情報が伝達される過程でスクリプトがそこに含まれる変数の種類及び変数の値を適宜に確定させるようにしてスクリプトを完成させればよい。
次に、図3及び図4を参照して、サービスシステム1が決済サービスを提供するために実行する処理の概略的な手順の一例を説明する。ただし、以下に説明する手順は図1に例示した構成にて実行される処理の手順の一例である。図3及び図4のそれぞれにおいて、図中の手順に直接関係しないサーバ等はグレーにて示してある。
図3は二次元コード100を発行するための手順の一例を、図4は二次元コード100を起点として進められる手順の一例をそれぞれ示している。図3の例においては、まず品目管理サーバ80から管理端末50(サービス端末40にて代替されてもよい。)に対して支払条件等を設定するために必要な情報が提供される(F11)。提供される情報には、例えばサービス端末40にて提供される商品、サービスの品目コード、単価、支払先等を特定する情報を含めることができる。
次に、管理端末50にてスクリプトを作成するために必要な情報が入力され、入力された情報が管理端末50からバックオフィスサーバ10に提供される(F12)。管理端末50にて入力される情報は、スクリプト管理サーバ20にどのようなスクリプトを作成させるかを指定する情報である。例えば、図2のスクリプトを作成させる場合には、そのスクリプトに含めるべき情報(変数)の種類として、ユーザ、支払先、支払方法、支払内容、コメント及び有効期限が管理端末50を介してバックオフィスサーバ10に指定され、かつ一部の情報に関しては具体的な値(確定した値)がバックオフィスサーバ10に指定される。この場合、支払先、支払方法、有効期限についてはその確定した値がバックオフィスサーバ10に対して与えられてよい。コメントはその全てが確定した状態で指定されてもよいし、一部が未確定な状態で与えられてもよい。なお、有効期限は、管理端末50のオペレータにより適宜に設定されてもよいし、一定のルールに従って自動的に設定されてもよい。
必要な情報がバックオフィスサーバ10に与えられると、バックオフィスサーバ10にてスクリプトの作成条件が設定され、その条件がスクリプト管理サーバ20に提供される。これに応じてスクリプト管理サーバ20にて与えられた条件に応じたスクリプトが作成される(F13)。作成されたスクリプトにはシリアル番号が付加されてスクリプトデータベースDB2に記録される。そのシリアル番号がスクリプト管理サーバ20からバックオフィスサーバ10を介してサービス端末40に通知される(F14)。シリアル番号は管理端末50を経由してサービス端末40に通知されてもよい。なお、与えられたシリアル番号は、どの決済サービスに対応するものか、を判別するために、サービス端末40、管理端末50あるいはバックオフィスサーバ10にて決済サービスの種類と対応付けて適宜に保存されてよい。
サービス端末40では、特定の決済サービスの提供が要求されると、その決済サービスに対応するスクリプトのシリアル番号を含んだ特定情報が記録されるようにして二次元コード100が生成され、得られた二次元コード100がサービス端末40にて表示される(F15)。二次元コード100に含まれる特定情報には、スクリプトのシリアル番号に加えて、スクリプトにて未確定である支払内容の情報、すなわち、どのような品目を購入して幾ら支払うか、を特定する情報が付加されてよい。スクリプト管理サーバ20にてスクリプトが作成される段階では、サービス端末40を介してユーザが購入する品目やその購入数が未確定であって、それらの具体的な値はスクリプトに記述されない。一方、サービス端末40にてユーザが商品又はサービスを購入する時点では、どのような品目を購入して幾ら支払うか、が具体的に確定される。よって、サービス端末40では、ユーザが商品等を購入する時点で確定する情報を、確定情報の一例として、スクリプトのシリアル番号とともに二次元コード100に記録する。それにより、二次元コード100を介してユーザ端末60にシリアル番号及び支払内容の情報を伝達することが可能となる。なお、ユーザ端末60に対してシリアル番号が提供されるまでの処理と、ユーザ端末60が二次元コード100を表示させる処理とは時間的に連続していることを必ずしも要しない。すなわち、ユーザ端末60は予めシリアル番号をスクリプト管理サーバ20からバックオフィスサーバ10を介して取得し、ユーザが実際に支払いを行う時点で、先に取得したシリアル番号の情報と、その時点での支払内容に応じた情報とを参照して二次元コード100を生成し、表示すればよい。
次に、図4を参照して、サービス端末40にて二次元コード100が表示された後の処理手順を説明する。なお、図4の手順を開始するに先立って、ユーザ端末60ではサービス管理サーバ90にアクセスして関連サービスに関するユーザ認証が完了し(F20)、それにより、ユーザ認証に用いられるユーザID等のユーザ識別情報をユーザ端末60及びサービス管理サーバ90のそれぞれが保持しているものとする。また、サービス管理サーバ90におけるユーザ認証で用いられるユーザ識別情報は決済処理用のスクリプトにおけるユーザの情報の確定値であるユーザ認証コードの一例として通用するものとする。
図4の手順においては、まず、ユーザ端末60にて二次元コード100が撮影され、その二次元コード100に含まれている特定情報がユーザ端末60にて取得される(F21)。次に、ユーザ端末60にて、関連サービスのユーザ認証で用いられたユーザ認証コード(ユーザID)が、二次元コード100から読み取った特定情報に対して確定情報の一例として付加されて参照情報が生成され、得られた参照情報が決済実行サーバ30に送信される(F22)。決済実行サーバ30が参照情報を受け取ると、その参照情報に含まれているシリアル番号、すなわち二次元コード100に含まれていたシリアル番号が決済実行サーバ30からスクリプト管理サーバ20に通知され、シリアル番号に対応するスクリプトの提供が要求される(F23)。
スクリプト管理サーバ20では、通知されたシリアル番号に対応するスクリプトがスクリプトデータベースDB2から抽出され、得られたスクリプトが決済実行サーバ30に提供される(F24)。この場合、スクリプトが有効期限内か否かが確認され、有効期限が経過したスクリプトは無効なものとして以降の処理が中止されてもよい。決済実行サーバ30にスクリプトが提供されると、決済実行サーバ30にてそのスクリプトに従って決済処理が実行される。この場合、まずユーザ端末60に対して決済を実行してよいか否かが確認される(F25)。決済の確認時にはスクリプトに記述されたテキストがユーザ端末60に送信され、ユーザ端末60にてそのテキストが表示されてもよい。
ユーザ端末60から決済の実行が指示されると決済実行サーバ30にて決済処理が進められる。例えば、スクリプトに記述された支払方法に従って口座管理サーバ70に電子通貨を用いた決済、すなわちユーザ認証コードに対応した口座からの電子通貨の引き落とし(消費)が要求され(F26)、その処理に成功した場合には品目管理サーバ80に対して支払内容が通知され(F27)、サービス管理サーバ90に対しても支払完了が通知される(F28)。さらに、ユーザ端末60及びサービス端末40のそれぞれに対しても支払完了が通知される(F29、F30)。それにより、ユーザはユーザ端末60を介して支払いが完了したことを把握することができる。また、サービス端末40も支払いの完了を把握することができる。この場合、サービス端末40が支払完了を条件として関連サービスを提供する場合には、その通知をトリガーとして関連サービスの提供に必要な処理を開始することができる。なお、決済実行サーバ30からサービス端末40に支払完了を通知するためには、その通知先を判別する情報が決済実行サーバ30に提供される必要がある。そのためには、例えばスクリプトデータベースDB2に記録されるスクリプトに通知先の情報を予め記録し、あるいはサービス端末40にて通知先を示す情報を二次元コード100に特定情報の一部として含め、これをユーザ端末60から決済実行サーバ30に提供することにより、決済実行サーバ30が通知先を把握できるようにしてもよい。あるいは、バックオフィスサーバ10にて各サービス端末40における二次元コード100の発行状況を管理し、決済実行サーバ30からバックオフィスサーバ10を経由してサービス端末40に支払完了を通知してもよい。
図5は、図3及び図4に示した手順において、スクリプトに記述されるべき情報が確定する様子の一例を示している。図示の例では、まずサービス端末40(図では店頭端末40Bを示すが、他のサービス端末でもよい。)にて生成される二次元コード100には支払内容及びシリアル番号が特定情報IFaに含まれている。次に、二次元コード100を読み取ったユーザ端末60では、二次元コード100に含まれていた支払内容及びシリアル番号の情報に対してユーザ認証コードが確定情報として付加されて参照情報IFbが生成される。得られた参照情報IFbは決済実行サーバ30に送信される。参照情報IFbに含まれているシリアル番号は決済実行サーバ30からスクリプト管理サーバ20に提供され、そのシリアル番号に対応するスクリプトがスクリプト管理サーバ20から決済実行サーバ30に提供される。スクリプト管理サーバ20から決済実行サーバ30に提供されるスクリプトにおいては、図中にグレーで示したように、ユーザの情報及び支払内容の情報が未確定の状態である。
決済実行サーバ30では、スクリプト管理サーバ20から取得したスクリプトにて未確定であるユーザ及び支払内容の情報に対して、ユーザ端末60から取得した参照情報IFbのユーザ認証コード及び支払内容の情報が引用される。それによりスクリプトの全ての情報が確定する。
以上の例によれば、決済処理に必要なスクリプトが管理端末50から提供される情報に従ってスクリプト管理サーバ20にて作成されてスクリプトデータベースDB2に保存され、そのスクリプトのシリアル番号がサービス端末40へと提供される。スクリプト管理サーバ20にて作成されるスクリプトには、サービス提供者側が設定した条件に従って確定した情報を予め記述しておくことができる。例えば、支払先、支払方法といった情報に関する具体的な値を管理端末50からバックオフィスサーバ10を介してスクリプト管理サーバ20に送信すれば、その情報の具体的な値(確定した情報)を予めスクリプトに記述しておくことができる。それらの情報を二次元コード100に含める必要はない。例えば、支払いに用いられるべき決済手段を複数種類の決済手段から選択する場合でも、選択した決済手段を指定する情報をスクリプト管理サーバ20に通知すれば、二次元コード100における決済手段の指定は不要である。
一方、決済実行サーバ30側では、スクリプトに記述され得る支払方法に応じて決済処理の内容を変更する必要がある。例えば、支払先や支払方法に応じて連携相手となるサーバ(図1の例では口座管理サーバ70や品目管理サーバ80)を適宜に選択し、あるいはサービス端末40の種類に応じて連携相手となるサーバ(図1の例ではサービス管理サーバ90)を適宜に選択し、連携相手のサーバとの間では適宜に定められた手順に従って決済に関連した処理を進める必要がある。しかしながら、それらの処理を実現するためのプログラムの追加、修正、変更といった作業は決済実行サーバ30を運営する事業者側で行えば足り、サービス端末40側では負担が生じない。
また、二次元コード100に記録される特定情報IFaは、決済手段の種類を問わず決済処理を実行するために必要となる共通の情報である。すなわち、支払内容の情報は、決済手段の種類、あるいは支払先といった決済処理の具体的内容の異同を問わず、決済処理を実行するために必要不可欠である。しかも、支払内容の情報に関する具体的な値は、個々の支払いが発生する度にサービス端末40にて確定されるものである。つまり、決済サービスがどのような決済手段を利用するかに関わりなく、支払額等の情報は、決済実行サーバ30が決済処理を実行するために共通して必要となる情報であって、しかもその具体的に確定した値が決済実行サーバ30に与えられることが必要である。したがって、決済サービスとして行われるべき決済処理の内容、例えば支払先、あるいは支払方法等が種々変化しても、サービス端末40では支払内容を示す情報を二次元コード100に共通して含めておく必要がある。また、シリアル番号は決済手段の種類に関わりなく、スクリプトを特定するために必要な情報として二次元コード100に共通して記録されているべき情報である。このように特定情報IFaは、決済手段の種類に関わりなく二次元コード100に記録されるべき共通の情報である。そして、決済手段の種類を問わず必要な情報としての共通性があるがゆえに、決済手段の種類に関わりなく一定のフォーマットで特定情報IFaを二次元コード100に記録することが可能である。
したがって、新たな決済サービスを導入する場合でもサービス端末40側では、その決済サービスに対応するフォーマットの二次元コードを新たに生成するためのプログラムを追加する必要がない。また、サービス端末40側に、新たな決済サービスに対応する専用のハードウエアを設ける、といった設備投資も不要である。一方、二次元コード100に記述されない情報は、スクリプトの作成時に予め具体的に確定した状態で記述し、あるいはユーザ端末60で適宜に付加することが可能である。したがって、決済処理を実行する際に必要な情報に関して決済サービス間で差があったとしても、二次元コード100に記録されるべき共通の特定情報以外の情報は予めスクリプトに確定した状態で記述し、あるいはユーザ端末60側で適宜に追加することにより対応可能である。
次に、図6を参照して、サービスシステム1の要部に関する具体的な構成の一例を説明する。なお、図6の構成は図1のサービスシステム1の具体例の一つであり、図1に対応する構成要素には図1と共通の参照符号が付されている。図6の例において、バックオフィスサーバ10には、そのコンピュータハードウエアとコンピュータプログラムPs1との組み合わせによって実現される論理的装置として、条件設定部11及びシリアル取得部12が設けられる。条件設定部11は、管理端末50からの入力に従ってスクリプトの作成に必要な条件を設定し、これをスクリプト管理サーバ20に提供する。シリアル取得部12はスクリプト管理サーバ20からスクリプトのシリアル番号を取得し、これをサービス端末40に提供する。シリアル番号の提供は、サービス端末40からの求めに応じて行われてよい。
スクリプト管理サーバ20には、そのコンピュータハードウエアとコンピュータプログラムPs2との組み合わせによって実現される論理的装置として、スクリプト作成部21及びスクリプト管理部22が設けられる。スクリプト作成部21は、バックオフィスサーバ10から送信される条件の情報に従って決済処理を実行するためのスクリプトを作成し、得られたスクリプトにシリアル番号を付してスクリプトデータベースDB2に保存する。スクリプト管理部22はバックオフィスサーバ10に対してシリアル番号を提供する。また、スクリプト管理部22は、決済実行サーバ30からの求めに応じてスクリプトデータベースDB2を検索して決済実行サーバ30に実行させるべきスクリプトを選択し、得られたスクリプトを決済実行サーバ30に提供する。スクリプト管理部22は、スクリプトの有効期限を適宜のタイミングでチェックし、有効期限を経過したスクリプトがスクリプトデータベースDB2から削除されるようにスクリプトデータベースDB2を管理してもよい。
決済実行サーバ30には、そのコンピュータハードウエアとコンピュータプログラムPs3との組み合わせによって実現される論理的装置として、決済実行部31及び決済通知部32が設けられる。決済実行部31は、ユーザ端末60から受け取った参照情報IFbに含まれているシリアル番号に対応するスクリプトをスクリプト管理サーバ20から取得し、口座管理サーバ70等と連携して決済処理を実行する。決済通知部32は決済実行部31が実行した決済処理の結果の情報をサービス端末40及びユーザ端末60に、さらには必要に応じて品目管理サーバ80及びサービス管理サーバ90に通知する。
サービス端末40には、そのコンピュータハードウエアとコンピュータプログラムPt1との組み合わせによって実現される論理的装置として、支払制御部41及びコード制御部42が設けられる。支払制御部41は、サービス端末40における商品やサービスの購入に対応して二次元コード100に特定情報IFaの一部として含めるべき支払内容の情報を確定させる処理、例えばユーザが支払うべき支払額の計算等の処理を担当する。コード制御部42は二次元コード100に特定情報IFaの一部として含めるべきシリアル番号を取得し、支払制御部41が確定させた支払内容と合わせて特定情報IFaを生成し、得られた特定情報IFaに基づいて二次元コード100を生成し、サービス端末40に表示させる。
ユーザ端末60には、そのコンピュータハードウエアとコンピュータプログラムPt2との組み合わせによって実現される論理的装置として、コード取得部61及び支払制御部62が設けられる。コード取得部61はユーザ端末60のカメラ(不図示)等を制御して二次元コード100を撮影し、二次元コード100に含まれている特定情報IFaを取得する。支払制御部62は、コード取得部61が取得した特定情報IFaに対してユーザ認証コード等を付加して参照情報IFbを生成し、得られた参照情報IFbを決済実行サーバ30に送信するといった料金の支払いに必要な各種の処理を実行する。
なお、管理端末50にもそのコンピュータハードウエアとコンピュータプログラムとの組み合わせによって適宜の論理的装置が設けられるが、管理端末50はバックオフィスサーバ10に対してスクリプトの作成に必要な支払条件等の情報を入力する端末装置として機能すればよく、例えばバックオフィスサーバ10が提供するWebページにWebブラウザ等を介してアクセスして情報を入力するように設けられていればよい。この種の仕組みは周知であり、図6では詳細を省略する。
図7〜図9は、図6に示したサービスシステム1において決済処理が実行される手順の一例を示すフローチャートである。図7は図3に例示した二次元コードの発行までの手順の具体例、図8及び図9は図4に例示した二次元コードの表示以降の手順の具体例である。図7の手順においては、まず品目管理サーバ80から管理端末50(又はサービス端末40であってもよい。)に対して品目コード等の情報が送信され(ステップS11)、管理端末50では受け取った情報に基づいてスクリプトを作成するために必要な条件を指定する情報が入力されてバックオフィスサーバ10に提供される(ステップS12)。この場合の情報は、例えば、バックオフィスサーバ10の条件設定部11の案内に従って管理端末50上で入力されてよい。
次に、バックオフィスサーバ10では、条件設定部11により管理端末50から取得した情報に基づいてスクリプトを作成するための条件が設定され、設定された条件に対応するスクリプトの作成が条件設定部11からスクリプト管理サーバ20に依頼される(ステップS13)。これを受けて、スクリプト管理サーバ20のスクリプト作成部21にて条件に合致したスクリプトが作成され(ステップS14)、そのスクリプトにシリアル番号が追加され(ステップS15)、得られたスクリプトがスクリプトデータベースDB2に記録される(ステップS16)。
スクリプトデータベースDB2に新たなスクリプトが記録されると、そのシリアル番号がスクリプト管理部22からバックオフィスサーバ10のシリアル取得部12に提供され(ステップS17)、そのシリアル番号はさらにサービス端末40に提供される(ステップS18)。シリアル番号は、一例として、スクリプトが作成されるごとにサービス端末40に提供されてそのサービス端末40上で保管される。ただし、バックオフィスサーバ10にてステップS13の作成依頼と対応付けてシリアル番号が保管され、サービス端末40からの求めに応じてサービス端末40にシリアル番号が提供されてもよい。なお、複数のスクリプトが適宜に使い分けられる場合には、サービス端末40にて発生する支払いに応じたスクリプトのシリアル番号を特定できるようにしてシリアル番号を保持しておく必要がある。例えば、バックオフィスサーバ10がスクリプト作成時に指定した条件に照らしてサービス端末40にて提供すべき決済サービスに対応するスクリプトのシリアル番号を特定し、得られたシリアル番号をサービス端末40に提供する、といった処理が行われてよい。
サービス端末40では、ユーザによる商品等の購入に対応して支払いが発生すると、その支払内容が支払制御部41にて決定され(ステップS21)、次いで、コード制御部42により、支払内容の情報と支払いを実現するためのスクリプトのシリアル番号とを含めるようにして二次元コード100が生成されて表示される(ステップS22)。なお、ステップS18の処理とステップS21の処理とは時間的に連続していることを要しない。例えば、複数回の決済に対して同一のスクリプトがその情報の確定値を置き換えつつ繰り返し利用される場合には、サービス端末40、あるいはバックオフィスサーバ10に保管されたシリアル番号と、決済の都度確定する支払内容とを組み合わせて決済ごとに二次元コード100が作成されてよい。サービス端末40にて発生する支払いに関して、支払方法(すなわち決済手段)が異なるといった理由から複数のスクリプトが選択的に適用され得る場合には、例えばサービス端末40にてどの支払方法を選択すべきかを指定し、その支払方法に対応するシリアル番号が特定情報IFaに含まれるようにして二次元コード100が作成されてよい。
サービス端末40にて二次元コード100が表示されると、処理は図8の手順へと進められる。図8の手順においては、まずユーザ端末60のコード取得部61によりユーザ端末60のカメラ等が制御されて二次元コード100が撮影され、その二次元コード100に含まれている特定情報IFa、すなわち支払内容の情報とシリアル番号とがコード取得部61により取得される(ステップS31)。取得された特定情報IFaは支払制御部62に渡され、支払制御部62は特定情報IFaに対してユーザ認証コードが端末付加情報の一例として付加されて図5の参照情報IFbが生成される(ステップS32)。この場合のユーザ認証コードは、一例として、ユーザがユーザ端末60を用いてサービス管理サーバ90のサービスを利用する際に用いるユーザ認証情報である。ユーザがユーザ端末60を用いてサービス管理サーバ90の認証を済ませており、そのユーザ認証情報がユーザ端末60に保持されていれば、支払制御部62はそのユーザ認証情報をユーザ認証コードとして付加すればよい。ただし、ステップS32の段階でユーザがユーザ認証コードを入力するものとしてもよいし、コンピュータプログラムPt2の機能によりユーザ端末60がユーザ認証コードを保持していれば、その保持されたユーザ認証コードがステップS32で付加されてもよい。
参照情報IFbが生成されると、支払制御部62から決済実行サーバ30に対して参照情報IFbが送信されて決済処理が要求される(ステップS34)。その要求を受けた決済実行サーバ30では、決済実行部31により参照情報IFbに含まれたシリアル番号が取り出されてスクリプト管理サーバ20に送信され、そのシリアル番号に対応するスクリプトが照会される(ステップS34)。スクリプト管理サーバ20では、スクリプト管理部22により、決済実行サーバ30から与えられたシリアル番号をキーとしてスクリプトデータベースDB2が検索されることにより、シリアル番号に対応するスクリプトが選択される(ステップS35)。選択されたスクリプトはスクリプト管理部22から決済実行サーバ30に提供される(ステップS36)。それにより、決済実行サーバ30の決済実行部31は、スクリプト管理サーバ20から提供されたスクリプトを、実行すべきスクリプトとして特定する。なお、ステップS35において、スクリプト管理部22にて選択されたスクリプトが有効期限内か否かが確認され、有効期限が経過している場合には該当するスクリプトが存在しないものとして決済処理が打ち切られてもよい。この場合は、決済実行サーバ30からサービス端末40及びユーザ端末60に対して決済不能が通知され、それぞれの端末40、60にて適宜のエラー処理が実行されてもよい。
決済実行サーバ30の決済実行部31に対してスクリプトが提供されると、そのスクリプトに対して参照情報IFbに含まれている支払内容の情報の確定値が代入されてスクリプトの全ての情報が確定され、その確定したスクリプトに従って決済処理を実行してよいか否かが決済実行部31からユーザ端末60に確認される(ステップS37)。このとき、スクリプトにテキストが記録されていれば、そのテキストがユーザ端末60に表示されてよい。ユーザ端末60にてユーザが決済実行を確認(承認)すると、その旨がユーザ端末60の支払制御部62から決済実行サーバ30に通知され(ステップS38)、これを受けて決済実行部31によりスクリプトに従って決済処理が実行される(ステップS39)。
決済処理は、一例として、決済実行部31から口座管理サーバ70に対してユーザ認証コード及び支払額が通知されて電子通貨による支払処理が口座管理サーバ70に要求され、これに応じて口座管理サーバ70がユーザ認証コードに対応する口座の電子通貨の残高を支払額に応じて減算することにより実現される(ステップS40)。その後、決済処理は図9の手順へと進められ、口座管理サーバ70から決済実行サーバ30に支払処理の結果が通知される(ステップS42)。支払いが正常に完了していれば、決済実行サーバ30の決済通知部32から品目管理サーバ80に対して支払完了が支払先、支払内容といった情報を添えて通知され(ステップS43)、品目管理サーバ80ではその通知を受けて支払実績が記録される(ステップS44)。また、支払結果は決済通知部32からサービス端末40、ユーザ端末60、サービス管理サーバ90にも通知される(ステップS45)。なお、サービス端末40に対する通知は、例えばバックオフィスサーバ10にてサービス端末40における二次元コード100の発行状況を管理し、決済実行サーバ30からバックオフィスサーバ10に支払結果を通知してバックオフィスサーバ10が通知先のサービス端末40を判別し、判別されたサービス端末40へと支払結果を転送することにより実現されてよい。あるいは、図2に示したスクリプトにおいて、支払結果の通知先を追加し、スクリプトの作成時に予め通知先の確定値を記録しておくか、又はサービス端末40が二次元コード100を生成する際に、その通知先の情報の確定値を含めることにより、決済実行サーバ30が通知先となるサービス端末40を特定できるようにしてもよい。通知先の情報をスクリプトに含める場合には、例えば、支払先と通知先とが異なる場合において、支払先への処理と通知先への処理とを区別して実行できる利点がある。
支払結果の通知を受けて、サービス端末40の支払制御部41では、料金の支払い完了を条件として許可されるべき所定の処理が後続処理として開始される(ステップS46)。例えば、ゲームのプレイの許可、チケットの発行といった処理が後続処理として開始されてよい。ユーザ端末60では支払いが完了した旨がユーザに対して通知される(ステップS47)。さらに、サービス管理サーバ90では、料金の支払い完了を条件として許可されるべき所定の処理が関連処理として実行される(ステップS48)。例えば、サービス管理サーバ90が提供するサービスに対してユーザに特典を付与するといったごとく、料金の支払いと関連付けた処理が関連処理としてサービス管理サーバ90にて実行されてよい。
以上の形態によれば、スクリプトデータベースDB2に保持されたスクリプトにおいて、決済が発生する都度に確定すべきユーザ、支払内容等の情報が未確定であり、決済が発生した時点で確定する情報をサービス端末40あるいはユーザ端末60にて適宜に付加することにより、スクリプトの情報が確定する。したがって、複数の決済間で共通して確定すべき情報を予めスクリプトに記述してスクリプトデータベースDB2に記録しておけば、スクリプトデータベースDB2に保持された一つのスクリプトを、その有効期限内に発生する複数の決済で繰り返し使用することが可能である。これにより、スクリプト作成に要するスクリプト管理サーバ20の負担を軽減し、あるいはスクリプトデータベースDB2に記録すべき情報量を削減できる、といった利点が得られる。
第1の形態においては、スクリプト管理部22及びシリアル取得部12が図7のステップS17及びS18の処理を実行することにより処理情報提供手段の一例として機能し、コード制御部42が図7のステップS22の処理を実行することにより情報画像提供手段の一例として機能し、コード取得部61及び支払制御部62が図8のステップS31〜S33の処理を実行することにより参照情報提供手段の一例として機能し、決済実行部31が図8のステップS39の処理を実行することにより実行手段の一例として機能し、決済通知部32が図9のステップS45の処理を実行することにより処理結果提供手段の一例として機能する。また、スクリプト管理部22は、図8のステップS35の処理を実行することによりプログラム選択手段の一例として機能し、条件設定部11及びスクリプト作成部21は図7のステップS12〜S16の処理を実行することによりプログラム作成手段の一例として機能する。
なお、上記の形態では、サービス端末40にて二次元コード100に記録されるべき処理情報としてスクリプトのシリアル番号を例示したが、スクリプトそのものを処理情報として設定してもよい。その一例を図10に示す。図10の例では、図2に例示したスクリプトがスクリプト管理サーバ20からサービス端末40に提供され、サービス端末40では支払額等の情報が支払内容に関する確定した情報として付加されて特定情報IFaが生成され、その特定情報IFaが二次元コード100に記録される。つまり、二次元コード100にはスクリプトそれ自体が処理情報として記録される。二次元コード100を読み取ったユーザ端末60ではユーザに関する確定した情報としてユーザ認証コードが付加されて参照情報IFbが生成され、その参照情報IFbが決済実行サーバ30に提供される。したがって、決済実行サーバ30は、スクリプト管理サーバ20に照会することなく、実行すべきスクリプトを特定してこれに応じた処理を実行することができる。なお、二次元コード100に記録されるスクリプトは、復元可能な方法で圧縮され、あるいは暗号化された状態であってもよい。
上記の形態では、サービス提供者が管理端末50を利用してスクリプトの作成を要求できるものとしたが、これに代えて、又は加えてスクリプト管理サーバ20の管理者が管理端末50を利用してスクリプトの作成を指示してもよい。あるいは、サービス端末40がスクリプトの作成を指示するものとしてもよい。その場合、管理端末50を省略することも可能である。
(第2の形態)
上述した第1の形態では、サービス端末40における決済の発生に先行して、管理端末50からの情報に従ってスクリプトを作成し、これをスクリプトデータベースDB2に予め保存しているが、スクリプトを作成する時期はそのような例に限られない。例えば、サービス端末40にて決済が発生する時点でスクリプトを作成することも可能である。以下、図11〜図13を参照してそのような変更を施した第2の形態に係るサービスシステムの一例を説明する。なお、以下に説明する例は図1に示したサービスシステム1における処理を部分的に変更したものである。図11〜図13において、図1〜図9と共通する部分には同一の参照符号を付し、以下では相違点を中心に説明する。
図11のサービスシステム1Aでは、スクリプトの作成から二次元コード100の発行に至るまでの処理の手順が異なる。図11のサービスシステム1Aでは、ユーザが購入する商品又はサービスを選択するとスクリプトの作成に関する処理が開示される。ただし、その処理に先行して、管理端末50からバックオフィスサーバ10に対して、あるいはバックオフィスサーバ10を経由してスクリプト管理サーバ20に対してスクリプトの作成に関連した情報が提供されてもよい(F50)。この時点で提供される情報は、例えばサービス端末40が設置された店舗等の施設、あるいはサービス提供者といった適宜の範囲内で共通して用いられるべき情報とされてよい。ただし、それらの情報を後述するサービス端末40からの情報の提供時に併せて提供するものとし、それにより、管理端末50からの情報提供を省略してもよい。また、スクリプトを作成するために必要な品目コード、単価等が品目管理サーバ80からサービス端末40あるいは管理端末50に提供されてもよい(F51)。それらの情報が品目管理サーバ80からの提供以外の手段にてサービス端末40、あるいは管理端末50に与えられていれば、品目管理サーバ80からの提供は不要である。
ユーザがサービス端末40を操作して購入したい商品又はサービスを選択すると、その商品又はサービスの料金を決済するためのスクリプトの作成に必要な情報がサービス端末40からバックオフィスサーバ10に提供される(F52)。例えば、支払先、支払方法、有効期限、あるいはコメントの情報がバックオフィスサーバ10に提供されてよい。バックオフィスサーバ10では、得られた情報がデフォルト設定情報として一時的に記憶される。ただし、これらの情報の一部、例えば支払先、支払方法等に関して、サービス端末40が設置された店舗、あるいはサービス端末40を運用するサービス提供者が個々の決済に関わりなく共通した値を設定する場合には、それらの情報が管理端末50からバックオフィスサーバ10に先行して与えられてもよい。
次に、ユーザがサービス端末40に対して購入を要求すると、支払品目、単価、個数といった支払内容の情報と、サービス端末40を識別するための端末識別情報とがバックオフィスサーバ10に提供される(F53)。それにより、図2に示したスクリプトのうち、ユーザ及びシリアル番号の情報を除く情報がその値を確定させた状態でバックオフィスサーバ10上に揃う。この後、バックオフィスサーバ10からスクリプト管理サーバ20に対し、デフォルト設定情報とその後にサービス端末40から提供された情報とを添えてスクリプトの作成が要求される(F54)。スクリプト管理サーバ20では、バックオフィスサーバ10から得られた情報に従ってスクリプトが作成され、そのスクリプトに対してシリアル番号が付加された上でスクリプトデータベースDB2に記録される。この段階で保存されるスクリプトは、ユーザの情報以外の情報が全て確定した状態で記録されたものとなる。そして、作成されたスクリプトのシリアル番号がサービス端末40に提供される(F55)。サービス端末40では、得られたシリアル番号のみが特定情報として含まれるようにして二次元コード100が表示される(F56)。
二次元コード100に含まれる特定情報がユーザ端末60にて読み取られた後の手順は図4と同様であるために詳細を省略する。ただし、この例では、図12に示すように、二次元コード100を読み取ったユーザ端末60にて、特定情報IFaとしてのシリアル番号に対してユーザ認証コードが付加されて参照情報IFbが生成され、その参照情報IFbが決済実行サーバ30に送信される。スクリプトデータベースDB2に記録されたスクリプトでは、ユーザ認証コード以外の情報は全て確定した状態で記録されているので、決済実行サーバ30はスクリプト管理サーバ20から提供されたスクリプトに対してユーザ端末60から取得したユーザ認証コードを代入することによりスクリプトの全ての情報を確定させて決済処理を実行することが可能である。
図13は、図11のサービスシステム1Aにおける二次元コード100の発行までの手順の具体例を図7に対応させて示している。なお、図13の各処理を実行するためのサービスシステム1Aの具体的な構成は図6と同様でよく、以下では図6に示した構成に基づいて図13の各処理が実行されるものとして処理手順を説明する。図13の手順においては、まず管理端末50からバックオフィスサーバ10への先行情報の送信(ステップS10)、及び品目管理サーバ80からサービス端末40(又は管理端末50であってもよい。)に対する品目コード等の送信が実行される(ステップS11)。ただし、これらの処理が適宜に省略されてよいことは上述した通りである。
サービス端末40にてユーザが商品又はサービスを選択すると、支払先等の一定の情報がサービス端末40の支払制御部41からバックオフィスサーバ10に提供され(ステップS12A)、バックオフィスサーバ10の条件設定部11は、得られた情報をデフォルト設定情報としてバックオフィスサーバ10の記憶装置(不図示)に記憶する(ステップS12B)。この後、サービス端末40に対してユーザが購入を確定する操作を行うと、サービス端末40の支払制御部41により、その時点で確定した支払品目、単価、個数といった支払内容の情報と、サービス端末40を識別するための端末識別情報とがバックオフィスサーバ10に提供される(ステップS12C)。バックオフィスサーバ10では、条件設定部11により、ステップS12Bで記憶した情報とステップS12Cによって送信された情報とをスクリプト作成条件として指定しつつ、スクリプト管理サーバ20に対してスクリプトの作成が要求される(ステップS13A)。
スクリプトの作成が要求されると、スクリプト管理サーバ20のスクリプト作成部21にて作成条件に合致したスクリプトが作成され(ステップS14)、そのスクリプトにシリアル番号が追加され(ステップS15)、得られたスクリプトがスクリプトデータベースDB2に記録される(ステップS16)。この場合に記録されるスクリプトは、上記の通り、ユーザの情報が未確定で、それ以外の情報は全て確定した状態である。
スクリプトデータベースDB2に新たなスクリプトが記録されると、そのシリアル番号がスクリプト管理部22からバックオフィスサーバ10のシリアル取得部12に提供され(ステップS17)、そのシリアル番号はさらにサービス端末40に提供される(ステップS18)。その提供を受けて、サービス端末40では、コード制御部42によりバックオフィスサーバ10を経由して与えられたシリアル番号のみを含んだ特定情報IFaが記録されるようにして二次元コード100が生成されて表示される(ステップS22)。
サービス端末40にて二次元コード100が表示されると、以降はユーザ端末60から決済実行サーバ30への参照情報IFbの提供といった処理が行われるが、それらの処理は図8及び図9と同様でよく、その詳細は説明を省略する。ただし、ユーザ端末60にて追加される情報はユーザ認証コードのみで足りる。また、決済処理が完了した場合、それに用いられたスクリプトを、有効期限内であっても削除する処理が追加されてもよい。
第2の形態によれば、サービス端末40にて支払いが発生する都度に新たなスクリプトが作成される。したがって、スクリプト作成時には、第1の形態と比較して、より多くの情報を確定させた状態でスクリプトを作成することが可能である。そのため、二次元コード100に記録すべき情報を削減して二次元コード100を簡素化し、複数種類の決済サービス間にて二次元コード100を共通化するに有利である。
第2の形態においては、スクリプト管理部22及びシリアル取得部12が図13のステップS17及びS18の処理を実行することにより処理情報提供手段の一例として機能し、コード制御部42が図13のステップS22の処理を実行することにより情報画像提供手段の一例として機能する。また、条件設定部11及びスクリプト作成部21は図13のステップS12B、S13A、S14〜S16の処理を実行することによりプログラム作成手段の一例として機能する。その他の手段については、第1の形態と同様である。
第2の形態では、サービス端末40から先行して送信される情報(ステップS12A)をバックオフィスサーバ10に記憶し、その後に送信される情報(ステップS12C)と合わせることにより、スクリプトのユーザ認証コード以外の情報を揃えた上でスクリプト管理サーバ20にスクリプトの作成を依頼したが、それらの情報をユーザの購入操作に従ってサービス端末40上で一時的に保持し、ユーザ認証コード以外の情報が揃った時点でサービス端末40からスクリプト作成をスクリプト管理サーバ20に依頼するようにしてもよい。この場合、バックオフィスサーバ10は省略されてもよい。また、管理端末50も、バックオフィスサーバ10への情報の提供等が不要であれば、適宜に省略されてよい。さらに、第2の形態においても、二次元コード100に記録されるべき特定情報IFaとして、シリアル番号に代えて、図10と同様にスクリプトそれ自体が記録されてもよい。
本発明は、上述した各形態に限定されず、適宜の変形又は変更が施された形態にて実施されてよい。例えば、バックオフィスサーバ10、スクリプト管理サーバ20及び決済実行サーバ30を互いに区分して設けた構成はあくまで一例であり、これらは適宜に統合されてもよい。第2の形態ではスクリプトの作成に必要な情報をサービス端末40から提供しているので、上記の通りバックオフィスサーバ10の省略が可能であるものとしたが、第1の形態でもバックオフィスサーバ10を省略し、サービス端末40、あるいは管理端末50がスクリプト管理サーバ20に直接的にアクセスするものとしてもよい。サービス端末40は単一の端末装置として構成されることを必ずしも要しない。例えば、複数の端末装置を協働させることにより、それらの端末装置の集合を一つのサービス端末として機能させてもよい。
第1の形態では、スクリプト管理サーバ20から提供される処理情報の一例としてのシリアル番号に対して支払内容に関する情報が付加されて特定情報IFaが生成され、その特定情報IFaに対してユーザ識別情報の一例としてのユーザ認証コードが付加されて参照情報IFbが生成され、第2の形態ではユーザ端末60にて特定条情報IFaに対してユーザ認証コードが付加されて参照情報IFbが生成されているが、サービス端末40及びユーザ端末60における情報の付加は必ずしも必要とされるものではない。例えば、処理プログラムの一例としてのスクリプトに予め全ての情報が確定した状態で記録される場合、二次元コード100にはスクリプトを特定するための処理情報のみを含むようにして特定情報が記録され、ユーザ端末60においても、二次元コード100を介して取得した処理情報のみを含むようにして参照情報を生成し、これをサーバに提供するようにしてもよい。つまり、特定情報及び参照情報のそれぞれは、処理プログラムを特定するために必要な処理情報を少なくとも含むように構成されてよい。
一方、特定情報に処理情報以外の情報を含める場合においても、その情報は、サービスの異同に関わりなく共通してサーバが必要とする情報である限りは適宜の情報が選択されてよい。例えば、第1の形態において、支払先の情報は、決済サービスの異同(例えば決済手段の異同)に関わりなくサーバが共通して必要とする情報であるが、第1の形態ではこれを確定する情報がスクリプトデータベースDB2に保持されたスクリプトに予め記述されているために、サービス端末40側では二次元コード100に支払先の情報を記録する必要がない。しかしながら、支払先の情報をサービス端末40側で二次元コード100に記録するように第1の形態が変形されてもよい。この場合には、支払先の異同の観点でスクリプトを区別して作成する必要がなく、異なる支払先間で共通のスクリプトを利用できる可能性がある。第2の形態においても、スクリプトに記述される情報の一部の確定値を二次元コード100に含めるようにしてもよい。例えば、シリアル番号に加えて支払額の確定値が二次元コード100に記録されるようにしてもよい。このように、サービス端末にて表示すべき情報画像に対して、処理情報に加えてどのような情報を特定情報として記録すべきか、は、サービスの異同に関わりなく情報画像に記録すべき情報の種類を共通化できる限りにおいて適宜に変更されてよい。
上記の各形態では情報画像の一例として二次元コード100が利用されているが、情報画像は特定情報をユーザ端末60が取得可能な態様で記録できる限りにおいて、二次元コードに限らず種々のフォーマットで情報を記録するように設けられてよい。
上記の各形態では、決済実行サーバ30が口座管理サーバ70と連携して決済処理を実行し、かつ決済処理の結果を品目管理サーバ80及びサービス管理サーバ90に通知してこれらのサーバ80、90で関連した処理を実行するものとしたが、これらのサーバ70、80、90は、サービスを提供するための処理を実行する上で必須なものではなく、サービス端末にて提供されるべきサービスの種類、そのサービスを提供するためにサーバが実行すべき処理の内容に応じて適宜に追加、変更又は削除されてよい。例えば、決済実行サーバ30は口座管理サーバ70として例示した他のサーバと連携して決済処理を実行するように構成されることを必ずしも要しない。例えば、決済実行サーバ30自身がユーザの電子通貨の残高を管理するといったように決済処理を自ら実行可能であってもよい。
上記の各形態では、決済サービスに関して本発明を適用する例を示したが、本発明のサービスシステムが提供するサービスは決済サービスに限らない。例えば、種々の関連サービスに対するユーザ認証処理(ログイン処理)を本発明のサービスシステムにて処理することが可能である。その場合には、関連サービスごとの認証処理を定めた処理プログラムを関連サービスごとに用意し、特定の関連サービスに対する認証処理が必要とされた場合に、その関連サービスに対応する処理プログラムを特定する情報を処理情報として情報画像に含めるとともに、ユーザ端末にてユーザ認証コード等を付加してサーバに提供することにより、特定の関連サービスに対するユーザ認証処理をサーバに実行させることができる。そのような認証サービスは、上記形態の決済サービスと並行して処理されてもよい。その他にも種々のサービスを提供するために必要な処理に関して本発明のサービスシステムを適合させることが可能である。
上述した実施の形態及び変形例のそれぞれから導き出される本発明の各種の態様を以下に記載する。なお、以下の説明では、本発明の各態様の理解を容易にするために添付図面に図示された対応する構成要素を括弧書きにて付記するが、それにより本発明が図示の形態に限定されるものではない。
本発明の一態様に係るサービスシステム(1;1A)は、サーバ(10、20、30)及び当該サーバに対するクライアントとして機能するサービス端末(40)及びユーザ端末(60)を含んだクライアントサーバシステムとして構築され、前記サーバにて実行される処理に従って前記ユーザ端末のユーザに前記サービス端末を介してサービスが提供されるサービスシステムであって、特定のサービス(一例として特定の決済手段を用いた決済サービス)を含む複数のサービスのそれぞれを提供するために前記サーバが実行すべき処理を定めたサービスごとの処理プログラムの群を保持するプログラム保持手段(DB2)と、前記プログラム保持手段に保持された前記特定のサービスに対応する処理プログラムを前記サーバが特定するために必要な処理情報(一例としてシリアル番号又はスクリプト)を前記サーバから前記サービス端末に提供させる処理情報提供手段(22、12、S17、S18)と、前記処理を実行するために前記サーバが前記サービスの異同に関わりなく共通して必要とする情報としての特定情報(IFa)が、前記サーバから提供された前記処理情報を含むようにして記録された情報画像(100)を前記サービス端末に表示させる情報画像提供手段(42、S22)と、前記情報画像に記録された前記特定情報を前記ユーザ端末に取得させ、得られた特定情報を含む参照情報(IFb)を前記ユーザ端末から前記サーバに対して提供させる参照情報提供手段(61、62、S31〜S33)と、前記ユーザ端末から前記サーバに送信された参照情報に含まれている前記処理情報に基づいて前記特定のサービスに対応する処理プログラムを特定し、特定された処理プログラムに従って前記サーバに前記特定のサービスを提供するための処理を実行させる実行手段(31、S39)と、前記処理が実行された結果を示す情報を前記サーバから前記サービス端末に提供させる処理結果提供手段(32、S45)と、を備えたものである。
本発明の一態様に係るコンピュータプログラム(Ps1〜Ps3、Pt1、Pt2)は、サーバ(10、20、30)及び当該サーバに対するクライアントとして機能するサービス端末(40)及びユーザ端末(60)を含んだクライアントサーバシステムとして構築され、前記サーバにて実行される処理に従って前記ユーザ端末のユーザに前記サービス端末を介してサービスが提供され、かつ特定のサービス(一例として特定の決済手段を用いた決済サービス)を含む複数のサービスのそれぞれを提供するために前記サーバが実行すべき処理を定めたサービスごとの処理プログラムの群を保持するプログラム保持手段(DB2)を備えたサービスシステム(1;1A)に適用されるコンピュータプログラムであって、前記サービスシステムに含まれたコンピュータを、前記プログラム保持手段に保持された前記特定のサービスに対応する処理プログラムを前記サーバが特定するために必要な処理情報(一例としてシリアル番号又はスクリプト)を前記サーバから前記サービス端末に提供させる処理情報提供手段(22、12、S17、S18)、前記処理を実行するために前記サーバが前記サービスの異同に関わりなく共通して必要とする情報としての特定情報(IFa)が、前記サーバから提供された前記処理情報を含むようにして記録された情報画像(100)を前記サービス端末に表示させる情報画像提供手段(42、S22)、前記情報画像に記録された前記特定情報を前記ユーザ端末に取得させ、得られた特定情報を含む参照情報(IFb)を前記ユーザ端末から前記サーバに対して提供させる参照情報提供手段(61、62、S31〜S33)、前記ユーザ端末から前記サーバに送信された参照情報に含まれている前記処理情報に基づいて前記特定のサービスに対応する処理プログラムを特定し、特定された処理プログラムに従って前記サーバに前記特定のサービスを提供するための処理を実行させる実行手段(31、S39)、及び、前記処理が実行された結果を示す情報を前記サーバから前記サービス端末に提供させる処理結果提供手段(32、S45)、として機能させるように構成されたものである。
上記態様によれば、サービスを提供するためにサーバが実行すべき処理を定めた処理プログラムがサーバからアクセス可能な状態で保持され、処理プログラムを特定するための処理情報がサーバからサービス端末に提供される。サービス端末にて表示される情報画像に記録される特定情報に処理情報を含めておけば、その処理情報をユーザ端末からサーバへと伝達してサーバがどの処理プログラムに従って処理を実行すべきかを判別することができる。また、情報画像に記録されるべき特定情報は、サーバがサービスの異同に関わりなく共通して必要とする情報とされている。処理情報は当然ながら処理プログラムを特定するために必要な情報として、サービスの異同に関わりなく特定情報に含まれるべき情報である。そして、特定情報がサービスの異同に関わりなくサーバが必要とする情報であるという共通性が存在するために、特定情報は、サービスの異同に関わりなく一定のフォーマットで情報画像に記録することが可能である。したがって、新たなサービスを導入する場合でもサービス端末側では、そのサービスに対応する独自の情報を含んだ情報画像を表示させるプログラムを追加する必要がなく、新たなサービスに対応する専用のハードウエアを設ける、といった設備投資も不要である。一方、情報画像に記録されない情報は、処理プログラムに予め記述しておき、あるいはユーザ端末で適宜に付加すればよい。したがって、サーバが必要とする情報に関してサービス間で差があったとしても、情報画像に記録されるべき共通の特定情報以外の情報は予め処理プログラムに記述し、あるいはユーザ端末側で適宜に追加することにより対応可能である。
なお、本発明の一態様に係るコンピュータプログラムは、記憶媒体に記憶された状態で提供されてもよい。この記憶媒体を用いれば、例えばコンピュータに本発明に係るコンピュータプログラムをインストールして実行することにより、そのコンピュータを利用して本発明のシステムを実現することができる。コンピュータプログラムを記憶した記憶媒体は、CDROM等の非一過性の記憶媒体であってもよい。
前記プログラム保持手段は、前記サービスごとの処理プログラムの群を前記処理プログラムごとにユニークな処理識別情報(一例としてシリアル番号)と関連付けて保持するように設けられ、前記処理情報提供手段は、前記特定のサービスに対応する処理プログラムと関連付けられた処理識別情報が前記処理情報として前記サービス端末に提供されるように設けられ、前記参照情報に含まれている前記処理識別情報に基づいて前記プログラム保持手段に保持された前記処理プログラムの群から前記特定のサービスに対応する処理プログラムを選択するプログラム選択手段(22、S35)が前記サーバに設けられ、前記実行手段は、前記プログラム選択手段が選択した処理プログラムを前記特定のサービスに対応する処理プログラムとして特定して当該処理プログラムに応じた処理を実行してもよい。この態様によれば、処理プログラムに対してユニークな処理識別情報をサービス端末に提供して情報画像に含めるようにしているので、処理プログラムそれ自体を情報画像に記録する場合と比較して情報画像に記録されるべき特定情報の情報量を削減し、あるいは特定情報を簡素化することができる。また、処理プログラムが改変されるリスクも回避することが可能である。
前記処理情報提供手段は、前記特定のサービスに対応する処理プログラムが前記処理情報として前記サービス端末に提供されるように設けられ(一例として図10)、前記実行手段は、前記ユーザ端末から前記サーバに送信された参照情報に前記処理情報として含まれている処理プログラムを、前記特定のサービスに対応する処理プログラムとして特定してもよい。この態様によれば、処理プログラムに対応付けた識別情報等を生成する処理が不要であり、処理情報を比較的簡単な処理でサービス端末へと提供することができる。
前記クライアント(一例として40、50)から提供される情報に基づいて前記処理プログラムを作成し、得られた処理プログラムを前記プログラム保持手段に記録するプログラム作成手段(11、21、S12〜S16)が前記サーバに設けられてもよい。この態様によれば、サービスシステムに設けられたクライアントを利用して、適宜のサービスに対応する処理プログラムをサーバに作成させ、記録させることが可能である。したがって、新たなサービスの導入、あるいはサービスの改変等に伴う処理プログラムの更新といった作業を比較的容易に行えるようになる。
前記プログラム保持手段は、前記処理プログラムを、当該処理プログラムに含まれる変数群の少なくとも一部の変数(一例として図2のユーザ、及び支払内容)が、値が確定していない未確定変数とされた状態で保持し、前記情報画像提供手段及び前記参照情報提供手段の少なくともいずれか一方は、前記特定情報及び前記参照情報の少なくともいずれか一方に対して、少なくとも一つの未確定変数の値を確定させるための確定情報(一例として支払額等の情報及びユーザ認証コード)を付加するように設けられ、前記実行手段は、前記サーバに、前記確定情報を参照して前記処理プログラムに応じた処理を実行させるように設けられてもよい。この態様によれば、処理プログラムを作成した時点で未確定変数とされている情報に関して、その値を確定させるための確定情報をサービス端末又はユーザ端末を利用して適宜に付加することができる。サーバは、付加された確定情報を参照することにより、処理プログラムに従って処理を実行することが可能である。
前記情報画像提供手段は、前記サービス端末にて前記サービスが提供される時点で確定する値の情報(一例として支払額等)を前記確定情報として前記特定情報に付加するように設けられてもよい。この態様によれば、サービス端末にてサービスが提供される時点までは確定できない変数の情報を特定情報に付加することにより、プログラム保持手段に保持されている処理プログラムの未確定変数の値が確定された状態でサーバに処理を実行させることが可能である。
前記処理プログラムは、前記サービスを提供するための処理として、前記ユーザが支払うべき料金を所定の決済手段を用いて決済する決済処理を前記サーバに実行させるように構成され、前記情報画像提供手段は、前記サービス端末にて前記サービスが提供される時点で確定する支払額の情報を前記確定情報として前記特定情報に付加するように設けられてもよい。支払額の情報は決済手段の異同を問わず共通して必要な情報であって、かつサービス端末にて支払いが発生した時点でなければその値を確定できないことが少なくない。そこで、サービス端末にて支払額の情報を特定情報に含めるようにして情報画像を表示させることが合理的である。
前記複数のサービスのそれぞれは、前記料金の決済に用いられるべき決済手段の相違に応じて区分され、前記プログラム保持手段に保持されている前記サービスごとの前記処理プログラムには、前記料金の決済に用いられるべき決済手段を特定するための情報(一例として図2の支払方法の情報)が、前記値が確定した確定変数として記録されてもよい。決済手段に応じてサービスを区分する場合には、各サービスにて利用されるべき決済手段を処理プログラムの作成時に予め確定させることができる。そこで、決済手段を特定するための情報を処理プログラムに予め含めておくことが可能であり、かつそのように処理プログラムを作成すれば、情報画像には決済手段を特定する情報を記録する必要がなく、情報画像に記録されるべき情報量を削減し、情報画像の簡素化を図ることができる。
前記参照情報提供手段は、前記ユーザ端末のユーザを識別するためのユーザ識別情報(一例として図5のユーザ認証コード)を前記確定情報として前記参照情報に付加するように設けられ、前記実行手段は、前記参照情報に付加されている前記ユーザ識別情報と関連付けられた処理を、前記サービスを提供するための処理として前記サーバに実行させてもよい。ユーザ端末はユーザがユーザ識別情報を用いたユーザ認証を受けて種々のサービスを利用する用途で使用されることが通例であり、ユーザ識別情報の入力、あるいは保持に適した端末装置である。一方、サーバがサービスを提供するために実行する処理は、ユーザ識別情報を用いてユーザを識別したことを条件として実行されることが一般的である。したがって、ユーザ端末からサーバに提供されるべき参照情報にユーザ識別情報を含めるようにすれば、ユーザの識別に必要な情報を合理的に付加してサーバに提供することが可能である。サービス端末側でユーザ識別情報を取得して情報画像に含める処理も要しない利点も得られる。
前記処理プログラムは、前記サービスを提供するための処理として、前記ユーザが支払うべき料金を所定の決済手段を用いて決済する決済処理を前記サーバに実行させるように構成され、前記実行手段は、前記サーバに、前記参照情報に付加された前記ユーザ識別情報を参照して前記決済処理を実行させるように設けられてもよい。電子通貨による支払い、銀行口座からの引き落としによる支払い、あるいはクレジットカードによる支払いといったように、ネットワークを介した情報の交換を利用した支払処理の仕組みの多くは、ユーザ識別情報と関連付けて処理を実行するように構成されている。この態様によれば、そのような仕組みを利用して決済を進めることが可能である。
前記処理プログラムは、前記サーバに実行させるべき処理を記述したスクリプト形式にて作成されてもよい。これによれば、処理プログラムの作成に要する手間を軽減し、処理プログラムの追加、変更、修正といった作業を比較的容易に行えるようになる。