(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023000431
(43)【公開日】2023-01-04
(54)【発明の名称】決済システム及び決済方法
(51)【国際特許分類】
G06Q 20/32 20120101AFI20221222BHJP
【FI】
G06Q20/32 330
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021101240
(22)【出願日】2021-06-17
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】橋本 康範
(72)【発明者】
【氏名】近藤 佑樹
(72)【発明者】
【氏名】境 丈利
(72)【発明者】
【氏名】石榑 太一
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055AA64
(57)【要約】
【課題】オフライン決済においても、オンライン決済相当の不正リスク抑制を実現する仕組みを提供する。
【解決手段】オンライン決済処理では決済サーバがオフライン送金制約情報を算出し、オフライン決済処理では決済サーバが算出したオフライン送金制約情報に基づいて決済端末の間の送金の可否を判定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
利用者の資金の残高を管理する決済サーバと、前記決済サーバとの間で送金指示及び送金結果を送受信する複数の決済端末と、を有する決済システムであって、
前記決済端末は、
前記決済サーバに対して前記決済端末の前記利用者の前記残高及び送金履歴の情報を要求し取得する送金結果確認部と、
前記決済サーバに対する送金指示電文を作成し送信する送金指示作成部と、
前記決済サーバを介さずに、他の前記決済端末に対する端末間送金電文を作成し送信するオフライン送金指示作成部と、
前記オフライン送金指示作成部を介して送信された前記端末間送金電文の妥当性を規定の条件に基づき検証するオフライン送金指示検証部と、
前記オフライン送金指示検証部が妥当と判断した前記端末間送金電文を記録するオフライン送金指示反映部と、
前記オフライン送金指示反映部によって記録された前記端末間送金電文を前記決済サーバに対して送信するオフライン送金結果通知部と、
を有することを特徴とする決済システム。
【請求項2】
請求項1に記載の決済システムであって、
前記決済サーバは、
前記決済端末の前記送金指示作成部によって送信された前記送金指示電文の妥当性を前記規定の条件に基づき検証する送金指示検証部と、
前記送金指示検証部によって検証された前記送金指示電文に基づき前記利用者の前記残高及び前記送金履歴を更新する送金指示反映部と、
前記決済端末の前記オフライン送金結果通知部によって送信された前記端末間送金電文の妥当性を前記規定の条件に基づき検証するオフライン送金結果検証部と、
前記オフライン送金結果検証部によって検証された前記端末間送金電文に基づき前記利用者の前記残高及び前記送金履歴を更新するオフライン送金結果反映部と、を有し、
前記端末間送金電文の妥当性を検証するための前記規定の条件は、
前記利用者の前記残高が前記端末間送金電文に記載された送金額に対して不足していないという条件を含むことを特徴とする決済システム。
【請求項3】
請求項2に記載の決済システムであって、
前記端末間送金電文の妥当性を検証するための前記規定の条件は、
送金元である前記利用者に対して送金先ごとに指定された送金の上限額を含み、
前記決済サーバは、
前記送金先ごとに指定された送金の前記上限額を算出するオフライン送金制約算出部を有し、
前記決済端末の送金結果確認部は、
前記送金先ごとに指定された送金の前記上限額の情報を、利用者の前記残高及び前記送金履歴の情報と共に前記決済サーバから受信し、
前記決済端末は、
前記送金先ごとに指定された送金の前記上限額の情報を、利用者の前記残高の情報に対応付けると共に管理するオフライン送金制約反映部を有し、
前記端末間送金電文は、
前記送金先ごとに指定された送金の前記上限額に関する情報を含むことを特徴とする決済システム。
【請求項4】
請求項3に記載の決済システムであって、
前記決済サーバの前記オフライン送金制約算出部は、
前記決済サーバの前記送金指示反映部及び前記オフライン送金結果反映部によって記録された前記送金履歴に基づいて、前記利用者の前記送金先及び送金実績額を算出し、
前記送金先及び前記送金実績額に基づいて、前記利用者の前記送金先ごとに指定された送金の前記上限額の情報を算出することを特徴とする決済システム。
【請求項5】
請求項4に記載の決済システムであって、
前記端末間送金電文の妥当性を検証するための前記規定の条件は、
前記送金元である前記利用者に対する前記送金先の範囲を規定した送金可能範囲の関する条件を含み、
前記決済サーバの前記オフライン送金制約算出部が算出する前記送金先ごとに指定された送金の前記上限額の情報は、前記送金可能範囲に応じて決められ、
前記決済端末の前記オフライン送金指示反映部は、
前記残高を更新する際に、前記送金先ごとに指定された送金の前記上限額に関する情報を併せて更新することを特徴とする決済システム。
【請求項6】
請求項2に記載の決済システムであって、
前記決済端末の前記オフライン送金指示反映部は、
一連の前記端末間送金の前記最終受領者の前記決済端末から前記端末間送金電文を得られていない場合に、前記最終受領者が不明な状態である金額を、前記利用者の残高の情報のうち、前記最終受領者が不明な状態である金額として書き込むと共に、
前記最終受領者が不明な状態である金額の情報が存在する状況下において、前記最終受領者の前記決済端末から前記端末間送金電文が得られた場合に、前記最終受領者が不明な状態である金額を、前記利用者が現在利用可能な金額に移し替えることを特徴とする決済システム。
【請求項7】
請求項2に記載の決済システムであって、
前記端末間送金電文には、
一連の前記端末間送金の始点となる前記利用者を特定する情報を含み、
前記決済端末の前記オフライン送金指示反映部は、
一連の端末間送金の前記始点となる前記利用者の前記決済端末から前記端末間送金電文を得られていない場合に、前記最終受領者から前記端末間送金電文が得られた場合に、前記始点となる利用者を特定する情報に基づいて、前記始点となる利用者の残高から前記最終受領者となる利用者の残高へ資金を移動することを特徴とする決済システム。
【請求項8】
利用者の資金の残高を管理する決済サーバと、前記決済サーバとの間で送金指示及び送金結果を送受信する複数の決済端末とを有する決済システムにおける決済方法であって、
前記決済サーバが管理する前記残高を書き換えることによって送金を実現するオンライン決済処理と、
複数の前記決済端末の間の直接通信によって、前記決済端末の間の送金を実現するオフライン決済処理と、を有し、
前記オンライン決済処理は、
前記決済サーバが所定のオフライン送金制約情報を算出するオフライン送金制約算出ステップを有し、
前記オフライン決済処理は、
前記決済サーバが算出した前記オフライン送金制約情報に基づいて、前記決済端末の間の前記送金の可否を判定するオフライン送金制約反映ステップを有することを特徴とすることを特徴とする決済方法。
【請求項9】
請求項8に記載の決済方法であって、
前記オフライン送金制約算出ステップにおいて、
前記決済サーバは、
前記オフライン送金制約情報として、送金元である前記利用者に対して送金先ごとに指定された送金の上限額を、前記送金元である前記利用者に対する前記送金先の範囲を規定した送金可能範囲に応じて算出することを特徴とする決済方法。
【請求項10】
請求項9に記載の決済方法であって、
前記オフライン送金制約算出ステップにおいて、
前記決済サーバは、
前記利用者の送金先及び送金実績額を算出し、前記送金先及び前記送金実績額に基づいて前記利用者の前記送金先ごとに指定された送金の前記上限額の情報を算出することを特徴とする決済方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、決済システム及び決済方法に関する。
【背景技術】
【0002】
本技術分野の背景技術として、特許文献1がある。特許文献1には、「決済システムにおいて、決済管理装置(決済サーバ)は、取引の金額と取引の状況とを示す決済要求を取得する手段と、取得された決済要求が示す取引の金額と取引の状況とに応じて、支払い側に決済の承認を要求するか否かを判定する手段と、要求すると判定された場合、支払い側の端末にネットワークを介して承認を要求する手段と、支払い側の端末において決済が承認されると、当該決済を処理する手段と、を備える。」と記載されている(要約参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
前記特許文献1には、不正リスクを抑制する決済手段について記載されている。しかしながら、前記特許文献1に記載の技術は、オンライン決済(エンドユーザ端末と決済サーバとの通信によって実現される決済)を前提とした仕組みであり、オフライン決済(災害時などでインターネット回線が不通となり決済サーバに接続できない状況等を想定した、エンドユーザ端末間の直接的な通信によって実現される決済)には十分対応できないという課題がある。
【0005】
具体的には、前記技術では、不正リスクの確認や分析の入力情報である決済履歴の情報をサーバ上に保有するが、オフライン決済の場合には、サーバにアクセスできないことから入力情報を利用できない。
【0006】
解決策として、エンドユーザ端末に決済履歴の情報のコピーを持つという考え方もあるが、より複雑な不正リスク分析(例えば、当該エンドユーザや他のエンドユーザの決済履歴情報を複合的に活用した人工知能による分析)を想定した場合、データ量や計算資源などの観点から、端末上で実現することは現実的ではない。
【0007】
本発明は、オフライン決済においても、オンライン決済相当の不正リスク抑制を実現する仕組みを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様の決済システムは、利用者の資金の残高を管理する決済サーバと、前記決済サーバとの間で送金指示及び送金結果を送受信する複数の決済端末と、を有する決済システムであって、前記決済端末は、前記決済サーバに対して前記決済端末の前記利用者の前記残高及び送金履歴の情報を要求し取得する送金結果確認部と、前記決済サーバに対する送金指示電文を作成し送信する送金指示作成部と、前記決済サーバを介さずに、他の前記決済端末に対する端末間送金電文を作成し送信するオフライン送金指示作成部と、前記オフライン送金指示作成部を介して送信された前記端末間送金電文の妥当性を規定の条件に基づき検証するオフライン送金指示検証部と、前記オフライン送金指示検証部が妥当と判断した前記端末間送金電文を記録するオフライン送金指示反映部と、前記オフライン送金指示反映部によって記録された前記端末間送金電文を前記決済サーバに対して送信するオフライン送金結果通知部と、を有することを特徴とする。
【0009】
本発明の一態様の決済方法は、利用者の資金の残高を管理する決済サーバと、前記決済サーバとの間で送金指示及び送金結果を送受信する複数の決済端末とを有する決済システムにおける決済方法であって、前記決済サーバが管理する前記残高を書き換えることによって送金を実現するオンライン決済処理と、複数の前記決済端末の間の直接通信によって、前記決済端末の間の送金を実現するオフライン決済処理と、を有し、前記オンライン決済処理は、前記決済サーバが所定のオフライン送金制約情報を算出するオフライン送金制約算出ステップを有し、前記オフライン決済処理は、前記決済サーバが算出した前記オフライン送金制約情報に基づいて、前記決済端末の間の前記送金の可否を判定するオフライン送金制約反映ステップを有することを特徴とすることを特徴とする。
【発明の効果】
【0010】
本発明の一態様によれば、オフライン決済においても、オンライン決済相当の不正リスク抑制を実現することが可能となる。
【図面の簡単な説明】
【0011】
【
図2】決済サーバのハードウェア構成図の例である。
【
図4】決済サーバのソフトウェア構成図の例である。
【
図6】決済システムにおけるオンライン決済を説明するフローチャートの例である。
【
図8】送金指示を作成する処理を説明するイメージ図の例である。
【
図9】本実施例の利用者情報を説明するイメージ図の例である。
【
図10】本実施例の利用者残高を説明するイメージ図の例である。
【
図11】本実施例の利用者送金履歴を説明するイメージ図の例である。
【
図12】本実施例の送金指示の適格性を検証する処理を説明するイメージ図の例である。
【
図13】本実施例の送金指示の内容を反映する処理を説明するイメージ図の例である。
【
図14】本実施例の確認待ち送金指示を説明するイメージ図の例である。
【
図15】本実施例の送金指示の内容を反映する処理を説明するイメージ図の例である。
【
図16】本実施例の利用者オフライン送金制約を説明するイメージ図の例である。
【
図17】本実施例の利用者オフライン送金制約を更新する処理を説明するイメージ図の例である。
【
図18】本実施例の利用者オフライン送金制約の新たなレコードを作成する処理を説明するフローチャートの例である。
【
図19】本実施例のオフライン送金制約算出機能がレコード群をカテゴリ化する処理を説明するイメージ図の例である。
【
図20】本実施例のオフライン送金制約算出機能が残利用可能金額を算出する処理を説明するイメージ図の例である。
【
図21】本実施例のオフライン送金制約算出機能が残利用可能金額を記録する処理を説明するイメージ図の例である。
【
図22】本実施例の本実施例のオフライン送金制約算出機能が残利用可能金額を調整する処理のうち、残利用可能金額に対して残高が十分にある場合の処理を説明するイメージ図の例である。
【
図23】本実施例の本実施例のオフライン送金制約算出機能が残利用可能金額を調整する処理のうち、残利用可能金額に対して残高が十分にある場合の処理を説明するイメージ図の例である。
【
図24】本実施例のオフライン送金制約算出機能がオフライン送金制約情報の送金可能範囲の情報を更新する処理を説明するイメージ図の例である。
【
図25】決済端末に送信する情報を説明するイメージ図の例である。
【
図26】送金結果確認機能がオンライン処理結果を反映する処理を説明するイメージ図の例である。
【
図27】自己オフライン送金残高を説明するイメージ図の例である。
【
図28】オフライン送金制約反映機能がオンライン処理結果を反映する処理を説明するイメージ図の例である。
【
図29】本実施例の決済システムにおけるオフライン決済を説明するフローチャートの例である。
【
図30】本実施例のオフライン送金指示を作成する処理を説明するイメージ図の例である。
【
図31】本実施例のオフライン送金指示の適格性を検証する処理を説明するイメージ図の例である。
【
図32】本実施例の自己オフライン決済履歴523を説明するイメージ図の例である。
【
図33】本実施例の送金元の決済端末のオフライン送金指示反映機能がオフライン送金指示の内容を反映する処理を説明するイメージ図の例である。
【
図34】本実施例の送金先の決済端末のオフライン送金指示反映機能がオフライン送金指示の内容を反映する処理を説明するイメージ図の例である。
【
図35】本実施例の送金先の決済端末のオフライン送金指示反映機能がオフライン送金指示の内容を反映する処理を説明するイメージ図の例である。
【
図36】本実施例の決済システムにおけるオフライン決済結果の決済サーバと同期を説明するフローチャートの例である。
【
図37】本実施例の受信したオフライン送金履歴の適格性を検証する処理を説明するイメージ図の例である。
【
図38】本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
【
図39】本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
【
図40】本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
【
図41】本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
【
図42】本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
【
図43】本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
【
図44】本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
【発明を実施するための形態】
【0012】
以下、図面を用いて実施例を説明する。
【実施例0013】
本実施例では、決済システムの例を説明する。
【0014】
図1は、本実施例の決済システムの構成図の例である。
決済システム100は、決済サーバ、および、複数の決済端末を有する。本実施例において、決済システム100は、決済サーバ110、および、決済端末120、130、140から構成されている。決済システム110は、決済端末120、130、140とデータを授受できるよう、インターネット等の通信路で接続されている。決済端末120、130、140は、それぞれ異なる利用者である利用者A、B、Xによって保有され操作されるものとする。決済端末120、130、140のうち2つが地理上の近い場所にある場合には、必要に応じ、データを授受できるよう、当該決済端末間で近距離無線通信をおこなう。
【0015】
なお、決済端末120、130、140については、端末上のデータや処理の安全性を確保するため、セキュア・エレメント(Secure Element)やトラスティッド・エグゼキューション・エンバイロメント(Trusted Execution Environment)を活用した構成も考えられるが、本実施例においては、簡単のため、これらを用いない構成で説明する。
【0016】
図2は、本実施例の決済サーバ110のハードウェア構成図の例である。
決済サーバ110は、CPU201、メモリ202、入力インタフェース203、通信インタフェース204、補助記憶装置205、出力インタフェース206を有する。決済サーバ110において、入力インタフェース203を介して接続されたマウス、キーボード等の入力装置、および、出力インタフェース206を介して接続されたディスプレイ等の出力装置は、決済システムの管理者が操作する。決済サーバ110は、通信インタフェース204を介し、インターネット等の通信路に接続される。
【0017】
図3は、本実施例の決済端末120のハードウェア構成図の例である。
決済端末120は、CPU301、メモリ302、入力インタフェース303、通信インタフェース304、補助記憶装置305、出力インタフェース306を有する。決済端末120において、入力インタフェース304や出力インタフェース306を介して接続されたタッチパネル等の装置は、決済端末120の保有者である利用者Aが操作する。決済端末120は、通信インタフェース304を介し、インターネット等の通信路への接続や近距離無線通信をおこなう。なお、本実施例において、決済端末130、140のハードウェア構成も、決済端末120の構成と同様とする。
【0018】
図4は、本実施例の決済サーバ110のソフトウェア構成図の例である。
決済サーバ110は、演算部410として、送金指示検証機能411、送金指示反映機能412、オフライン送金結果検証機能413、オフライン送金結果反映機能414、オフライン送金制約算出機能415を有する。
【0019】
さらに、決済サーバ110は、記憶部420として、利用情報421、利用者残高422、利用者送金履歴423、確認待ち送金指示424、利用者オフライン送金制約425を有する。演算部410は実行時にメモリ202に読み込まれ、CPU201によって実行されるものとする。
【0020】
図5は、本実施例の決済端末120のソフトウェア構成図の例である。
決済端末120は、演算部510として、送金結果確認機能511、送金指示作成機能512、オフライン送金指示作成機能513、オフライン送金指示検証機能514、オフライン送金指示反映機能515、オフライン送金制約反映機能516、オフライン送金結果通知機能517を有する。
【0021】
さらに、決済端末120は、記憶部520として、自己残高521、自己オフライン残高522、自己オフライン決済履歴523を有する。演算部510は実行時にメモリ302に読み込まれ、CPU301によって実行されるものとする。なお、本実施例において、決済端末130、140のソフトウェア構成も、決済端末120の構成と同様とする。
【0022】
図6は、本実施例の決済システムにおけるオンライン決済を説明するフローチャートの例である。
以降、
図6のフローチャートに基づき、決済システム100におけるオンライン決済の動作を説明する。本実施例では、利用者Aが利用者Bに送金するシナリオを例として用いる。
【0023】
ステップ600は、決済サーバ110と決済端末120との間で実施されるステップである。決済端末120におけるオフライン処理結果の情報を、決済サーバ110と同期する。ステップ600の動作については後述する。
【0024】
ステップ601は、利用者Aによる操作のもと、決済端末120により実施されるステップである。ステップ601では、決済端末120の送金指示作成機能512が、利用者Aの指示のもと、自己残高521の情報を参照することで送金指示を作成するとともに、前記送金指示を決済サーバ110に送信する。送信は、決済端末120の通信インタフェース304を介し、インターネット通信等によって実施される。
【0025】
図7は、本実施例の自己残高521を説明するイメージ図の例である。
自己残高521は、データ属性として、識別子711、残高712を有し、これらのデータ属性に対応する値を有する。
図7の例では、識別子711の値が「A」、残高712の値が「500」となっている。
【0026】
図8は、本実施例の送金指示を作成する処理を説明するイメージ図の例である。
送金指示800は、データ属性として、送金元ID811、送金先ID812、金額813を有し、これらのデータ属性に対応する値を有する。
図8の例では、送金元ID811の値が「A」、送金先ID812の値が「B」、金額813が「100」となっている。
【0027】
送金指示800の作成にあたっては、送金指示作成機能512は、入力インタフェース303を介してユーザAが入力あるいは選択した値を、送金先ID812、金額813の値として書き込む。また、送金指示作成機能512は、自己残高521の識別子711の値を、送金元ID811の値として書き込む。更に送金指示作成機能512は、作成した送金指示800の金額813の値が、自己残高521の残高712の値より低いことを確認する。
【0028】
なお、利用者Aの残高についての送金指示を、利用者A自身が作成し送信したことを決済サーバが確認できるようにするため、認証情報が必要となるが、本実施例では、簡単のため、認証情報に関する処理や情報の記載を省略する。なお、ステップ601において、利用者Aが送金指示の作成をおこなわない場合には、その旨を決済サーバ110に通知し、ステップ605へ進む。
【0029】
ステップ602からステップ606までは、決済サーバ110により実施されるステップである。ステップ602では、決済サーバ110の送金指示検証機能411が、利用者情報421、利用者残高422、利用者送金履歴423の情報を参照することで、決済端末120より受信した送金指示の適格性を検証する。
【0030】
図9は、本実施例の利用者情報421を説明するイメージ図の例である。
利用者情報421は、データ属性として、利用者ID911、氏名912、要注意フラグ913を有する。利用者情報421には、決済サーバ110をシステム管理者が操作することで、決済サーバ110にアクセスするすべての利用者について、前述データ属性の値を記録しておくものとする。
図9の例では、利用者A、利用者B、利用者Cについての情報が、それぞれID911の値が「A」「B」「C」である行に記載されている。
【0031】
なお、要注意フラグ913の値については、当該利用者に犯罪関与等の疑いがあり、当該利用者の送金指示を一時的に差し止める必要があった場合などに、有効な値を入力しておくものとする。
【0032】
図10は、本実施例の利用者残高422を説明するイメージ図の例である。
利用者残高422は、データ属性として、利用者ID1011、残高1012、処理中額1013を有する。利用者残高422には、決済サーバ110にアクセスするすべての利用者について、前述データ属性の値を記録しておくものとする。
図10の例では、利用者A、利用者B、利用者Cについての情報が、それぞれID1011の値が「A」「B」「C」である行に記載されている。
【0033】
図11は、本実施例の利用者送金履歴423を説明するイメージ図の例である。
利用者送金履歴423は、データ属性として、送金元ID1111、送金先ID1112、送金額1113、送金日時1114を有する。なお、送金元ID1111及び送金先ID1112の値には、利用者情報421が有する利用者ID911の値のいずれかが記録されているものとする。
【0034】
図12は、本実施例の送金指示の適格性を検証する処理を説明するイメージ図の例である。
送金指示検証機能411は、決済端末120から受信した送金指示800の送金元ID811の値を参照し、利用者情報421、利用者残高422、利用者決済履歴423の情報から、それぞれ同一の利用者ID911、利用者ID1011、送金元ID1111の値を有するレコード群1201、1202、1203を抽出する。なお、レコード群1203については、利用者決済履歴423の情報のうち送金日時1114が比較的新しいもの(例えば、直近1年分)に絞り込んでも良い。
【0035】
また、送金指示検証機能411は、決済端末120から受信した送金指示800の送金先ID812の値を参照し、利用者情報421の情報から、同一の利用者ID911の値を有するレコード1204を抽出する。
【0036】
前記条件に合うレコード1201、1202、1204が見つからない場合、送金指示800の情報を破棄し、ステップ605へ進む。また、送金指示検証機能411は、抽出したレコード1202の残高1012の値が、送金指示800の金額813の値以上であることを確認する。残高1012の値が金額813の値に満たない場合には、送金指示800の情報を破棄し、ステップ605へ進む。
【0037】
また、送金指示検証機能411は、抽出したレコード1201について、要注意フラグ913の値に有効な値が記載されていないことを確認する。有効な値が入っていた場合には、直ちには送金できないという判断を下し、ステップ604へ進む。
【0038】
また、送金指示検証機能411は、送金指示800の情報を、抽出したレコード群1203の情報と比較し、異常値でないことを確認する。例えば送金指示800の金額813の値が、レコード群1203の送金額1113と比較して極端に大きい場合には、直ちには送金できないという判断を下し、ステップ604へ進む。
【0039】
なお、送金指示検証機能411は、上記に加え、より高度な分析(例えば、他の利用者のデータを含めた大量データを用いた人工知能による分析)による判断をおこなっても良い。
【0040】
以上の、抽出したレコード群1201、1202、1203の情報に基づく送金指示800の確認処理に問題がなかった場合には、ステップ603へ進む。
【0041】
ステップ603では、ステップ602における確認処理で問題がなかった場合に、決済サーバ110の送金指示反映機能412が、送金指示800の内容を、利用者残高422および利用者送金履歴423に反映する。
【0042】
図13は、本実施例の送金指示の内容を反映する処理を説明するイメージ図の例である。
送金指示反映機能412は、送金指示800の送金元ID811の値を利用者ID1011として有するレコード1301を利用者残高422から抽出し、その残高1012の値について、送金指示800の金額813の数値分の減算をおこない更新する。また、送金指示反映機能412は、送金指示800の送金先ID812の値を利用者ID1011として有するレコード1302を利用者残高422から抽出し、その残高1012の値について、送金指示800の金額813の数値分の加算をおこない更新する。さらに送金指示反映機能412は、利用者決算履歴423にレコード1303を追加し記録する。レコード1303の送金元ID1111、送金先ID1112、送金額1113、送金日時1114には、それぞれ、送金指示800の送金元ID811の値、送金指示800の送金先ID812の値、送金指示800の金額813の値、現在の日時を記録する。
【0043】
ステップ604では、ステップ602における確認処理において直ちに送金できないという判断が下された場合に、決済サーバ110の送金指示反映機能412が、送金指示800の内容を、利用者残高422および確認待ち送金指示424に反映する。
【0044】
図14は、本実施例の確認待ち送金指示424を説明するイメージ図の例である。
確認待ち送金指示424は、データ属性として、送金元ID1411、送金先ID1412、送金額1413、送金依頼日時1414を有する。なお、確認待ち送金指示424に記録されたレコードは、システム管理者の確認を経て、順次、利用者残高422および利用者送金履歴423に適切な形で反映された後、削除されるものとする。
【0045】
図15は、本実施例の送金指示の内容を反映する処理を説明するイメージ図の例である。
送金指示反映機能412は、送金指示800の送金元ID811の値を利用者ID1011として有するレコード1501を利用者残高422から抽出し、その残高1012の値について、送金指示800の金額813の数値分の減算をおこない更新する。また、送金指示反映機能412は、前記抽出したレコード1501の処理中額1013の値について、送金指示800の金額813の数値分の加算をおこない更新する。
【0046】
さらに送金指示反映機能412は、確認待ち送金指示424にレコード1502を追加し記録する。レコード1502の送金元ID1411、送金先ID1412、送金額1413、送金依頼日時1414には、それぞれ、送金指示800の送金元ID811の値、送金指示800の送金先ID812の値、送金指示800の金額813の値、現在の日時を記録する。
【0047】
ステップ605では、決済サーバ110のオフライン送金制約算出機能415が、利用者送金履歴423の情報に基づき利用者オフライン送金制約425の情報を更新する。
【0048】
図16は、本実施例の利用者オフライン送金制約425を説明するイメージ図の例である。
オフライン制約425は、データ属性として、利用者ID1611、資金ID1612、金額1613、送金可能範囲1614、処理中額1615、処理済額1616を有する。なお、送金可能範囲1614については、簡単のため、簡易的な図で表記しているが、実際には、ツリー構造を表現可能な形式(例えば、JSONフォーマット)で良い。
【0049】
なお、送金可能範囲1614は、資金の送金先に関する制約の情報を値として有する。例として、値1621は、AからFへ送金でき、Fから次の利用者に送金できるが、その先へは送金できないこと、また、AからF以外の利用者に送金した場合には、その先へは送金できないことを意味する。
【0050】
図17は、本実施例の利用者オフライン送金制約425を更新する処理を説明するイメージ図の例である。
利用者オフライン送金制約算出機能415は、利用者オフライン送金制約425の新たなレコード群1702を作成し、追記する。なお、追記するレコード群1702の処理中額1615、処理中額1616の値は、すべてゼロを入力する。なお、追記したレコード群1702の金額1613の数値の合計値は、利用者残高422のうち同一の利用者ID1011の値を持つレコードの、残高1012の値と等しくなる。
【0051】
図18は、本実施例の利用者オフライン送金制約の新たなレコードを作成する処理を説明するフローチャートの例である。
以降、
図18のフローチャートに基づき、オフライン送金制約算出機能415におけるオフライン送金制約の作成処理の動作を説明する。本実施例では、利用者Aに関するオフライン送金制約を作成するシナリオを例として用いる。
【0052】
ステップ1801では、送金制約算出の起点を決める。本実施例では、利用者Aに関するオフライン送金制約を作成する例であるため、初期の起点として利用者Aを選択する。
【0053】
ステップ1802では、ステップ1801で選択した利用者に関する送金履歴を抽出する。オフライン送金制約算出機能415は、利用者送金履歴423のうち、送金元ID1111の値がステップ1801で選択した利用者のIDであり、送金日時1114が特定期間内であるレコード群を抽出する。本実施例においては、現在日時が「2021年4月」であるという想定のもと、送金元ID1111の値が「A」であり、かつ、送金日時1114が「2021年1月」から「2021年4月」の間であるレコード群を抽出するものとする。
【0054】
なお、ステップ1802で抽出する送金履歴については、確認待ち送金指示424の送金元ID1411、送金先ID1412、送金額1413、送金依頼日時1414の値を、それぞれ、利用者送金履歴423の送金元ID1111、送金先ID1112、送金額1113、送金日時1114と見なすことで、抽出対象に含めても良い。
【0055】
ステップ1803では、ステップ1802で抽出した利用者決済履歴423のレコード群のカテゴリ化をおこなう。
【0056】
図19は、本実施例のオフライン送金制約算出機能415がレコード群をカテゴリ化する処理を説明するイメージ図の例である。
オフライン送金制約算出機能415は、送金元ID1111の値が「A」であり、かつ、送金日時1114が「2021年1月」から「2021年4月」の間であるレコード群1901を、送金額1113の値により、異なるカテゴリに振り分ける。本実施例においては、送金額1113の値が「1万円以上」のカテゴリ1902、および、「1万円未満」のカテゴリ1903の2つに分類するものとする。
【0057】
なお、レコード群2001については、送金元ID1111、送金先ID1112、送金額1113の値をそれぞれ、送金指示800の送金元ID811、送金先ID812、金額813の値と見なした上で、送金指示検証機能411によって適格性を検証しても良い。この場合、検証の結果、適格性が直ちに判断できない(直ちに送金できないという判断になった)レコードについては、レコード群2001から除外する。
【0058】
ステップ1804では、ステップ1803で抽出した各カテゴリの情報を元に、残利用可能金額を算出し記録する。
【0059】
図20は、本実施例のオフライン送金制約算出機能415が残利用可能金額を算出する処理を説明するイメージ図の例である。
オフライン送金制約算出機能415は、ステップ1803で抽出したカテゴリのうち、カテゴリ1902を選択する。さらに、オフライン送金制約算出機能415は、カテゴリ1902の情報を、送金日時によって2つに分類する。
【0060】
本実施例においては、現在日時が「2021年4月」であるという想定のもと、送金日時1114が「2021年1月」から「2021年3月」の間であるレコード群2001と、送金日次1114が「2021年4月」であるレコード群2002に分けるものとする。その後、オフライン送金制約算出機能はレコード群2001の送金額1113の値の月平均を算出し、レコード群2002の送金額1113の値の合計値を減算することで、残利用金額を算出する。
【0061】
本実施例においては、レコード群2001から算出される月平均額が「350」、レコード群2002から算出される合計額が「150」であることから、残利用金額2003として「200」が算出される。
【0062】
図21は、本実施例のオフライン送金制約算出機能415が残利用可能金額を記録する処理を説明するイメージ図の例である。
オフライン送金制約算出機能415は、作成中のオフライン送金制約2101に新たなレコードを1件作成し追記する。当該レコードにおいて、利用者ID1611の値には、レコード群2001の送金元ID1111の値を入力する。資金ID1612の値には、オフライン送金制約算出機能415がユニークな値を算出し入力する。金額1613の値には、残利用可能金額2003の値を入力する。送金可能範囲1614の値には、送金元2011としてレコード群2001の送金元ID1111の値を入力し、1次送金先2012としてレコード群2002の送金先ID1112の値を重複排除した形で入力する。なお、ステップ1804の処理は、ステップ1803で抽出したすべてのカテゴリについて実施する。なお、残利用可能金額2003の値がゼロもしくは負の値であった場合、残利用可能金額を記録する処理は実施しない。
【0063】
ステップ1805では、ステップ1804で記録した残利用可能金額を、残高情報との整合性を踏まえ調整する。
【0064】
図22は、本実施例の本実施例のオフライン送金制約算出機能415が残利用可能金額を調整する処理のうち、残利用可能金額に対して残高が十分にある場合の処理を説明するイメージ図の例である。
【0065】
図22の例では、レコード群2101の金額1613の値の合計「20200」が、利用者残高の残高1012の値「20800」を下回っている。この場合は、レコード群2101に新たなレコード2201を作成し追記する。レコード2201のうち、利用者ID1611の値は、レコード群2101の他のレコードの利用者ID1611と同じ値を用いる。資金ID1612の値は、オフライン送金制約算出機能415がユニークな値を算出し入力する。金額1613の値は、利用者残高の残高1012の値と、レコード群2101の金額1613の値の合計値との差額を算出し入力する。送金可能範囲は、送金元に利用者ID1611と同じ値を指定したものを作成し入力する。
【0066】
図23は、本実施例の本実施例のオフライン送金制約算出機能415が残利用可能金額を調整する処理のうち、残利用可能金額に対して残高が十分にある場合の処理を説明するイメージ図の例である。
【0067】
図22の例では、レコード群2101の金額1613の値の合計「20200」が、利用者残高の残高1012の値「10100」を上回っている。この場合は、レコード群2101の金額1613の値の合計値が、利用者残高の残高1012の値と同じ値になるよう、レコード群2101の金額1613の値を調整する。本実施例においては、レコード2301、レコード2302の金額1613の値の比率に従い、残高1012の金額「10100」を振り分けることで、レコード2301、レコード2302の金額1613を更新している。
【0068】
以上、ステップ1801からステップ1805の処理により、1次送金先までに関する送金制約情報を算出したが、必要に応じ、2次以降の送金先に関する情報を補完するため、ステップ1806以降に進む。
【0069】
ステップ1806では、2次以降の送金先の算出にあたり、対象とする送金元(1次送金先)を選択する。本実施例では、
図22において作成したレコード群2101において1次送金先として記載された「B」「D」「F」が選択肢となるが、このうち「B」を選択したものとして、以降のステップについて説明する。
【0070】
ステップ1807では、ステップ1806で選択した利用者に関する送金履歴を抽出する。本ステップの処理については、ステップ1802と同様である。
【0071】
ステップ1808では、ステップ1807で抽出された送金履歴に基づき、作成中のオフライン送金制約情報の送金可能範囲の情報を更新する。
【0072】
図24は、本実施例のオフライン送金制約算出機能415がオフライン送金制約情報の送金可能範囲の情報を更新する処理を説明するイメージ図の例である。
オフライン送金制約算出機能415は、ステップ1807で抽出した、送金元ID1111の値が「B」である利用者送金履歴423のレコード群2401から、送金先ID1112の値を重複排除した形で抽出する。更に、オフライン送金制約算出機能415は、作成中のオフライン送金制約2101のうち、送金可能範囲1614の一次送金先が「B」である値について、二次送金先に、前述重複排除した形で抽出した送金先IDを追加する。
【0073】
以上、ステップ1806からステップ1808の処理を、必要に応じ、1次送金先、また、2次以降の送金先について実施することで、オフライン送金制約の作成処理を完了する。
【0074】
図6のフローチャートに戻り、決済システム100におけるオンライン決済の動作の続きを説明する。
ステップ606では、決済サーバ110が、ステップ602、ステップ603または604、ステップ605の処理結果に関する情報を作成し、決済端末120に送信する。送信は、決済サーバ110の通信インタフェース204を介し、インターネット等によって実施される。
【0075】
図25は、決済端末120に送信する情報を説明するイメージ図の例である。
ステップ606では、利用者残高422のうち利用者ID1011の値が送金指示800の利用者ID811の値と一致するレコード2501を送信する。また、ステップ606では、ステップ603で追加した利用者決済履歴423のレコード1303、または、ステップ604で追加した確認待ち送金指示424のレコード1502の情報を送信する。さらに、ステップ606では、利用者オフライン送金制約425のうち、ステップ605で追加したレコード群1702を送信する。
【0076】
ステップ607は、決済端末120により実施されるステップである。ステップ607では、送金結果確認機能511、および、オフライン送金制約反映機能516が、ステップ607で決済サーバから送信された情報を元に、自己残高521、自己オフライン残高522の情報を更新する。
【0077】
図26は、送金結果確認機能511がオンライン処理結果に反映する処理を説明するイメージ図の例である。
送金結果確認機能511は、ステップ606で決済サーバより送信されたレコード2501の残高1012の値で、自己残高521の残高712の情報を上書きする。
【0078】
図27は、自己オフライン送金残高を説明するイメージ図の例である。
自己オフライン送金残高522は、データ属性として、利用者ID2711、資金ID2712、金額2713、送金可能範囲および送金実績2714を有する。利用者ID2711、資金ID2712、金額2713の値については、利用者オフライン送金制約の利用者ID1611、資金ID1612、金額1613の値と同様である。
【0079】
送金可能範囲及び送金実績2714の値については、利用者オフライン送金制約の送金可能範囲1614の値に相当する情報に加え、送金実績の情報を有する。
図27の例では、実線および斜線の要素が送金済、点線および白抜きの要素が未送金を示しており、いずれのレコードについても、「A」まで送金済の状態となっている。
【0080】
図28は、オフライン送金制約反映機能516がオンライン処理結果を反映する処理を説明するイメージ図の例である。
オフライン送金制約反映機能516は、利用者オフライン送金制約のレコード群2502の利用者ID1611、資金ID1612、金額1613、送金可能範囲1614の値を、それぞれ、利用者ID2711、資金ID2712、金額2713、送金可能範囲および送金実績2714として有する自己オフライン残高522のレコード群を作成し、自己オフライン残高522の情報を上書きする。
【0081】
次に、本実施例の決済システムにおけるオフライン決済の動作を説明する。本実施例の決済システムにおけるオフライン決済では、前述したステップの中で作成した自己オフライン残高の情報を活用することで、端末間のオフライン決済であっても、決済サーバ110の送金指示検証機能411相当の厳格性を確保できる。
【0082】
図29は、本実施例の決済システムにおけるオフライン決済を説明するフローチャートの例である。以降、
図29のフローチャートに基づき、決済システム100におけるオフライン決済の動作を説明する。本実施例では、利用者Aが利用者Bに送金するシナリオを例として用いる。
【0083】
ステップ2901は、利用者Aによる操作のもと、決済端末120により実施されるステップである。ステップ2901では、決済端末120のオフライン送金指示作成機能513が、利用者Aの指示のもと、自己オフライン残高522の情報を参照することでオフライン送金指示を作成するとともに、前記オフライン送金指示を決済端末130へ送信する。送信は、決済端末120の通信インタフェース304を介し、近距離無線通信等によって実施される。
【0084】
図30は、本実施例のオフライン送金指示を作成する処理を説明するイメージ図の例である。
オフライン送金指示3000は、データ属性として、利用者ID3011、資金ID3012、金額3013、送金可能範囲及び送金実績3014、送金元3015、送金先3016を有する。
【0085】
オフライン送金指示3000の作成にあたり、オフライン送金指示作成機能513は、入力インタフェース303を介してユーザAが入力あるいは選択した値を、利用者ID3011、資金ID3012、金額3013、送金先ID3016の値として書き込む。
【0086】
また、オフライン送金指示作成機能513は、自己残高521の識別子711の値を、送金元ID3015の値として書き込む。さらに、オフライン送金指示作成機能513は、自己オフライン残高522の情報のうち、利用者ID2711、資金ID2712の値がそれぞれ、利用者ID3011、資金ID3012の値と一致するレコードを抽出し、前記レコードの金額2713の値がオフライン送金指示3000の金額3013の値以上であることを確認するとともに、前記レコードの送金可能範囲及び送金実績2714の値をオフライン送金指示3000の送金可能範囲および送金実績3014の値として転記する。
【0087】
なお、利用者Aの残高についての送金指示を、利用者A自身が作成し送信したことを送金先の決済端末130や決済サーバ110が確認できるようにするための情報が必要となるが、本実施例では、簡単のため、これに関する処理や情報の記載を省略する。
【0088】
ステップ2902および2903は、利用者Bによる操作のもと、決済端末130により実施されるステップである。
【0089】
ステップ2902では、決済端末130のオフライン送金指示検証機能514が、決済端末130より受信したオフライン送金指示の適格性を検証する。
【0090】
図31は、本実施例のオフライン送金指示の適格性を検証する処理を説明するイメージ図の例である。
オフライン送金指示検証機能514は、決済端末120から受信したオフライン送金指示3000の送金先ID3016の値を参照し、自己残高521の識別子711の値と同一であることを確認する。
【0091】
ステップ2903では、決済端末130のオフライン送金指示検証機能514が、利用者Bの指示のもと、決済端末130より受信したオフライン送金指示の受け入れ可否を判断する。受け入れを承諾した場合、オフライン送金指示検証機能514は、決済端末120に対し、受け入れた旨の情報を送信し、ステップ2904へ進む。
【0092】
なお、オフライン送金指示3000を受け入れた結果として、最終的に決済端末130の自己オフライン残高522に加算される予定の残高の自由度は、オフライン送金指示3000の送金可能範囲及び送金実績3014の値によって異なる。ステップ2903は、前記自由度を利用者Bが受け入れの事前に確認できる必要があることから、設けられたステップとなる。
【0093】
ステップ2904は、決済端末120および130により実施されるステップである。ステップ2094では、決済端末120および130のオフライン送金指示反映機能515が、オフライン送金指示3000の内容を、自己残高521、自己オフライン残高522、自己オフライン決済履歴523に反映する。
【0094】
図32は、本実施例の自己オフライン決済履歴523を説明するイメージ図の例である。
自己オフライン決済履歴523は、データ属性として、送金元ID3211、送金先ID3212、送金額3213、利用者ID3214、資金ID3215、送金日時3216を有する。
【0095】
図33は、本実施例の送金元の決済端末120のオフライン送金指示反映機能515がオフライン送金指示3000の内容を反映する処理を説明するイメージ図の例である。
オフライン送金指示反映機能515は、自己残高521の残高712の値を、オフライン送金指示3000の金額3013の値だけ、減算する。
【0096】
さらに、オフライン送金指示反映機能515は、自己オフライン決済履歴のレコードを作成し追記する。追加するレコードにおいて、送金元ID3211、送金先ID3212、送金額3213、利用者ID3214、資金ID3215の値には、それぞれ、オンライン送金指示3000の送金元ID3015、送金先ID3016、金額3013、利用者ID3011、資金ID3012の値を入力する。また、送金日時3216の値には、現在の日時を入力する。
【0097】
また、オフライン送金指示反映機能515は、自己オフライン残高522の情報のうち、利用者ID2711、資金ID2712の値がそれぞれ、オフライン送金指示3000の利用者ID3011、資金ID3012の値と一致するレコードを抽出し、当該レコードの金額2713の値を、オフライン送金指示3000の金額3013の値だけ、減算する。なお、減算した結果、金額2713の値がゼロになった場合には、当該レコードそのものを削除する。
【0098】
図34は、本実施例の送金先の決済端末130のオフライン送金指示反映機能515がオフライン送金指示3000の内容を反映する処理を説明するイメージ図の例である。
オフライン送金指示反映機能515は、自己残高521の残高712の値を、オフライン送金指示3000の金額3013の値だけ、加算する。
【0099】
さらに、オフライン送金指示反映機能515は、自己オフライン決済履歴のレコードを作成し追記する。追加するレコードにおいて、送金元ID3211、送金先ID3212、送金額3213、利用者ID3214、資金ID3215の値には、それぞれ、オフライン送金指示3000の送金元ID3015、送金先ID3016、金額3013、利用者ID3011、資金ID3012の値を入力する。また、送金日時3216の値には、現在の日時を入力する。
【0100】
また、オフライン送金指示反映機能515は、自己オフライン残高522の情報のうち、利用者ID2711、資金ID2712の値がそれぞれ、オフライン送金指示3000の利用者ID3011、資金ID3012の値と一致するレコードを抽出し、当該レコードの金額2713の値を、オフライン送金指示3000の金額3013の値だけ、加算する。
【0101】
なお、前記条件に合ったレコードが見つからない場合は、オフライン送金指示反映機能515は、自己オフライン残高522のレコードを作成し追記する。追加するレコードにおいて、利用者ID2711、資金ID2712、金額2713、送金可能範囲及び送金実績2714の値には、それぞれ、オフライン送金指示3000の利用者ID3011、資金ID3012、金額3013、送金可能範囲及び送金実績3014の値を入力する。その後、入力した送金実績2714の値の中に、送金可能かつ実績のない送金経路としてオフライン送金指示3000の送金元ID3015の値から送金先ID3016の値に該当する部分がある場合(図中、「A」から「B」への点線で示された矢印がある場合)には、これを選択し、実績の情報を追記する(図中、「A」から「B」への矢印および「B」を、実線に変更する)。
【0102】
入力した送金実績2714の値の中に、前述の条件に該当する部分がない場合には、入力した送金実績2714の値の中で、オフライン送金指示3000の送金元ID3015の値を持つ部分からの送金先のない送金を示す部分(図中、「A」から終点のない矢印)を選択し、実績の情報を追記する(図中、実線に変更する)。
【0103】
図35は、本実施例の送金先の決済端末130のオフライン送金指示反映機能515がオフライン送金指示3000の内容を反映する処理を説明するイメージ図の例である。
図35の例は、
図34で利用者Bが利用者Aより受け取った資金を、更に利用者Xへ送金したケースを想定している。
【0104】
次に、本実施例の決済システムにおける、オフライン決済結果を決済サーバと同期する処理を説明する。本処理は、
図6のステップ600に該当する。
【0105】
図36は、本実施例の決済システムにおけるオフライン決済結果の決済サーバと同期を説明するフローチャートの例である。以降、
図36のフローチャートに基づき、決済システム100におけるオフライン決済の動作を説明する。
【0106】
本実施例では、
図33および
図34に示した利用者Aから利用者Bへのオフライン送金、および、
図35に示した利用者Bから利用者Xへのオフライン送金の情報について、決済サーバ110と同期するシナリオを例として用いる。
【0107】
ステップ3601は、決済端末120または130または140により実施されるステップである。ステップ3601では、決済端末120または130または140のオフライン送金結果通知機能517が、自己オフライン送金履歴523の情報を、決済サーバ110に送信する。送信は、前記決済端末の通信インタフェース304を介し、インターネット通信等によって実施される。送信が無事に完了したことが確認できた場合、オフライン送金結果通知機能517は、自己オフライン送金履歴523の情報を、すべて削除する。
【0108】
ステップ3602から3611は、決済サーバ110により実施されるステップである。
ステップ3602では、決済サーバ110のオフライン送金結果検証機能413が、利用者オフライン送金制約425の情報から、情報送信元の決済端末の利用者IDを利用者ID1611の値として有するレコードを1件抽出し、当該レコードの利用者ID1611の値、および、資金ID1612の値を選択する。
【0109】
当該利用者IDの値のすべてのレコードの、すべての利用者ID・資金IDの値について、ステップ3603からステップ3606の処理を実施する。
ステップ3603では、決済サーバ110のオフライン送金結果検証機能413が、ステップ3601で受信した自己オフライン送金履歴の情報のうち、ステップ3602で選択した利用者ID、資金IDの値を、それぞれ利用者ID3214、資金ID3215の値として有するレコードを抽出し選択する。上記に該当するレコードが1件も見つからなかった場合は、ステップ3604を省略し、ステップ3605へ進む。
【0110】
ステップ3604では、決済サーバ110のオフライン送金結果検証機能413が、利用者情報421、利用者残高422、利用者送金履歴423、利用者オフライン送金制約425の情報を参照することで、ステップ3603で選択した自己オフライン送金履歴の情報の適格性を検証する。
【0111】
図37は、本実施例の受信したオフライン送金履歴の適格性を検証する処理を説明するイメージ図の例である。
図37では、以下のケースを想定している。
ステップ3601において、
図33に示した利用者Aから利用者Bへのオフライン送金結果の情報を利用者Aの端末120から受信する。
【0112】
ステップ3602において、利用者ID3214の値として「A」、資金ID3215の値として「A001」を選択する。
【0113】
オフライン送金結果検証機能413は、ステップ3602で選択した利用者ID3215の値を参照し、利用者情報421、利用者残高422の情報から、それぞれ同一の利用者ID911、利用者ID1011の値を有するレコード3701、3702を抽出する。前記条件に合うレコード3701、3702が見つからない場合には、選択した利用者ID3215および資金ID3216の情報をシステム管理者へ通知した上で、ステップ3602へ進み、次の利用者ID・資金IDに関して処理を継続する。
【0114】
また、オフライン送金結果検証機能413は、抽出したレコード3701について、要注意フラグ913の値に有効な値が記載されていないことを確認する。有効な値が入っていた場合には、直ちには送金できないという判断を下し、ステップ3606へ進む。
【0115】
また、オフライン送金結果検証機能413は、抽出したレコード3702の残高1012の値が、選択した自己オフライン決済履歴3700の送金額3213の値以上であることを確認する。残高1012の値が送金額3213の値に満たない場合には、選択した自己オフライン送金履歴3700の情報をシステム管理者へ通知した上で、ステップ3602へ進み、次の利用者ID・資金IDに関して処理を継続する。
【0116】
また、オフライン送金結果検証機能413は、ステップ3602で選択した利用者ID3215および資金ID3216の値を参照し、利用者オフライン制約425の情報から、同一の利用者ID1611および資金ID1612の値を有するレコード3703を抽出する。前記条件に合うレコード3703が見つからない場合には、選択した利用者ID3215および資金ID3216の情報をシステム管理者へ通知した上で、ステップ3602へ進み、次の利用者ID・資金IDに関して処理を継続する。
【0117】
また、オフライン送金結果検証機能413は、抽出したレコード3703の金額1613の値が、選択した自己オフライン決済履歴3700の送金額3213の値以上であることを確認する。金額1613の値が送金額3213の値に満たない場合には、選択した自己オフライン送金履歴3700の情報をシステム管理者へ通知した上で、ステップ3602へ進み、次の利用者ID・資金IDに関して処理を継続する。
【0118】
また、オフライン送金結果検証機能413は、抽出したレコード3703の利用者オフライン送金制約の送金可能範囲1614の値に、選択した自己オフライン決済履歴3700の送金元ID3211の値が含まれていることを確認する。送金可能範囲1614の値に、送金元ID3211の値が含まれていない場合には、選択した自己オフライン送金履歴3700の情報をシステム管理者へ通知した上で、ステップ3602へ進み、次の利用者ID・資金IDに関して処理を継続する。
【0119】
また、オフライン送金結果検証機能413は、ステップ3603で選択した自己オフライン決済履歴3700の送金元ID3211および送金先ID3212の値を参照し、利用者決済履歴423の情報から、同一の送金元ID1111、送金先ID1112の値を有するレコード群3706を抽出する。なお、レコード群3706については、利用者決済履歴423の情報のうち送金日時1114が比較的新しいもの(例えば、直近1年分)に絞り込んでも良い。
【0120】
なお、オフライン送金結果検証機能413は、上記に加え、より高度な分析(例えば、他の利用者のデータを含めた大量データを用いた人工知能による分析)による判断をおこなっても良い。以上の、確認処理に問題がなかった場合には、ステップ3605へ進む。
【0121】
ステップ3605では、ステップ3604における確認処理で問題がなかった場合に、決済サーバ110のオフライン送金結果反映機能414が、選択した自己オフライン決済履歴3700の内容を、利用者残高422、利用者送金履歴423、利用者オフライン送金制約425へ反映する。
【0122】
図38は、本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
図38では、以下のケースを想定している。
ステップ3601において、
図33に示した利用者Aから利用者Bへのオフライン送金結果の情報を利用者Aの端末120から受信する。
ステップ3602において、利用者ID3214の値として「A」、資金ID3215の値として「A001」を選択する。
【0123】
オフライン送金結果反映機能414は、選択した自己オフライン決済履歴3700のうち、送金元ID3211が「A」であるレコード群について、送金額3213の合計額を算出する。さらに、オフライン送金結果反映機能414は、選択した自己オフライン決済履歴3700のうち、送金先ID3212が「A」であるレコード群について、送金額3213の合計額を算出する。前者の合計額と後者の合計額との差をとることで、「A」から流出した金額を算出する。
図38の例では、「110」という値が算出される。
【0124】
さらに、オフライン送金結果反映機能414は、利用者オフライン送金制約425の情報から、利用者ID1611の値が「A」かつ資金ID1612の値が「A001」であるレコード3803を抽出する。その処理中額1615および処理済額1616の額が「0」であることを確認した場合、その金額1613および処理中額1615の値を「110」として更新する。また、前記レコード3803の処理済額1616の値については、当初の金額1613の値である「200」から「110」を減算した値である「90」を入力する。
【0125】
さらに、オフライン送金結果反映機能414は、利用者残高422の情報から、利用者ID1011の値が「A」であるレコード3801を抽出し、その残高1012の値を「110」減算するとともに、処理中額1013の値を「110」加算する。
【0126】
さらに、オフライン送金結果反映機能414は、利用者決済履歴423の情報にレコード群3802を追記する。追記するレコードにおいて、送金元ID1111、送金先ID1112、送金額1113、送金日時1114の値には、それぞれ、選択したオフライン決済履歴3700の送金元ID3211、送金先ID3212、送金額3213、送金日時3216を入力する。ただし、同一のレコードが既に利用者決済履歴423が有する場合には、追記をおこなわない。
【0127】
図39は、本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
図39では、以下のケースを想定している。
ステップ3601において、
図33に示した利用者Aから利用者Bへのオフライン送金結果の情報を利用者Aの端末120から受信する。
【0128】
ステップ3602において、利用者ID3214の値として「A」、資金ID3215の値として「A002」を選択する。
図39のケースでは、選択した自己オフライン決済履歴3700にはレコードが1件も含まれない。
【0129】
この場合、オフライン送金結果反映機能414は、
図38のケースと異なり、利用者残高422および利用者決済履歴423に対する追記や更新はおこなわない。
【0130】
オフライン送金結果反映機能414は、利用者オフライン送金制約425の情報から、利用者ID1611の値が「A」かつ資金ID1612の値が「A002」であるレコード3901を抽出し、その処理中額1615および処理済額1616の額が「0」であることを確認した上で、その金額1613および処理中額1615の値を「0」として更新する。また、前記レコード3803の処理済額1616の値については、当初の金額1613の値である「20000」を入力する。なお、更新の前の段階で、レコード3901の処理中額1615および処理済額1616の値が「0」でなかった場合には、更新処理をおこなわず、選択した自己オフライン送金履歴3700の情報をシステム管理者へ通知した上で、ステップ3602へ進み、次の利用者ID・資金IDに関して処理を継続する。
【0131】
図40は、本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
図39では、以下のケースを想定している。
事前に、利用者Xの端末140を介し、
図35に示した利用者Bから利用者Xへのオフライン送金結果の情報がサーバ110に送信され、反映済(ステップ3607以降)である。
【0132】
ステップ3601において、
図33に示した利用者Aから利用者Bへのオフライン送金結果の情報を利用者Aの端末120から受信する。
【0133】
ステップ3602において、利用者ID3214の値として「A」、資金ID3215の値として「A001」を選択する。
【0134】
オフライン送金結果反映機能414は、選択した自己オフライン決済履歴3700のうち、送金元ID3211が「A」であるレコード群について、送金額3213の合計額を算出する。さらに、オフライン送金結果反映機能414は、選択した自己オフライン決済履歴3700のうち、送金先ID3212が「A」であるレコード群について、送金額3213の合計額を算出する。前者の合計額と後者の合計額との差をとることで、「A」から流出した金額を算出する。
図38の例では、「110」という値が算出される。
【0135】
さらに、オフライン送金結果反映機能414は、利用者オフライン送金制約425の情報から、利用者ID1611の値が「A」かつ資金ID1612の値が「A001」であるレコード4004を抽出する。その処理中額1615の値が「0」、かつ、処理済額1616の額が「0」でないことを確認した場合、前述「110」と処理済額1616の値との差額を算出する。
図38の例では、「30」という値が算出される。
【0136】
さらに、オフライン送金結果反映機能414は、前記レコード4004の金額1613および処理中額1615の値を前述「30」として更新する。
【0137】
さらに、オフライン送金結果反映機能414は、前記レコード4004の処理済額1616の値に「90」を加算することで更新する。「90」という値は、更新前の金額1613の値である「120」と処理済額1616の値である「80」との和から、前述「110」を減算することで算出する。
【0138】
なお、以上の処理により、金額1613および処理中額1615の値がゼロになった場合には、前記レコード4004を削除する。
【0139】
さらに、オフライン送金結果反映機能414は、利用者残高422の情報から、利用者ID1011の値が「A」であるレコード4001を抽出し、その残高1012の値を「30」減算するとともに、処理中額1013の値を「30」加算する。
【0140】
さらに、オフライン送金結果反映機能414は、利用者決済履歴423の情報にレコード群4002を追記する。追記するレコードにおいて、送金元ID1111、送金先ID1112、送金額1113、送金日時1114の値には、それぞれ、選択したオフライン決済履歴3700の送金元ID3211、送金先ID3212、送金額3213、送金日時3216を入力する。ただし、同一のレコードが既に利用者決済履歴423が有する場合には、追記をおこなわない。
【0141】
ステップ3606では、ステップ3604における検証処理において直ちに送金できないという判断が下された場合に、決済サーバ110のオフライン送金結果反映機能414が、選択した自己オフライン送金結果3700の内容を、利用者残高422および確認待ち送金指示424に反映する。
【0142】
図41は、本実施例の受信したオフライン送金履歴3700を反映する処理を説明するイメージ図の例である。
図41では、以下のケースを想定している。
ステップ3601において、
図33に示した利用者Aから利用者Bへのオフライン送金結果の情報を利用者Aの端末120から受信する。
【0143】
ステップ3602において、利用者ID3214の値として「A」、資金ID3215の値として「A001」を選択する。
【0144】
送金指示反映機能412は、確認待ち送金指示424にレコード4101を追加し記録する。レコード1502の送金元ID1411、送金先ID1412、送金額1413、送金依頼日時1414には、それぞれ、選択した自己オフライン送金結果412の送金元ID3211、送金先ID3212、送金額3213、送金日時3216の値を記録する。
【0145】
さらに、送金指示反映機能412は、
図39のケースと同様の方法で、利用者残高422および利用者オフライン送金制約425の情報を更新する。
【0146】
ステップ3607では、決済サーバ110のオフライン送金結果検証機能413が、ステップ3601で受信した自己オフライン送金履歴の情報3700から、情報送信元の決済端末の利用者IDの値を利用者ID3211の値として有さないレコードを1件抽出し、当該レコードの利用者ID3211の値、および、資金ID3212の値を選択する。
【0147】
当該利用者IDの値のすべてのレコードの、すべての利用者ID・資金IDの値について、ステップ3608からステップ36011の処理を実施する。
【0148】
ステップ3608では、決済サーバ110のオフライン送金結果検証機能413が、ステップ3601で受信した自己オフライン送金履歴3700の情報のうち、ステップ3607で選択した利用者ID、資金IDの値を、それぞれ利用者ID3214、資金ID3215の値として有するレコードを抽出し選択する。
【0149】
ステップ3609では、決済サーバ110のオフライン送金結果検証機能413が、利用者情報421、利用者残高422、利用者送金履歴423、利用者オフライン送金制約425の情報を参照することで、ステップ3608で選択した自己オフライン送金履歴の情報の適格性を検証する。
【0150】
なお、ステップ3609における動作は、基本的にステップ3604と同様である。但し、確認処理に問題がなかった場合にはステップ3610へ、直ちに送金できない判断に至った場合にはステップ3611へ、その他の問題が見つかった場合にはステップ3607へ進む。
【0151】
ステップ3610では、ステップ3609における確認処理で問題がなかった場合に、決済サーバ110のオフライン送金結果反映機能414が、選択した自己オフライン決済履歴3700の内容を、利用者残高422、利用者送金履歴423、利用者オフライン送金制約425へ反映する。
【0152】
図42は、本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
図42では、以下のケースを想定している。
ステップ3601において、
図35に示した利用者Bから利用者Xへのオフライン送金結果の情報を利用者Xの端末140から受信する。
ステップ3607において、利用者ID3214の値として「A」、資金ID3215の値として「A001」を選択する。
【0153】
オフライン送金結果反映機能414は、選択した自己オフライン決済履歴3700のうち、送金元ID3211が「X」であるレコード群について、送金額3213の合計額を算出する。さらに、オフライン送金結果反映機能414は、選択した自己オフライン決済履歴3700のうち、送金先ID3212が「X」であるレコード群について、送金額3213の合計額を算出する。後者の合計額と前者の合計額との差をとることで、「X」へ差し引きとして流入した金額を算出する。
図42の例では、「80」という値が算出される。
【0154】
さらに、オフライン送金結果反映機能414は、利用者オフライン送金制約425の情報から、利用者ID1611の値が「A」かつ資金ID1612の値が「A001」であるレコード4204を抽出する。その処理中額1615および処理済額1616の額が「0」であることを確認した場合、その金額1613の値を「80」減算するとともに、処理済額1616の値を「80」として更新する。
【0155】
さらに、オフライン送金結果反映機能414は、利用者残高422の情報から、利用者ID1011の値が「A」であるレコード4201および「X」であるレコード4202を抽出する。レコード4201の残高1012の値を「80」減算するとともに、レコード4202の残高1012の値を「80」加算する。
【0156】
さらに、オフライン送金結果反映機能414は、利用者決済履歴423の情報にレコード群4203を追記する。追記するレコードにおいて、送金元ID1111、送金先ID1112、送金額1113、送金日時1114の値には、それぞれ、選択したオフライン決済履歴3700の送金元ID3211、送金先ID3212、送金額3213、送金日時3216を入力する。ただし、同一のレコードが既に利用者決済履歴423が有する場合には、追記をおこなわない。
【0157】
図43は、本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
図42では、以下のケースを想定している。処理内容としては、基本的に
図42の例と同様である。
ステップ3601において、
図34および35に示した利用者Bのオフライン送金結果の情報を利用者Bの端末130から受信する。
ステップ3607において、利用者ID3214の値として「A」、資金ID3215の値として「A001」を選択する。
【0158】
図44は、本実施例の受信したオフライン送金履歴を反映する処理を説明するイメージ図の例である。
図44では、以下のケースを想定している。
事前に、利用者Aの端末120を介し、
図33に示した利用者Aから利用者Bへのオフライン送金結果の情報がサーバ110に送信され、反映済(ステップ3602以降)である。
【0159】
ステップ3601において、
図35に示した利用者Bから利用者Xへのオフライン送金結果の情報を利用者Xの端末140から受信する。
【0160】
ステップ3607において、利用者ID3214の値として「A」、資金ID3215の値として「A001」を選択する。
【0161】
オフライン送金結果反映機能414は、選択した自己オフライン決済履歴3700のうち、送金元ID3211が「X」であるレコード群について、送金額3213の合計額を算出する。さらに、オフライン送金結果反映機能414は、選択した自己オフライン決済履歴3700のうち、送金先ID3212が「X」であるレコード群について、送金額3213の合計額を算出する。後者の合計額と前者の合計額との差をとることで、「X」へ差し引きとして流入した金額を算出する。
図42の例では、「80」という値が算出される。
【0162】
さらに、オフライン送金結果反映機能414は、利用者オフライン送金制約425の情報から、利用者ID1611の値が「A」かつ資金ID1612の値が「A001」であるレコード4404を抽出する。その処理中額1615および処理済額1616の額が「0」でないことを確認した場合、その金額1613および処理中額1615の値を「80」減算するとともに、処理済額1616の値を「80」だけ加算して更新する。
【0163】
さらに、オフライン送金結果反映機能414は、利用者残高422の情報から、利用者ID1011の値が「A」であるレコード4401および「X」であるレコード4402を抽出する。レコード4401の処理中額1013の値がゼロでないことを確認した場合、レコード4401の処理中額1013の値を「80」減算するとともに、レコード4202の残高1012の値を「80」加算する。
【0164】
さらに、オフライン送金結果反映機能414は、利用者決済履歴423の情報にレコード群4403を追記する。追記するレコードにおいて、送金元ID1111、送金先ID1112、送金額1113、送金日時1114の値には、それぞれ、選択したオフライン決済履歴3700の送金元ID3211、送金先ID3212、送金額3213、送金日時3216を入力する。ただし、同一のレコードが既に利用者決済履歴423が有する場合には、追記をおこなわない。
【0165】
ステップ3611では、ステップ3607における検証処理において直ちに送金できないという判断が下された場合に、決済サーバ110のオフライン送金結果反映機能414が、選択した自己オフライン送金結果3700の内容を、利用者残高422および確認待ち送金指示424に反映する。本ステップの処理内容は、ステップ3606と同様である。
【0166】
上述のように、上記実施例の決済システム100は、利用者の資金の残高を管理する決済サーバ110と、前記決済サーバ110との間で送金指示及び送金結果を送受信する複数の決済端末120、130、140とを有する。
【0167】
前記決済端末120は、前記決済サーバ110に対して前記決済端末120の前記利用者の前記残高及び送金履歴の情報を要求し取得する送金結果確認部511と、前記決済サーバ110に対する送金指示電文を作成し送信する送金指示作成部512と、前記決済サーバ110を介さずに、他の前記決済端末130、140に対する端末間送金電文を作成し送信するオフライン送金指示作成部513と、前記オフライン送金指示作成部513を介して送信された前記端末間送金電文の妥当性を規定の条件に基づき検証するオフライン送金指示検証部514と、前記オフライン送金指示検証部514が妥当と判断した前記端末間送金電文を記録するオフライン送金指示反映部515と、前記オフライン送金指示反映部515によって記録された前記端末間送金電文を前記決済サーバ110に対して送信するオフライン送金結果通知部517と、を有する。
【0168】
また、前記決済サーバ110は、前記決済端末120の前記送金指示作成部512によって送信された前記送金指示電文の妥当性を前記規定の条件に基づき検証する送金指示検証部411と、前記送金指示検証部411によって検証された前記送金指示電文に基づき前記利用者の前記残高及び前記送金履歴を更新する送金指示反映部412と、前記決済端末120の前記オフライン送金結果通知部517によって送信された前記端末間送金電文の妥当性を前記規定の条件に基づき検証するオフライン送金結果検証部413と、前記オフライン送金結果検証部413によって検証された前記端末間送金電文に基づき前記利用者の前記残高及び前記送金履歴を更新するオフライン送金結果反映部414と、を有する。
【0169】
ここで、前記端末間送金電文の妥当性を検証するための前記規定の条件は、前記利用者の前記残高が前記端末間送金電文に記載された送金額に対して不足していないという条件を含む。
【0170】
また、前記端末間送金電文の妥当性を検証するための前記規定の条件は、送金元である前記利用者に対して送金先ごとに指定された送金の上限額を含む。前記決済サーバ110は、前記送金先ごとに指定された送金の前記上限額を算出するオフライン送金制約算出部415を有する。
【0171】
前記決済端末120の送金結果確認部511は、前記送金先ごとに指定された送金の前記上限額の情報を、利用者の前記残高及び前記送金履歴の情報と共に前記決済サーバ110から受信する。前記決済端末120は、前記送金先ごとに指定された送金の前記上限額の情報を、利用者の前記残高の情報に対応付けると共に管理するオフライン送金制約反映部516を有する。ここで、前記端末間送金電文は、前記送金先ごとに指定された送金の前記上限額に関する情報を含む。
【0172】
また、前記決済サーバ110の前記オフライン送金制約算出部415は、前記決済サーバ110の前記送金指示反映部412及び前記オフライン送金結果反映部414によって記録された前記送金履歴に基づいて、前記利用者の前記送金先及び送金実績額を算出し、前記送金先及び前記送金実績額に基づいて、前記利用者の前記送金先ごとに指定された送金の前記上限額の情報を算出する。
【0173】
また、前記端末間送金電文の妥当性を検証するための前記規定の条件は、前記送金元である前記利用者に対する前記送金先の範囲を規定した送金可能範囲の関する条件を含む。前記決済サーバ110の前記オフライン送金制約算出部415が算出する前記送金先ごとに指定された送金の前記上限額の情報は、前記送金可能範囲に応じて決められる。前記決済端末120の前記オフライン送金指示反映部515は、前記残高を更新する際に、前記送金先ごとに指定された送金の前記上限額に関する情報を併せて更新する。
【0174】
また、前記決済端末120の前記オフライン送金指示反映部515は、一連の前記端末間送金の前記最終受領者の前記決済端末から前記端末間送金電文を得られていない場合に、前記最終受領者が不明な状態である金額を、前記利用者の残高の情報のうち、前記最終受領者が不明な状態である金額として書き込むと共に、前記最終受領者が不明な状態である金額の情報が存在する状況下において、前記最終受領者の前記決済端末から前記端末間送金電文が得られた場合に、前記最終受領者が不明な状態である金額を、前記利用者が現在利用可能な金額に移し替える。
【0175】
また、前記端末間送金電文には、一連の前記端末間送金の始点となる前記利用者を特定する情報を含む。前記決済端末120の前記オフライン送金指示反映部515は、一連の端末間送金の前記始点となる前記利用者の前記決済端末から前記端末間送金電文を得られていない場合に、前記最終受領者から前記端末間送金電文が得られた場合に、前記始点となる利用者を特定する情報に基づいて、前記始点となる利用者の残高から前記最終受領者となる利用者の残高へ資金を移動する。
【0176】
本発明を、金融決済システムにおいて実用的な応用に組み込むことにより、オフライン決済においてもオンライン決済相当の不正リスク抑制を実現することが可能となる。