(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-09-04
(45)【発行日】2025-09-12
(54)【発明の名称】マルチドロップバス周辺デバイスへの外部アクセスを提供するためのデバイス及び方法
(51)【国際特許分類】
G06Q 20/32 20120101AFI20250905BHJP
G06Q 20/36 20120101ALI20250905BHJP
G06Q 20/06 20120101ALI20250905BHJP
G06Q 20/18 20120101ALI20250905BHJP
【FI】
G06Q20/32
G06Q20/36
G06Q20/06 300
G06Q20/18
(21)【出願番号】P 2023504380
(86)(22)【出願日】2021-07-21
(86)【国際出願番号】 US2021042632
(87)【国際公開番号】W WO2022020513
(87)【国際公開日】2022-01-27
【審査請求日】2024-04-23
(32)【優先日】2020-07-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515293414
【氏名又は名称】ペイレンジ インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】パテル,パレッシュ,ケー.
【審査官】牧 裕子
(56)【参考文献】
【文献】米国特許出願公開第2018/0165908(US,A1)
【文献】米国特許出願公開第2018/0096554(US,A1)
【文献】米国特許出願公開第2014/0143074(US,A1)
【文献】特表2019-508813(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
機械を前記機械の1つ以上の電子周辺デバイスへの外部アクセスを提供するように改造するための電子デバイスであって、
前記電子デバイスを前記機械の機械コントローラにマルチドロップバス(MDB)を介して結合するスレーブインターフェイスと、
前記電子デバイスを、前記機械の前記1つ以上の電子周辺デバイスのうちの第1の周辺デバイスであって、MDBプロトコルを介して通信し、前記機械の前記MDBから分離される第1の周辺デバイスに結合するホストインターフェイスと、
無線トランシーバと、
1つ以上のプロセッサと、
前記1つ以上のプロセッサにより実行される1つ以上のプログラムを記憶する非一時的メモリと、を備え、
前記1つ以上のプログラムは、
前記電子デバイスを前記機械コントローラのスレーブとして登録する命令と、
前記第1の周辺デバイスを前記電子デバイスのスレーブとして登録する命令と、
前記第1の周辺デバイスにより生成される信号へのアクセス要求を、前記無線トランシーバ経由でモバイルデバイスから受信する命令と、
前記モバイルデバイスが前記第1の周辺デバイスにより生成される前記信号にアクセスすることがリモートサーバによって許可されることを示すために、前記要求を検証する命令と、
前記第1の周辺デバイスの信号宛先アドレスを前記機械コントローラのコントローラアドレスから前記電子デバイスのデバイスアドレスに更新する指示を含む第1のリセットコマンドを、前記ホストインターフェイス経由で前記第1の周辺デバイスに送信する命令と、を含む、電子デバイス。
【請求項2】
前記1つ以上のプログラムが更に、
前記電子デバイスの前記ホストインターフェイスにおいて、更新された前記信号宛先アドレスに従って前記電子デバイスに向けられる第1の信号を前記第1の周辺デバイスから受信する命令と、
前記第1の信号を前記第1の周辺デバイスから受信することに応答して、
確認応答を前記第1の周辺デバイスに前記ホストインターフェイス経由で送信し、
前記第1の周辺デバイスから受信した前記第1の信号と関連したデータを含む第2の信号を、前記モバイルデバイスの長距離通信機能を介して前記サーバに転送するために前記モバイルデバイスに前記無線トランシーバ経由で伝送し、
前記第1の信号の前記機械コントローラへの提供を見合わせる命令とを更に含む、請求項1に記載の電子デバイス。
【請求項3】
前記1つ以上のプログラムが更に、
前記モバイルデバイスとの対話を停止する旨の通知を、前記モバイルデバイスから前記無線トランシーバ経由で受信する命令と、
前記モバイルデバイスとの対話を停止する旨の前記通知を受信したことに応答して、
前記第1の周辺デバイスの前記信号宛先アドレスを前記電子デバイスの前記デバイスアドレスから前記機械コントローラの前記コントローラアドレスに更新する指示を含む第2のリセットコマンドを、前記第1の周辺デバイスに前記ホストインターフェイス経由で送信する命令とを含む、請求項1又は2に記載の電子デバイス。
【請求項4】
前記1つ以上のプログラムが更に、
前記電子デバイスの前記スレーブインターフェイスにおいて、前記第1の周辺デバイスに向けられる第1のコマンドを前記機械コントローラから受信する命令と、
前記第1のコマンドを前記機械コントローラから受信することに応答して、
確認応答をあたかも前記第1の周辺デバイスから発せられたかのように前記機械コントローラに前記スレーブインターフェイス経由で送信し、
前記第1のコマンドを前記第1の周辺デバイスに前記ホストインターフェイス経由で中継する命令とを含む、請求項1から3のいずれか一項に記載の電子デバイス。
【請求項5】
前記1つ以上のプログラムが更に、
前記電子デバイスの前記ホストインターフェイスにおいて、前記機械コントローラに向けられる第3の信号を前記第1の周辺デバイスから受信する命令と、
前記第3の信号を前記第1の周辺デバイスから受信することに応答して、
確認応答をあたかも前記機械コントローラから発せられたかのように前記第1の周辺デバイスに前記ホストインターフェイス経由で送信し、
前記第3の信号を前記機械コントローラに前記スレーブインターフェイス経由で中継する命令とを含む、請求項1から4のいずれか一項に記載の電子デバイス。
【請求項6】
前記電子デバイスを前記機械コントローラのスレーブとして登録する前記命令が、
前記電子デバイスを前記機械コントローラに前記第1の周辺デバイスであると明らかにする命令と、
前記電子デバイスの前記第1の周辺デバイスとしての登録を受け付ける命令とを含む、請求項1から5のいずれか一項に記載の電子デバイス。
【請求項7】
前記第1の周辺デバイスが、硬貨受理機、紙幣受理機、又は支払いカードリーダである、請求項1から6のいずれか一項に記載の電子デバイス。
【請求項8】
前記機械が、自販機、パーキングメータ、料金所、コインランドリーの洗濯機もしくは乾燥機、アーケードゲーム、キオスク、写真撮影装置、料金所、又は乗り継ぎ切符発券機である、請求項1から7のいずれか一項に記載の電子デバイス。
【請求項9】
前記第1の信号が支払い受領信号であり、前記第2の信号が伝送取引信号である、請求項
2に記載の電子デバイス。
【請求項10】
前記第3の信号が支払い受領信号である、請求項
5に記載の電子デバイス。
【請求項11】
機械を前記機械の1つ以上の電子周辺デバイスへの外部アクセスを提供するように改造する方法であって、
無線トランシーバと、1つ以上のプロセッサと、非一時的メモリと、電子デバイスを前記機械の機械コントローラに結合するスレーブインターフェイスと、前記電子デバイスを、前記機械の前記1つ以上の電子周辺デバイスのうちの第1の周辺デバイスであって、MDBプロトコルを介して通信し、前記機械のMDBから分離される第1の周辺デバイスに結合するホストインターフェイスと、を備えた電子デバイスにおいて、
前記電子デバイスを前記機械コントローラのスレーブとして登録すること、
前記第1の周辺デバイスを前記電子デバイスのスレーブとして登録すること、
前記第1の周辺デバイスにより生成される信号へのアクセス要求を、前記無線トランシーバ経由でモバイルデバイスから受信すること、
前記モバイルデバイスが前記第1の周辺デバイスにより生成される前記信号にアクセスすることがリモートサーバによって許可されることを示すために、前記要求を検証すること、及び
前記第1の周辺デバイスの信号宛先アドレスを前記機械コントローラのコントローラアドレスから前記電子デバイスのデバイスアドレスに更新する指示を含む第1のリセットコマンドを、前記ホストインターフェイス経由で前記第1の周辺デバイスに送信すること、を含む方法。
【請求項12】
前記電子デバイスの前記ホストインターフェイスにおいて、更新された前記信号宛先アドレスに従って前記電子デバイスに向けられる第1の信号を前記第1の周辺デバイスから受信すること、
前記第1の信号を前記第1の周辺デバイスから受信することに応答して、
確認応答を前記第1の周辺デバイスに前記ホストインターフェイス経由で送信し、
前記第1の周辺デバイスから受信した前記第1の信号と関連したデータを含む第2の信号を、前記モバイルデバイスの長距離通信機能を介して前記サーバに転送するために前記モバイルデバイスに前記無線トランシーバ経由で伝送し、
前記第1の信号の前記機械コントローラへの提供を見合わせることを更に含む、請求項11に記載の方法。
【請求項13】
前記モバイルデバイスとの対話を停止する旨の通知を、前記モバイルデバイスから前記無線トランシーバ経由で受信すること、
前記モバイルデバイスとの対話を停止する旨の前記通知を受信することに応答して、
前記第1の周辺デバイスの前記信号宛先アドレスを前記電子デバイスの前記デバイスアドレスから前記機械コントローラの前記コントローラアドレスに更新する指示を含む第2のリセットコマンドを、前記第1の周辺デバイスに前記ホストインターフェイス経由で送信することを更に含む、請求項11又は12に記載の方法。
【請求項14】
前記電子デバイスの前記スレーブインターフェイスにおいて、前記第1の周辺デバイスに向けられる第1のコマンドを前記機械コントローラから受信すること、
前記第1のコマンドを前記機械コントローラから受信することに応答して、
確認応答をあたかも前記第1の周辺デバイスから発せられたかのように前記機械コントローラに前記スレーブインターフェイス経由で送信し、
前記第1のコマンドを前記第1の周辺デバイスに前記ホストインターフェイス経由で中継することを更に含む、請求項11から13のいずれか一項に記載の方法。
【請求項15】
前記電子デバイスの前記ホストインターフェイスにおいて、前記機械コントローラに向けられる第3の信号を前記第1の周辺デバイスから受信すること、
前記第3の信号を前記第1の周辺デバイスから受信することに応答して、
確認応答をあたかも前記機械コントローラから発せられたかのように前記第1の周辺デバイスに前記ホストインターフェイス経由で送信し、
前記第3の信号を前記機械コントローラに前記スレーブインターフェイス経由で中継することを更に含む、請求項11から14のいずれか一項に記載の方法。
【請求項16】
前記電子デバイスを前記機械コントローラのスレーブとして登録することが、
前記電子デバイスを前記機械コントローラに前記第1の周辺デバイスであると明らかにすること、及び
前記電子デバイスの前記第1の周辺デバイスとしての登録を受け付けることを含む、請求項11から15のいずれか一項に記載の方法。
【請求項17】
前記第1の周辺デバイスが、硬貨受理機、紙幣受理機、又は支払いカードリーダである、請求項11から16のいずれか一項に記載の方法。
【請求項18】
前記機械が、自販機、パーキングメータ、料金所、コインランドリーの洗濯機もしくは乾燥機、アーケードゲーム、キオスク、写真撮影装置、料金所、又は乗り継ぎ切符発券機である、請求項11から17のいずれか一項に記載の方法。
【請求項19】
前記第1の信号が支払い受領信号であり、前記第2の信号が伝送取引信号である、請求項
12に記載の方法。
【請求項20】
前記第3の信号が支払い受領信号である、請求項
15に記載の方法。
【請求項21】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、無線トランシーバと、1つ以上のプロセッサと、非一時的メモリと、電子デバイス
を機械の機械コントローラに結合するスレーブインターフェイスと、前記電子デバイスを、前記機械の前記1つ以上の電子周辺デバイスのうちの第1の周辺デバイスであって、MDBプロトコルを介して通信し、前記機械のMDBから分離される第1の周辺デバイスに結合するホストインターフェイスとを備えた電子デバイスによって実行されるときに、
前記電子デバイスを前記機械コントローラのスレーブとして登録すること、
前記第1の周辺デバイスを前記電子デバイスのスレーブとして登録すること、
前記第1の周辺デバイスにより生成される信号へのアクセス要求を、前記無線トランシーバ経由でモバイルデバイスから受信すること、
前記モバイルデバイスが前記第1の周辺デバイスにより生成される前記信号にアクセスすることがリモートサーバによって許可されることを示すために、前記要求を検証すること、及び
前記第1の周辺デバイスの信号宛先アドレスを前記機械コントローラのコントローラアドレスから前記電子デバイスのデバイスアドレスに更新する指示を含む第1のリセットコマンドを、前記ホストインターフェイス経由で前記第1の周辺デバイスに送信することを含む動作を前記電子デバイスに実行させる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項22】
前記命令が、
前記電子デバイスの前記ホストインターフェイスにおいて、更新された前記信号宛先アドレスに従って前記電子デバイスに向けられる第1の信号を前記第1の周辺デバイスから受信すること、
前記第1の信号を前記第1の周辺デバイスから受信することに応答して、
確認応答を前記第1の周辺デバイスに前記ホストインターフェイス経由で送信し、
前記第1の周辺デバイスから受信した前記第1の信号と関連したデータを含む第2の信号を、前記モバイルデバイスの長距離通信機能を介して前記サーバに転送するために前記モバイルデバイスに前記無線トランシーバ経由で伝送し、
前記第1の信号の前記機械コントローラへの提供を見合わせることを含む動作を前記電子デバイスに更に実行させる、請求項21に記載の非一時的コンピュータ可読記憶媒体。
【請求項23】
前記命令が、
前記モバイルデバイスとの対話を停止する旨の通知を、前記モバイルデバイスから前記無線トランシーバを介して受信すること、
前記モバイルデバイスとの対話を停止する旨の前記通知を受信することに応答して、
前記第1の周辺デバイスの前記信号宛先アドレスを前記電子デバイスの前記デバイスアドレスから前記機械コントローラの前記コントローラアドレスに更新する指示を含む第2のリセットコマンドを、前記第1の周辺デバイスに前記ホストインターフェイス経由で送信することを含む動作を前記電子デバイスに更に実行させる、請求項21又は22に記載の非一時的コンピュータ可読記憶媒体。
【請求項24】
前記命令が、
前記電子デバイスの前記スレーブインターフェイスにおいて、前記第1の周辺デバイスに向けられる第1のコマンドを前記機械コントローラから受信すること、
前記第1のコマンドを前記機械コントローラから受信することに応答して、
確認応答をあたかも前記第1の周辺デバイスから発せられたかのように前記機械コントローラに前記スレーブインターフェイス経由で送信し、
前記第1のコマンドを前記第1の周辺デバイスに前記ホストインターフェイス経由で中継することを含む動作を前記電子デバイスに更に実行させる、請求項21から23のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【請求項25】
前記命令が、
前記電子デバイスの前記ホストインターフェイスにおいて、前記機械コントローラに向けられる第3の信号を前記第1の周辺デバイスから受信すること、
前記第3の信号を前記第1の周辺デバイスから受信することに応答して、
確認応答をあたかも前記機械コントローラから発せられたかのように前記第1の周辺デバイスに前記ホストインターフェイス経由で送信し、
前記第3の信号を前記機械コントローラに前記スレーブインターフェイス経由で中継することを含む動作を前記電子デバイスに更に実行させる、請求項21から24のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【請求項26】
前記電子デバイスを前記機械コントローラのスレーブとして登録することを含む動作を前記電子デバイスに実行させる前記命令が、
前記電子デバイスを前記機械コントローラに前記第1の周辺デバイスであると明らかにすること、及び
前記電子デバイスの前記第1の周辺デバイスとしての登録を受け付けることを含む動作を前記電子デバイスに実行させる命令を含む、請求項21から25のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【請求項27】
前記第1の周辺デバイスが、硬貨受理機、紙幣受理機、又は支払いカードリーダである、請求項21から26のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【請求項28】
前記機械が、自販機、パーキングメータ、料金所、コインランドリーの洗濯機もしくは乾燥機、アーケードゲーム、キオスク、写真撮影装置、料金所、又は乗り継ぎ切符発券機である、請求項21から27のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【請求項29】
前記第1の信号が支払い受領信号であり、前記第2の信号が伝送取引信号である、請求項
22に記載の非一時的コンピュータ可読記憶媒体。
【請求項30】
前記第3の信号が支払い受領信号である、請求項
25に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権主張及び関連出願)
[0001] 本出願は、2020年7月21日出願の米国特許出願第16/934,933号の継続出願である。
【0002】
[0002] 本出願は、電子周辺デバイスの技術分野に係り、具体的には非永続的なネットワーク接続を介して電子周辺デバイスへのアクセスを提供するためのシステムに関する。
【背景技術】
【0003】
[0003] マスター/スレーブ技術は、1つのデバイス又はプロセス(マスター)が1つ以上の他のデバイス(スレーブ)(周辺デバイスと呼ばれることもある)を制御する二元的な(dualistic)通信のモデルを使用する。
【0004】
[0004] 周辺デバイスは、機械の様々な内部コンポーネントとそれらのコンポーネントのユーザとの間の機能的な境界部に配置されることが多く、それによって人間/機械の対話を可能にする。一部のタイプの周辺デバイスは取り外し及び交換が行われたり(例えば、ユニバーサル・シリアル・バス(USB)マウス又はキーボード)、外部デバイス(例えば、ワイヤレスプリンタ)によってアクセスされたりすることがある一方、紙幣受理機やカードリーダなどの他のタイプの周辺デバイスは、機械に埋め込まれ、動作する機械の特徴(機械の電源、処理システム、及び物理的な筐体など)に依存する場合がある。
【0005】
[0005] インターネットに接続されたモバイルデバイスを有する人の数が急増するにつれて、そのようなデバイスの用途も多様化している。用途によっては、拡張されたり、外部デバイスへのアクセスを必ずしも提供しない埋め込みシステムでのみ従来からアクセス可能である特定のタイプの周辺デバイスが必要になることさえある。
【発明の概要】
【0006】
[0006] 本明細書には、機械に配設された電子周辺デバイスへの外部アクセスを提供するためのシステムが開示されている。このシステムは、モバイルアプリケーションと電子周辺デバイスとの間の無線通信を提供することによって、外部デバイスが機械の電子周辺デバイスにより提供される機能にアクセスできるようにする。このアクセスを提供するために、システムは、(i)通常は電子周辺デバイスのマスターとして機能する機械コントローラから電子周辺デバイスを通信分離し、(ii)モバイルアプリケーションが電子周辺デバイスにより提供される機能へのアクセスを必要としなくなるまで、電子周辺デバイスを電子周辺デバイスのマスターとして機能するモバイルアプリケーションと通信接続する。
【図面の簡単な説明】
【0007】
【
図1】[0007] 一部の実施例に係る、3つのゾーン:「通信ゾーン」(例えば、Bluetooth範囲)、「認可ゾーン」、及び「支払いゾーン」を示す概略図である。
【
図2】[0008] 一部の実施例に係る内部に複数のユーザを含む
図1の3つのゾーンを示す概略図である。
【
図3】[0009] 一部の実施例に係るハンズフリークレジット又はアラートユーザ原理を示す表である。
【
図4】[0010] 一部の実施例に係る受信信号強度インジケータ(RSSI)情報のログ記録を示すフローチャートである。
【
図5】[0011] 一部の実施例に係る、アダプタモジュール、機械、モバイルデバイス、及びサーバなどを含む支払い処理システムの要素、並びにそれらの間の通信を示すブロック概略図である。
【
図6】[0012] 一部の実施例に係る、アダプタモジュール、機械、モバイルデバイス、及び/又はサーバ間で使用される暗号の3つのエリア(それぞれが双方向)を示すブロック概略図である。
【
図7】[0013] 一部の実施例に係る、アダプタモジュール、モバイルデバイス、及びシステム管理サーバ間の通信、メッセージング、自販シーケンス、及び購入フローを示すブロック図である。
【
図8A】[0014] 一部の実施例に係る、ユーザが「通信ゾーン」(例えば、Bluetooth範囲)に入る際の支払い処理システムの追加の要素及び特徴(例えば、通信、メッセージング、自販シーケンス、及び購入フロー)を示す概略的なプロセス流れ図である。
【
図8B】[0015] 一部の実施例に係る、ユーザが「認可ゾーン」に入る際の支払い処理システムの追加の要素及び特徴(例えば、通信、メッセージング、自販シーケンス、及び購入フロー)を示す概略的なプロセス流れ図である。
【
図8C】[0016] 一部の実施例に係る、ユーザが「支払いゾーン」に入る際の支払い処理システムの追加の要素及び特徴(例えば、通信、メッセージング、自販シーケンス、及び購入フロー)を示し、特にハンズフリーモード実施形態及びスワイプモード実施形態を詳述する概略的なプロセス流れ図である。
【
図8D】[0017] 一部の実施例に係る、複数の取引のループを含む自販取引における支払い処理システムの追加の要素及び特徴(例えば、通信、メッセージング、自販シーケンス、及び購入フロー)を示す概略的なプロセス流れ図である。
【
図8E】[0018] 一部の実施例に係る、ログインモードにおける支払い処理システムの追加の要素及び特徴(例えば、通信、メッセージング、自販シーケンス、及び購入フロー)を示す概略的なプロセス流れ図である。
【
図8F】[0019] 一部の実施例に係る、アダプタモジュールのブートアップ中の支払い処理システムの追加の要素及び特徴(例えば、通信、メッセージング、自販シーケンス、及び購入フロー)を示す概略的なプロセス流れ図である。
【
図8G】[0020] 一部の実施例に係る、口座チェック/更新プロセス中の支払い処理システムの追加の要素及び特徴(例えば、通信、メッセージング、自販シーケンス、及び購入フロー)を示す概略的なプロセス流れ図である。
【
図9】[0021]
図9A~Eは、一部の実施例に係る支払い処理システムの例示的なステップ及び特徴(例えば、通信、メッセージング、自販シーケンス、及び購入フロー)を示すフローチャートである。
【
図10】[0022]
図10A~Dは、一部の実施例に係る、モバイルデバイス-機械支払い処理システムの一部として使用されるモバイルアプリケーションのグラフィック表示が示されたモバイルデバイスを示す。
【
図11】[0023] 一部の実施例に係るインラインドングルアダプタモジュールの斜視図である。
【
図12】[0024] 一部の実施例に係る
図11のインラインドングルアダプタモジュールの正面平面図である。
【
図13】[0025] 一部の実施例に係る
図11のインラインドングルアダプタモジュールの背面平面図である。
【
図14】[0026] 一部の実施例に係る
図11のインラインドングルアダプタモジュールの側面図である。
【
図15】[0027] 一部の実施例に係る
図11のインラインドングルアダプタモジュールのコネクタレセプタクルの第1の端面図である。
【
図16】[0028] 一部の実施例に係る
図11のインラインドングルアダプタモジュールのコネクタレセプタクルの第2の端面図である。
【
図17】[0029] 一部の実施例に係る、
図11のインラインドングルアダプタモジュールの第1の端部からの斜視図であり、例示を目的としてインラインドングルアダプタモジュールがその間に挿入されるコネクタ及びケーブルが破線で示されている。
【
図18】[0030] 一部の実施例に係る、
図11のインラインドングルアダプタモジュールの第2の端部からの斜視図であり、例示を目的としてインラインドングルアダプタモジュールがその間に挿入されるコネクタ及びケーブルが破線で示されている。
【
図19】[0031] 一部の実施例に係る自販機内の
図11のインラインドングルアダプタモジュールの斜視図である。
【
図20】[0032] 一部の実施例に係るアダプタモジュールのブロック図である。
【
図21】[0033] 一部の実施例に係るモバイルデバイスのブロック図である。
【
図22】[0034] 一部の実施例に係るサーバのブロック図である。
【
図23】[0035] 一部の実施例に係る支払い処理システムにおいて取引を実行するユーザを認証するプロセスの概略的な流れ図である。
【
図24A】[0036] 一部の実施例に係る支払いモジュール(本明細書では「アダプタモジュール」と呼ばれることもある)によりブロードキャストされる情報パケットのブロック図である。
【
図24B】[0037] 一部の実施例に係る認可要求のブロック図である。
【
図24C】[0038] 一部の実施例に係る認可承諾トークンのブロック図である。
【
図24D】[0039] 一部の実施例に係る支払いモジュールにより生成される取引情報のブロック図である。
【
図25】[0040] 一部の実施例に係る支払い処理システムにおける承認情報を処理するプロセスの概略的な流れ図である。
【
図26】[0041] 一部の実施例に係る複数の支払い周辺機器に対応するように支払い受理ユニット(例えば機械120)を改造するためのデバイスのブロック図である。
【
図27】[0042] 一部の実施例に係る支払い周辺機器登録プロセスの概略的流れ図である。
【
図28】[0043]
図28A及びBは、一部の実施例に係る支払いプロセスの概略的流れ図を示す。
【
図29】[0044] 一部の実施例に係る複数の支払い周辺機器に対応するように支払い受理ユニットを改造する方法のフローチャートを示す。
【
図30】[0045]
図30A及びBは、一部の実施例に係る電子周辺デバイスへの外部アクセスを提供するように支払い受理ユニット(例えば機械120)を改造するためのデバイスの通常動作及びインターセプト動作のブロック図を示す。
【
図31】[0046] 一部の実施例に係る電子周辺デバイスへの外部アクセスを提供するプロセスの概略的流れ図を示す。
【
図32】[0046] 一部の実施例に係る電子周辺デバイスへの外部アクセスを提供するプロセスの概略的流れ図を示す。
【
図33】[0046] 一部の実施例に係る電子周辺デバイスへの外部アクセスを提供するプロセスの概略的流れ図を示す。
【
図34】[0046] 一部の実施例に係る電子周辺デバイスへの外部アクセスを提供するプロセスの概略的流れ図を示す。
【
図35】[0047]
図35A及びBは、一部の実施例に係る周辺機器アクセスシステムの一部として使用されているモバイルアプリケーションのグラフィック表示が示されたモバイルデバイスを示す。
【発明を実施するための形態】
【0008】
[0048] 同様の参照番号は、図面のいくつかの図を通して対応する部分を指す。
【0009】
[0049] 本明細書に開示されるのは、支払い処理システム、又はより具体的には、非永続的なネットワーク接続を介して取引を処理するためのモバイルデバイス-機械支払い処理システムである。本明細書に開示されるモバイルデバイス-機械支払い処理システムは、無人小売スペース(例えば、支払い受理ユニット120、本明細書では「機械120」と呼ばれることもある)に焦点を当てる。より具体的には、本明細書に開示されるモバイルデバイス-機械支払い処理システムは、ユーザ(モバイルアプリケーション140を備えたモバイルデバイス150を有する)が支払い受理ユニット120(関連付けられたアダプタモジュール100を有する)からキャッシュレス購入を行えるようにする。
【0010】
[0050] 本明細書に記載のモバイルデバイス-機械支払い処理システムは、以下の機能の1つ以上を用いて実施される可能性がある:容易な設置に関する機能、非永続的なネットワーク接続機能、手動(スワイプ支払い)モード機能、ハンズフリーモード機能、及び複数自販取引(複数自販)機能。
【0011】
[0051] 容易な設置:設置は非常に容易であり、工具を必要とせず、設定を必要とせず、わずか30秒しか要しない。これは、支払い受理ユニット120(例えば、自販機)(本明細書では「機械120」と呼ばれることもある)のマルチドロップバス(MDB)内のインライン挿入のためのインラインドングル(ソフトウェアを備えたハードウェアデバイス)設計などのアダプタモジュール100(本明細書では「支払いモジュール100」と呼ばれることもある)を使用することによって達成される。設置は、機械120の「電源を落とし」(オフにし)、支払い受領機構(例えば、硬貨機構)と接続する「ワイヤ」を識別し、ワイヤを取外し(オス接続端部又はMDBのオスアダプタ及びメス接続端部又はMDBのメスアダプタなどの2つの緩んだ端部が存在するように)、アダプタモジュール100に直列(「インライン」)でワイヤを差し込み(挿入し)(例えば、MDBのメスアダプタをアダプタモジュール100のオスアダプタに接続し、MDBのオスアダプタをアダプタモジュール100のメスアダプタに接続し)、ワイヤ及び設置されたアダプタモジュール100を定位置に戻し、機械120の「電源を投入」する(オンにする)という簡単なものである。1995年以降に作られた大半の自販機は、この容易な30秒設置を可能にするこの業界標準MDB技術を有する。MDB技術を有しない機械では、アダプタモジュール100は、他の直列プロトコルで機能するか、又はスイッチをアクティブ化するように構成又は設計される可能性がある。基本的に、アダプタモジュール100は、他の代替的な支払い形態(例えば、現金)とほぼ同じように支払い受理ユニット120での支払いの確立をシミュレートする。
【0012】
[0052] 非永続的なネットワーク接続:現金(例えば、紙幣及び硬貨)のみを受け入れる支払い受理ユニット(又は「機械」)は、ネットワークへの接続(永続的又は非永続的)を必要としないことがあるが、キャッシュレス決済(例えば、クレジットカード、デビットカード、及び例えばスマートフォンを使用した代替的なモバイルデバイス決済方法)を受け入れる従来の支払い受理ユニットは、キャッシュレス決済を促進するために、ネットワークへの永続的な接続(有線又は無線)を必要とする。換言すれば、永続的な(継続的な又は需要に応じてアクセス可能な)ネットワーク接続なしには、従来の支払い受理ユニットはキャッシュレス決済を受け入れることができない。キャッシュレス決済を受け入れる大半の従来の支払い受理ユニットは、リモートサーバへの接続を可能にするこの永続的なネットワーク接続を達成する技術を含む。従来の機械へのネットワーク接続が一時的に中断する場合、キャッシュレス決済は一時的に利用不可能になる。機械がネットワーク接続が利用可能でない場所にある場合、キャッシュレス決済は可能ではない。支払い受理ユニット120とサーバ130との間の仲介物としてモバイルデバイス150を使用することに加えて、本明細書に記載のモバイルデバイス-機械支払い処理システムは、モバイルデバイス150とのユーザ対話を最小限に抑える(すなわち、手動モード)か又はなくす(すなわち、ハンズフリーモード)。更に、一部の実施例では、本明細書に記載のモバイルデバイス-機械支払い処理システムは、支払い受理ユニット120の近傍でのいかなるネットワーク接続も必要とせずにキャッシュレス決済の受け入れを促進する。したがって、一部の実施例では、本明細書に記載のモバイルデバイス-機械支払い処理システムが、ネットワーク接続が利用不可能な遠隔場所に配置される場合も、モバイルデバイス-機械支払い処理システムはキャッシュレス決済を受け入れることができる。
【0013】
[0053] 手動(スワイプ支払い)モード:「スワイプ支払い」機能(又は単に「スワイプ」)を使用することは、ユーザがモバイルデバイスのタッチスクリーン152(
図10Aから
図10D)上又はモバイルデバイス150と関連付けられた他の入力デバイスにおいて指を素早く振り払う、ユーザのモバイルデバイス150で実施されるユーザの動作(又は他の所定の対話)を指す。ユーザの視点から、ユーザが範囲内にいる場合、予めインストールされているモバイルアプリケーション140が、支払い受理ユニット120(例えば、自販機)に自動的に接続する。モバイルアプリケーション140は、ユーザが「スワイプ」して支払いを支払い受理ユニット120に送金するプリペイド残高を(タッチスクリーン152上に)表示することがある。ユーザは、モバイルデバイス150のタッチスクリーン152上及び/又は支払い受理ユニット120のディスプレイ122、124(
図19)上に送金された資金を見ることができる。取引は、ユーザが選択を支払い受理ユニット120に入力し、支払い受理ユニット120が製品又はサービスを提供することで、あたかも現金が機械120に挿入されたかのように完了する。選択が行われた後、お釣りがモバイルデバイス150に返却され、これはモバイルデバイス150のタッチスクリーン152に示されることがある。
【0014】
[0054] ハンズフリーモード:「ハンズフリー支払い」機能(又は単に「ハンズフリー」)は、「お気に入りの」支払い受理ユニット120(例えば、ユーザの仕事場又は学校にある頻繁に使用する自販機)で使用される可能性が最も高い。ユーザの視点から、ユーザは、お気に入りの支払い受理ユニット120に近づき、支払い受理ユニット120のディスプレイ122、124(
図19)が利用可能な資金を示していることに気付き、支払い受理ユニットの入力機構(例えば、
図19に示されるボタン126又はタッチスクリーンディスプレイ124)を使用して製品又はサービスを選択し、提供されたサービス又は製品を取り出すことになる。このように簡単である。より具体的には、ユーザが範囲内にいる場合、予めインストールされているモバイルアプリケーション140は、支払い受理ユニット120(例えば、自販機)に自動的に接続する。ユーザは、モバイルデバイス150をポケット、財布、ブリーフケース、バックパック、又は他のキャリアの中に入れっ放しにすることがある。ユーザが支払い受理ユニット120に近づき、支払い受理ユニット120の概ね「腕の長さ」の距離(例えば、3~5フィート)にあるとき、ユーザは、支払い受理ユニット120のディスプレイ122、124(
図19)上に送金された資金を見ることができる。取引は、ユーザが選択を支払い受理ユニット120に入力し、支払い受理ユニット120が製品又はサービスを提供することで、あたかも現金が支払い受理ユニット120に投入されたかのように完了する。選択が行われた後、お釣りがモバイルデバイス150に返却される。
図3は、ハンズフリーモードが利用可能な場合を詳述する。
【0015】
[0055] 複数の自販取引(「複数自販」):ユーザが複数の購入を行うことができるように手動モード及びハンズフリーモードの両方が連続して複数回(例えば、ループとして実施される)にわたって使用される可能性がある。ユーザは、最初の選択をし、製品(又はサービス)を受け取った後、支払い受理ユニット120のディスプレイ122、124(
図19)に追加の資金が利用可能であったことを見ることになる。ユーザは、もう一回選択し(又は複数選択し)、追加の製品(又はサービス)を受け取ることができる。より具体的には、ディスプレイ122、124(
図19)は、あたかも取引が完了したかのようにリセットすることがあるが、そのときユーザが依然として範囲内にいるため、モバイルアプリケーション140は、別のクレジットを支払い受理ユニット120に送信し、2回目の購入を可能にすることになる。ユーザが立ち去ると、システムはクリアする(例えば、使用されなかった資金をモバイルデバイス150のアプリケーション140に返却する)。
【0016】
[0056] 上記の機能は、単独で又は本明細書に記載の他の機能と組み合わせて、1千億ドルの自動小売業界に革命をもたらすであろう。ハードウェアは、非常に低コストであり、機械120にはセルラ接続が必要ないため、繰り返し発生する費用がない。本明細書に記載のモバイルデバイス-機械支払い処理システムを使用して、機械120のオペレータは、購入者による訪問頻度及び各訪問で販売されるアイテム数を増加させることができる。
【0017】
[0057] 本明細書に記載のモバイルデバイス-機械支払い処理システムは、モバイルデバイス150を介した機械120への支払いを可能にするための装置、システム、及び/又は方法として実施されることがある。モバイルデバイス-機械支払い処理システムは、図面を参照してよりよく理解されることがあるが、示されるモバイルデバイス-機械支払い処理システムは、限定的な性質のものであることが意図されていない。
【0018】
定義
[0058] モバイルデバイス-機械支払い処理システム及び図を説明する前に、用語の一部を明確にする必要がある。用語及び語句は、本明細書全体を通して、追加の定義及び/又は例を有し得ることに留意されたい。特に別段のことが定義される場合を除き、言葉、語句、及び頭字語には、当技術分野における通常の意味が与えられる。以下の段落は、本明細書で使用される用語及び語句の定義の一部を提供する。
【0019】
[0059] アダプタモジュール100:
図1及び
図2に示されるように、アダプタモジュール100(本明細書では「支払いモジュール100」と呼ばれることもある)は、機械120(支払い受理ユニット120)に設置されている物理的デバイスである。示されるアダプタモジュール100は、機械120のマルチドロップバス(MDB)内に直列に挿入され得るインラインドングル(ソフトウェアを備えたハードウェアデバイス)デバイスである。アダプタモジュール100は、機械120とモバイルデバイス150との間の通信を橋渡しする。唯一のコンポーネントとして説明されているが、アダプタモジュール100が、複数のデバイスとして実施され得るか、又は他のデバイス(例えば、機械120のコンポーネント)に統合され得ることに留意されたい。その唯一のコンポーネント形態において、アダプタモジュール100は、機械120がアダプタモジュール100の助けを借りて新しい機能を実行できるように機械120に容易に挿入される可能性がある。
図20は、アダプタモジュール100と関連付けられたコンポーネントを示している。
図20に示されるように、アダプタモジュール100の通信ユニット770は、短距離通信機能776(例えば、Bluetooth機構)を備える。示される例は、コンポーネントが互いに関連付けられる限り、互いに関連付けられている複数の別個のコンポーネントに分割されることがあるか、又はかかる例は、他の技術(例えば、コンピュータ又は支払い受理ユニット)に組み込まれるか、もしくは他の技術から引き出されることがある。
【0020】
[0060] モバイルデバイス150及びアプリケーション140(「モバイルアプリケーション」、「モバイルアプリ」、又は「アプリ」とも呼ばれる):一般に、モバイルデバイス150は、ユーザのパーソナルモバイルデバイス150である場合がある。モバイルデバイス150(モバイルアプリケーション140を備えている)は、アダプタモジュール100(支払い受理ユニット120と関連付けられている)とサーバ130との間の通信の橋渡しとして機能する。しかしながら、モバイルデバイス150及びアプリケーション140は、受け渡される通信(伝送)が暗号化されるという点で「信頼」されていない。暗号化された(保護された)通信は、モバイルデバイス150によって解読できない(暗号化できない、読み取れない、及び/又は使用できない)。これは、アダプタモジュール100とサーバ130との間で受け渡される通信をハッキングからセキュア且つ安全に保つ。モバイルデバイスは、スマートフォン、タブレットもしくはラップトップコンピュータ、もしくは携帯情報端末(PDA)、スマートカード、又は本明細書に記載のモバイルデバイスと同様の構造及び/もしくは機能を有する既知のもしくは未発見の他の技術(例えば、ハードウェアとソフトウェアの組み合わせ)などを含む。モバイルデバイス150は、好ましくはその上で動作するアプリケーション(例えば、アプリケーション140)を有する。用語「アプリ」は、本明細書に記載の機能を実施可能なあらゆるソフトウェアプログラムを広く包含するために使用される。
図10Aから
図10Dは、モバイルデバイス150により表示されるアプリケーション140のユーザインターフェイスを示している。語句「モバイルデバイス」は、特段に記載がない限り、関連アプリを含むものと仮定され得ることに留意されたい。同様に、「アプリ」は、特段に記載がない限り、関連付けられたモバイルデバイス上で動作中であると仮定され得ることに留意されたい。
図21は、モバイルデバイス150と関連付けられたコンポーネントを示している。示される例は、コンポーネントが互いに関連付けられる限り、互いに関連付けられている複数の別個のコンポーネントに分割されることがあるか、又はかかる例は、他の技術(例えば携帯電話自体)に組み込まれるか、もしくは他の技術から引き出されることがある。
【0021】
[0061] 支払い受理ユニット120(又は機械120):支払い受理ユニット120(又は機械120)は、製品及び/又はサービスの提供に対する支払いを要求する装置である。支払い受理ユニット120は、自販機、パーキングメータ、料金所、コインランドリーの洗濯機及び乾燥機、アーケードゲーム、キオスク、写真撮影装置、料金所、乗り継ぎ切符発券機、及び他の既知の又は未発見の支払い受理ユニット120である場合がある。一部の支払い受理ユニット120は、例えば、クレジットカード、デビットカード、及びモバイルデバイスからの支払いを受理することによって、キャッシュレス支払い(現金(紙幣及び硬貨)以外の支払い)を受理することができる。
【0022】
[0062] ネットワーク接続:この考察では、永続的なネットワーク接続は、進行中(例えば、専用接続、専用オンライン接続、及び/又はハードワイヤード接続)又は需要に応じてアクセス可能(例えば、機械が一時的にサーバへの接続を行う能力又はユーザがモバイルデバイスからサーバに連絡する能力)な有線又は無線通信接続である。通常、永続的なネットワーク接続は、「長距離通信技術」又は「長距離通信プロトコル」(例えば、ハードワイヤード、電話回線網技術、セルラ技術(例えば、GSM、CDMAなど)、Wi-Fi技術、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、又は既知のもしくは未発見のインターネットを介した任意の有線もしくは無線通信技術)を介して行われてきた。従来、現金以外の支払いを受理する機械は、支払いを促進するために、ネットワークへの永続的な(進行中の又は需要に応じてアクセス可能な)接続を必要とする。これは、例えば、クレジットカード及びデビットカードを受け入れる機械に当てはまる。本明細書に記載の支払い受理ユニット120は、従来の永続的なネットワーク接続を必要としない。ユーザのモバイルデバイス150は、アダプタモジュール100とサーバ130との間の通信の橋渡しとして機能する。ユーザのモバイルデバイス150とサーバ(例えば、システム管理サーバ130及び/又は資金調達源サーバ160)との間の通信は、長距離通信技術を使用して行われる。ユーザのモバイルデバイス150と支払い受理ユニット120のアダプタモジュール100との間の通信は、「短距離通信技術」又は「短距離通信プロトコル」(例えば、Bluetooth(Bluetooth4.0、Bluetooth Smart、Bluetooth Low Energy(BLE))、近距離通信(NFC)、超広帯域(UWB)、無線自動識別(RFID)、赤外線無線、誘導無線、又は既知のもしくは未発見の短距離(約100フィート又はこれにより近い)の通信に使用され得る任意の有線もしくは無線技術)を使用して行われる。したがって、アダプタモジュール100も支払い受理ユニット120も従来の永続的な長距離無線ネットワーク接続を必要としない。図に示される通信技術は、代替的な同様の通信技術に置き換えられることがあり、したがって、特定の示される通信技術は限定的であることを意味しない。例えば、Wi-Fi技術は、別の長距離通信技術に置き換えられる可能性がある。
【0023】
[0063] サーバ:サーバは、支払い処理システムを実行させる企業により運営され得るホスト処理サーバである。各ユーザにとって、サーバ130は、好ましくはサーバ130が会計を維持する指定された資金の少なくとも1つの「残高」(ドル0であり得る)を有する少なくとも1つの「仮想ウォレット」を保持する。残高は、例えば、「現金」を表すことがあるか、又は特定の状況下で使われ得る資金を表す「販売促進価値」である場合がある。これらの資金が枯渇し始める場合、追加の資金を指定及び/又は送金する必要があることが(例えば、モバイルデバイス150上のアプリケーション140を介して)ユーザに通知されることがある。代替的に、他のソース(例えば、資金調達源サーバ160)からの資金が、所定の残高を回復するために自動的に送金されることがある。残高は、プロモーション(例えば、獲得したポイント又はクーポン)に基づいて増加されることもある。
図22に示されるように、サーバは、適切なプロセッサ950、メモリ960(ギフトカードと同様の方法でユーザの残高の会計を維持する)、及び通信システム970を備える。
図22に示されるように、サーバ130の通信ユニット970は、長距離通信機能972(例えば、セルラ技術及び/又はWi-Fi機構)を備える。サーバ130は、メッセージを暗号化及び解読するためのセキュリティユニット955も備える。サーバ130は、認可要求(本明細書では「AuthRequest」と呼ばれることもある)をアダプタモジュール100から(モバイルデバイス150を介して)受信し、資金が利用可能な場合に、資金の認可承諾(本明細書では「AuthGrant」又は「認可承諾トークン」と呼ばれることもある)を返す。
図22は、サーバ130と関連付けられたコンポーネントを示す。示される例は、コンポーネントが互いに関連付けられる限り、互いに関連付けられている複数の別個のコンポーネントに分割されることがあるか、又はかかる例は、他の技術(例えばコンピュータ又はメインフレーム)に組み込まれるか、もしくは他の技術から引き出されることがある。
【0024】
[0064] 存在の宣伝:各アダプタモジュール100は、ゾーン102、104、106内のモバイルデバイスに信号(宣伝ブロードキャスト信号)をブロードキャストすることによってその存在を宣伝する。各アダプタモジュール100は、他のアダプタモジュールの宣伝をリッスンすることができる。
【0025】
[0065] 受信信号強度インジケータ(RSSI):アダプタモジュール100は、ゾーン閾値(例えば、支払いゾーン閾値及び認証ゾーン閾値)を決定するための自己較正信号強度を有することがある。ユーザが支払い受理ユニット120からアイテム(製品又はサービス)を選択するとき、受信信号強度インジケータ(RSSI)がログ記録される。このとき、ユーザが支払い受理ユニット120から「腕の長さ」(購入するために機械の前に立っているユーザの距離を近似した所定の長さであり得る)の範囲内にいると仮定される。数学的計算(すなわち、範囲内ヒューリスティック)を行い、モバイルデバイス150のアプリケーション140によって支払いをトリガすべきポイントである最適なRSSI閾値を導出する。閾値は、支払い受理ユニットに固有である場合があり、一定期間にわたって変化する可能性がある。この最適なゾーン閾値は、好ましくは最初のハンドシェイク中にモバイルデバイス150に報告される。
【0026】
[0066] 範囲内ヒューリスティック:ユーザが認可ゾーン104及び/又は支払いゾーン102にいるときを特定するためのRSSI閾値を決定する数学的計算。この計算は、多くの過去のデータポイント、及び多くの要因の中でもとりわけ、モバイルデバイス150が使用されている、支払い受理ユニットタイプなどの取引固有の情報を考慮することができる。好ましくは、RSSIは、ユーザが選択をしている間(これは、ユーザが確実に「範囲内」にいる、全プロセス中のある時間である(例えば、機械120と物理的に対話しているため、機械120から腕の長さのところになる)ログ記録される。ユーザが選択をしている間、ユーザのモバイルデバイス150のタイプ、加速度計データ(例えば、ユーザが移動中であるかもしくは静止しているか)、及び/又は他の情報もログ記録されることがある。アダプタモジュール100は、支払いゾーン102の基準RSSIを機械120に与えることができ、アプリケーション140は、アプリケーション140がインストールされている特定のモバイルデバイス150に基づいて+/-調整を行うことができる。一定期間にわたり、支払い処理システムは、追加のデータポイントに基づいてそれ自体が改善し続ける。
【0027】
[0067] 認可要求(「AuthRequest」):ユーザが認可ゾーン104に入ると、モバイルデバイス150はアダプタモジュール100に通知し、アダプタモジュール100は、安全性が保証された認可要求(例えば、暗号化された認可要求)を「メッセージ」(通信又は伝送とも呼ばれる)としてモバイルデバイス150を介してサーバ130に送信する。暗号化は、処理ユニット750及び/又はメモリ760と関連付けられ得るセキュリティ技術(例えば、暗号化手段及び解読手段)を用いてセキュリティユニット755(
図20)によって実行されることがある。重要なことに、AuthRequestは、取引の認可要求ではなく資金の認可要求である。資金の目的はサーバ130と無関係である。
【0028】
[0068] 認可承諾トークン(「AuthGrant」):これは、アダプタモジュール100に対応する一意の秘密鍵を有するサーバ130のセキュリティ技術(例えば、暗号化手段及び解読手段)を用いてセキュリティユニット955(
図22)により暗号化された「メッセージ」(通信又は伝送とも呼ばれる)である。安全性が保証された認可承諾(例えば、暗号化された認可承諾)は、サーバ130からモバイルデバイス150を介してアダプタモジュール100にメッセージの形態で受け渡される。ただし、モバイルデバイス150は、メッセージを解読する及び/又は読み取ることができない。認可承諾は、認可要求に応答するものである。AuthGrantにより承認される資金額は、利用可能な資金額(もしくは資金が利用可能でない場合、小口融資が承認される可能性がある)、予め認可された金額(例えば、サーバにより設定されるか、セットアップ中にユーザにより設定されるか、資金調達源により設定されるか、もしくは標準金額)、時間による制限(例えば、1時間当たり一定金額のみ、もしくは特定の日時の所定の金額)、機械のあるアイテムの最高金額(もしくは機械内の2つもしくは3つのアイテムに十分な金額)への制限、又はこれら及び他の要因の1つ以上などを含む要因によって決定されることがある。重要なことに、AuthGrantは、資金を利用できるようにするが、取引を認可しない。AuthGrantは、所定の期間内に使用されない場合に期限切れし得るという点で関連有効期限を有することがある。AuthGrantが期限切れするまでの時間の長さは、ユーザの信用性(例えば、ユーザが支払い処理システム又は何らかの既知のプロバイダ(例えば、クレジットカードプロバイダ、銀行、又は信用組合)と古くから関わりがあること、ユーザの信用格付けが高いこと、もしくはユーザのウォレット残高が大きいこと)、予め認可された期間(例えば、サーバにより設定されるか、セットアップ中にユーザにより設定されるか、資金調達源により設定されるか、もしくは標準の期間)、時間による制限(例えば、朝食、昼食、及び夕食中のより長い時間などの特定の日時の所定の期間)、機械もしくは機械で販売される製品もしくはサービスによる制限、機械の近くの他のユーザの数による制限(例えば、混雑している機械の場合、AuthGrantはより早く期限切れになることがある)、又はこれら及び他の要因の1つ以上などを含む要因によって決定されることがある。AuthGrantは、期限切れになるまで、又はその有効性を終了させる何らかの他のイベント(例えば、ユーザがキャンセルする)が発生するまで有効なままである。これは、通常の状況下において、モバイルデバイス150が、ユーザが購入を行うのに十分な時間だけ持てるようにする所定の期間にわたって資金の使用を認可するAuthGrantを保持することを意味する。認可された金額は、仮想「ウォレット」内に保持される「ウォレット残高」と見なされることがある。
【0029】
[0069] 同期:時間は、サーバ130からアダプタモジュール100に同期されることがある。サーバ130は、暗号化されたメッセージで時間情報を送信し、アダプタモジュール100は、メッセージ内に符号化された時間を同期に使用する。
【0030】
[0070] モバイルデバイス-機械支払い処理システム及びそのコンポーネントは、関連するハードウェア、ソフトウェア、及び/又はファームウェア(ハードウェア及び/又はソフトウェアの変形、サブセット、又はハイブリッド)を有することがある。「ハードウェア」という用語は、少なくとも1つの「処理ユニット」、「プロセッサ」、「コンピュータ」、「プログラマブル装置」、及び/又は命令もしくはステップを実行可能な他の既知のもしくは未発見の技術(
図20の処理ユニット750、
図21の処理ユニット850、及び
図22の処理ユニット950として示される)を含む。「ソフトウェア」という用語は、少なくとも1つの「プログラム」、「サブプログラム」、「一連の命令」、又は他の既知のもしくは未発見のハードウェア命令もしくはハードウェア可読プログラムコードを含む。ソフトウェアは、「機械」を生成するためにハードウェア(又はファームウェア)にロードされることがあり、その結果、ソフトウェアがハードウェアで実行されて、本明細書に記載の機能を実施するための構造をもたらす。更に、ソフトウェアは、モバイルデバイス-機械支払い処理システム(及びそのコンポーネント)に、本明細書に記載の特定の様式で機能するように、又は本明細書に記載の一連の動作ステップを実行するように指示するために、ハードウェア(又はファームウェア)にロードされることがある。アダプタモジュール100、モバイルデバイス150、及び支払い受理ユニット120などの「ハードウェア」は、ロードされたソフトウェア(例えば、プログラム及びアプリ)を有することがある。「ハードウェアにロードされる」という語句は、ハードウェアと関連付けられるか、又はハードウェアによりアクセス可能なメモリ(
図20のメモリ760、
図21のメモリ860、及び
図22のメモリ960として示される)にロードされることも含む。「メモリ」という用語は、取り付けられた記憶媒体(例えば、ハードディスクドライブ、ネットワークディスクドライブ、サーバ)、内部記憶媒体(例えば、RAM、ROM、EPROM、フラッシュEPROM、又は任意の他のメモリチップもしくはカートリッジ)、リムーバブル記憶媒体(例えば、CD、DVD、フラッシュドライブ、メモリカード、フロッピーディスク、フレキシブルディスク)、ファームウェア、及び/又は他の既知のもしくは未発見の記憶媒体などを含む任意のタイプのハードウェア(もしくは他の技術)可読媒体(コンピュータ可読記憶媒体とも呼ばれる)を包含するものとして定義される。目的に応じて、メモリは一時的及び/又は非一時的である場合がある。適切な「通信路」、「伝送路」、及び支払い処理システム上の2つの要素(例えば、アダプタモジュール100、モバイルデバイス150、支払い受理ユニット120、ハードウェアシステム及びサブシステム、及びメモリ)間の任意のタイプの接続を含む、信号を伝送する他の手段を介した適切な「メッセージ」、「通信」、「信号」、及び/又は「伝送」(データ、コマンド、ビット、シンボル、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、及び/又はそれらの任意の組み合わせなどを含む様々なタイプの情報及び/又は命令を含む)は、制御及び通信を促進するのに適切なものとして使用されることになる。
【0031】
[0071] 「プログラム」及び「サブプログラム」という用語が、「機械」を生成するためにコンピュータにロードされ得るソフトウェア(すなわち、コンピュータプログラム命令又はコンピュータ可読プログラムコード)として実施され得る一連の命令として定義される結果、コンピュータで実行される命令が、本明細書に記載されるか又は図に示される機能を実施する構造をもたらすことに留意されたい。更に、これらのプログラム及びサブプログラムは、特定の様式で機能するようにコンピュータに指示できるようにコンピュータにロードされることがあり、その結果、命令はフローチャートの1つ以上のブロックにおいて指定される機能を実施する命令構造を含む製品を生成する。プログラム及びサブプログラムはまた、コンピュータにロードされて、コンピュータで実行される命令がフローチャートの1つ以上のブロックにおいて指定される機能を実施するステップを提供するようなコンピュータ実施プロセスを生成するように、一連の動作ステップがコンピュータで又はコンピュータによって実行されることがある。「コンピュータにロードされる」という語句は、コンピュータのメモリ、又はコンピュータと関連付けられたもしくはコンピュータによりアクセス可能なメモリにロードされることも含む。相互作用するが別個であるプログラム及びサブプログラムが、アダプタモジュール100、サーバ130、及びモバイルデバイス150(モバイルアプリケーション140を含む)と関連付けられることがあり、これらのプログラム及びサブプログラムは、より小さいサブプログラムに分割されて特定の機能を実行することがある。
【0032】
[0072] 「メッセージ」、「通信」、「信号」、及び/又は「伝送」という用語は、データ、コマンド、ビット、シンボル、電圧、電流、電磁波、磁場又は磁性粒子、光場もしくは光学粒子、及び/又はそれらの任意の組み合わせなどを含む様々なタイプの情報及び/又は命令を含む。例えば、送信機、受信機、及び送受信機を含む適切な技術を使用して「通信」、「信号」、及び/又は「伝送」を実施することがある。本明細書に記載の「通信」、「信号」、及び/又は「伝送」は、意図される目的に適切な技術を使用することになる。例えば、ハードワイヤード通信(例えば、有線シリアル通信)は、ハードワイヤード通信に適切な技術を使用することになり、短距離通信(例えば、Bluetooth)は、近傍の通信に適切な技術を使用することになり、長距離通信(例えば、GSM、CDMA、Wi-Fiなど)は、距離のある遠隔通信に適切な技術を使用することになる。各タイプの通信に適切なセキュリティ(例えば、SSL又はTLS)が本明細書に含まれる。セキュリティユニット755及び955は、メッセージを保護する技術を含む。セキュリティ技術は、例えば、暗号化/解読技術(例えば、ソフトウェア又はハードウェア)である場合がある。暗号化/解読は、主に一意の秘密鍵を使用して実行されるものとして考察されるが、代替的な戦略としては、公開/秘密鍵を使用して実行される暗号化/解読(すなわち、非対称暗号化)、又は既知のもしくは未発見の他の暗号化/解読戦略などが挙げられる。特に説明されない場合でも、適切な入力機構及び/又は出力機構は、本明細書に記載の技術の一部であると見なされる。アダプタモジュール100の通信ユニット770(
図20に示される)は、アダプタモジュール100のオスアダプタ720及びメスアダプタ730と関連して(例えば、機能通信的に直接又は間接的に)実施され得る適切な入力機構772及び出力機構774を含むものとして示される。モバイルデバイス150の通信ユニット870(
図21に示される)は、サーバ130と通信するための長距離通信(セルラ及び/又はWi-Fi機構などの長距離通信機能872として示される)及びアダプタモジュール100と通信するための短距離通信(Bluetooth機構などの短距離通信機能876として示される)の両方の機構を備える。
【0033】
[0073] 「通信」、「信号」、及び/又は「伝送」に関連して使用される場合、「提供する」又は「提供すること」という用語(及びそれらの変形)は、「伝送する」及び「伝送すること」を含む提供の標準的な意味を包含することを意味するが、「通信」、「信号」、及び/又は「伝送」が「受信される」(取得されることを意味する可能性もある)限り、非従来的な提供に使用される可能性もある。「伝送する」及び「伝送すること」という用語(及びそれらの変形)は、伝送の標準的な意味を含むことを意味するが、「通信」、「信号」、及び/又は「伝送」が「送信される」限り、非従来的な伝送に使用される可能性もある。「受信する」及び「受信すること」という用語(及びそれらの変形)は、受信の標準的な意味を含むことを意味するが、「通信」、「信号」、及び/又は「伝送」が「取得される」限り、取得する非従来的な方法に使用される可能性もある。
【0034】
[0074] 「関連付けられる」という用語は、一体もしくは元の、変更された、取り付けられた、接続された(機能的に接続されることを含む)、近傍に配置された、及び/又はアクセス可能であることを意味するものと定義される。例えば、ユーザインターフェイス(例えば、従来のディスプレイ122(
図19)、タッチスクリーンディスプレイ124(
図19)、キーパッド126(
図19)、ボタン126(
図19、キーパッド126の一部として示される)、キーボード(図示せず)、及び/又は他の入力もしくは出力機構)が支払い受理ユニット120と関連付けられている場合、ユーザインターフェイスは、支払い受理ユニット120に元々あるものである、支払い受理ユニット120に組み込まれる、支払い受理ユニット120に取り付けられる、及び/又は支払い受理ユニット120の近傍にある場合がある。同様に、アダプタモジュール100は、アダプタモジュール100が支払い受理ユニット120に元々あるものである、支払い受理ユニット120に組み込まれる、支払い受理ユニット120に取り付けられる、及び/又は支払い受理ユニット120の近傍にあり得るという点で支払い受理ユニット120と関連付けられることがある。
【0035】
システム概説
[0075]
図5、
図6、及び
図7は、全体でモバイルデバイス-機械支払いシステムの主要コンポーネント及びそれらの間の対話を示している。
【0036】
[0076] 示されるように、アダプタモジュール100は、セキュリティが必要ないように機能的に有線シリアル接続を介して支払い受理ユニット120に双方向接続されている。アダプタモジュール100は、機能的に短距離通信技術(例えば、Bluetooth接続)を介してモバイルデバイス150(及びそれにインストールされているモバイルアプリケーション140)にも双方向接続されている。モバイルデバイス150は、「信頼された」リンクではない(例えば、ユーザによってハッキングされる恐れがある)ため、保護された通信(伝送)のみがアダプタモジュール100とモバイルデバイス150との間で受け渡される。これは、通信をハッキングからセキュアかつ安全に保つ。モバイルデバイス150(及びそれにインストールされているモバイルアプリケーション140)はまた、機能的に、好ましくは適切なセキュリティ(例えば、SSLセキュリティ)を有する長距離通信技術(例えば、Wi-Fi又はセルラ接続)を介してシステム管理サーバ130及び/又は資金調達源サーバ160に双方向接続されている。モバイルデバイス150とシステム管理サーバ130との間のセキュリティは、機密データを含み暗号化されてないことがあるモバイルデバイス150からシステム管理サーバ130への通信を保護するという利点を有する。システム管理サーバ130及び資金調達源サーバ160は、SSLセキュリティを有する有線インターネット接続を介して接続されることがある。システム管理サーバ130は、SSLセキュリティを有する有線インターネット接続を介してオペレータのサーバ170に接続されることがある。購入取引を実施する必要はないが、他の目的(例えば、在庫調べ)のために、オペレータのサーバ170は、ハンドヘルドコンピュータ同期又はセルラ接続を使用して支払い受理ユニット120に接続されることがある。
【0037】
[0077] また、一意の秘密鍵を使用して、暗号化されたメッセージをアダプタモジュール100とシステム管理サーバ130との間でセキュアに送信することがある(ただし、暗号化された伝送は、モバイルデバイス150を通してルーティングされる可能性が最も高くなる)。サーバ130は、各アダプタモジュール100の秘密鍵を記憶し、この鍵は、アダプタモジュール100及びサーバ130のみに知られている。仲介物(特にモバイルデバイス150)にはこの鍵が知らされていない。アダプタモジュール100及びサーバ130がメッセージ(例えば、AuthRequest及びAuthGrant)を伝達するとき、アダプタモジュール100のセキュリティユニット755は、その秘密鍵を用いてメッセージを暗号化し、メッセージをモバイルデバイス150に渡す。モバイルデバイス150(好ましくは、メッセージを解読することができない)は、暗号化されたメッセージをサーバ130に渡す。サーバ130は、アダプタモジュール100のセキュリティユニット955及び一意の秘密鍵を使用してメッセージを解読することができる。サーバ130のセキュリティユニット955は、この同じ一意の秘密鍵を使用して、アダプタモジュール100へのメッセージを暗号化し、メッセージをモバイルデバイス150に送信して、アダプタモジュール100のセキュリティユニット755及び一意の秘密鍵を使用してメッセージを解読することができるアダプタモジュール100に中継する。
【0038】
[0078]
図7は、アダプタモジュール100、モバイルデバイス150、及びシステム管理サーバ130間の自販シーケンス(通信及びメッセージングの左側の番号)を有する特定の通信及びメッセージングを示している。これらの通信について、概略的な流れ図(
図8Aから
図8G)及びフローチャート(
図9Aから
図9E)に関する考察においてより詳細に考察する。
【0039】
[0079]
図5、
図6、及び
図7が例であり、モバイルデバイス-機械支払いシステムの理解を促進することが意図されることに留意されたい。例えば、示される長距離通信技術は、既知の又は未発見の代替的な長距離通信技術に置き換えられることがあり、示される短距離通信技術は、既知の又は未発見の短距離通信技術に置き換えられることがあり、示されるセキュリティは、既知の又は未発見の代替的なセキュリティに置き換えられることがある。示される接続は例であることが意図され、示されていない仲介物が存在する場合がある。示されるコンポーネントは、例えば、多数が含まれ得る場合にモバイルデバイス150(又は機械120、アダプタモジュール100、又はサーバ130)が1つしか示されていないという点で単純化されている。最後に、ステップの順序は変更されることがあり、一部のステップは削除されることがある。
【0040】
アダプタモジュール
[0080]
図11から
図18は、アダプタモジュール100a(一般にアダプタモジュール100と呼ばれる)の図を示す。アダプタモジュール100は、業界標準のマルチドロップバス(MDB)と共に機能するように予め構成されている比較的低コストのハードウェアコンポーネントである。MDB技術を用いない機械では、アダプタモジュール100は、他の直列プロトコルで機能するか、又はスイッチをアクティブ化するように構成又は設計される可能性がある。基本的に、アダプタモジュール100は、他の代替的な支払い形態(例えば、現金)とほぼ同じように支払い受理ユニット120での支払いの確立をシミュレートする。
【0041】
[0081] 示されるアダプタモジュール100は、好ましくは、例えば機械120のMDB内にインライン挿入されるインラインドングルとして使用されるように設計される。MDB技術で使用されるワイヤは、オス及びメス接続端部又はアダプタを使用して周辺機器の取り付けを可能にする。自販機の場合、支払い受領機構(例えば、硬貨機構)の取り付けを可能にするために接続端部又はアダプタを有するワイヤが存在することになる。MDBオスアダプタ700及びMDBメスアダプタ710は(
図17及び
図18に示されるように)分離している場合がある。
図11、
図17及び
図18におけるアダプタモジュール100aは、オスアダプタ720及びメスアダプタ730を有する。アダプタモジュール100aは、ワイヤと直列(「インライン」)に差し込まれる(挿入される)ことがある。例えば、MDBメスアダプタ710は、アダプタモジュール100のオスアダプタ720に接続されることがあり、MDBオスアダプタ700は、アダプタモジュール100のメスアダプタ730に接続されることがある。結果的に生成されるインライン構成を
図19に示す。アダプタモジュール100が、モバイルデバイス-機械支払い処理システムが有効でない(例えば、特定の購入に対して又は単にオフになる)場合に、あたかもアダプタモジュール100がそこに存在しないかのようにMDBが機能し、機械120が正常に機能することができるように、パススルー通信を可能にするように設計されることに留意されたい。
【0042】
ハンズフリーモード
[0082] 手短に言えば、ハンズフリーモードが利用可能な場合、ユーザの視点からは、ハンズフリーモードでは、ユーザは、お気に入りの支払い受理ユニット120に近づいて、支払い受理ユニット120と関連付けられたディスプレイ(例えば、
図19に示されるディスプレイ122又は124)が、利用可能な資金(例えば、ウォレット残高)を示すことに気付くことが可能になる。ユーザは、支払い受理ユニット120と関連付けられた入力機構(例えば、
図19に示されるボタン126又はタッチスクリーンディスプレイ124)を使用して製品又はサービスを選択し、提供されたサービス又は製品を取り出すことになる。
【0043】
[0083] モバイルデバイス150との最初のハンドシェイク中(ユーザが範囲内にいるとき)、アダプタモジュール100は、ハンズフリーモードが利用可能であるか否かをモバイルデバイス150に報告する。利用可能な場合、インストールされているモバイルアプリケーション140は、ユーザがモバイルデバイス150と対話する必要なく、支払い受理ユニット120に自動的に接続する。ユーザは、支払い受理ユニット120のディスプレイ122、124で資金が利用可能であることを認識し、選択を支払い受理ユニット120に入力することによって、あたかも現金が機械120に投入されたかのように購入取引を完了する。支払い受理ユニット120は、製品又はサービスを提供する。選択された後、お釣りはモバイルデバイス150に返却される。
【0044】
[0084] ハンズフリー支払いが利用可能であるかどうかは、他のモバイルデバイス150が範囲内にあるかどうか、他のアダプタモジュール100が範囲内にあるかどうか、任意のアラートがあるかどうか、支払いトリガ閾値が広い分散を有していることで不安定に見えるかどうか、又は支払い受理ユニットのオペレータ(例えば、自販機のオペレータ)が支払い受理ユニット120に対してハンズフリーモードを無効にすることを選んだかどうかなどを含む要因によって決定される。後者の場合、オペレータは、メンテナンスモバイルデバイス150を介して、オペレータのサーバ170及び/又はシステム管理サーバ130を介する場合と同様に無効にすることができる。
【0045】
[0085]
図3は、ハンズフリー支払い機能が利用可能であるかどうかの判断に使用され得る考慮事項、条件、又は要因を示す表である。「お気に入り?」列から始まり、これは、支払い受理ユニット120がお気に入りの機械であるかどうかを示す。好ましくは、ハンズフリー支払い機能は、「お気に入り」の支払い受理ユニット120(例えば、仕事場又は学校にある自販機)での使用にのみ利用可能である。「アラート」列は、ハンズフリー支払い機能が機能すべきではない何らかの理由(例えば、範囲内のユーザ数が多すぎる)があるかどうかに関係し、そのような理由がある場合、ユーザは通知され(警告され)、手動モードを使用してアラートを解決する、及び/又は取引を完了することができることがある。
図3は、ユーザのモバイルデバイス150のモバイルアプリケーション140を使用して機械120からハンズフリー購入を行うことが可能な状況及び可能でない状況を示している。示されるインターフェイスが一例であることに留意されたい。例えば、機能の一部は、自動化又は予め選択されている可能性がある。(左側の列である「タブ」列は、モバイルアプリケーション140上で選択されたタブが「全て」であるか「お気に入り」であるかに関連することに留意されたい。
図10Aから
図10Dは全てこれらのタブを示している。
図3の他の列と異なり、この列は、特にハンズフリー機能よりもアプリケーション140の機能及びビューとの関係が深い。タブは、ユーザが、全ての支払い受理ユニット120の範囲内にいるとき、又は「お気に入り」の支払い受理ユニット120のみの範囲内にいるときに警告されることを望むかを選択できるようにし、アプリケーション140は適切なビューを示すことになる。)
【0046】
[0086] 残高表示:ハンズフリーモードで特に有用な(しかし、手動モード及び/又は複数自販シナリオで利用可能であり得る)モバイルデバイス-機械支払いシステムの任意選択的な機能は、ユーザのモバイルデバイス150が「クレジット」を支払い受理ユニット120に(ハンズフリー支払い又は手動スワイプのいずれかを介して)送るとき、ウォレット残高が支払い受理ユニット120に送信され、次に機械120のディスプレイ122、124でユーザに対して表示されることである。これは特に、ハンズフリーモードにおいて、ユーザがモバイルデバイス150を取り出さず、したがって残高を知らないことがある場合に有益である。また、複数自販シナリオでは、ユーザは残高を計算する必要がなくなる。
【0047】
[0087] 残高が支払い受理ユニット120によって表示されるハンズフリー複数自販シナリオの例は、以下の通りである:ユーザは、仮想ウォレットにドル5.00を有し、その金額が認可された金額である(AuthGrantはモバイルデバイス150に記憶されている)。ユーザは、支払い受理ユニット120に歩み寄り、ハンズフリーモードが有効化され、クレジットが支払い受理ユニット120に(例えば、短距離通信機能を介して)送信されたため、支払い受理ユニット120のディスプレイ122、124にドル5.00が表示される。ユーザは、機械120と対話する(例えば、ボタンを押す)ことによってドル1.50を選択する。アイテム(製品又はサービス)が提供され、「お釣り」が仮想ウォレットに(例えば、短距離通信機能を介して)「返却」される。しかし、ユーザが依然として支払いゾーン102内に立っているため、残りのウォレット残高ドル3.50が支払い受理ユニット120に送信され、ユーザがこの時点でドル3.50の残高を有することを見ることができるように表示される。(認可された資金が機械120にとどまり、取引間にモバイルデバイス150に返送されないことがあることに留意されたい)。ユーザは、ドル1.50のアイテムの購入を決め、取引は通常通り(例えば、機械120と対話することにより)完了する。この時点で、ユーザは依然として支払いゾーン102内に立っており、支払い受理ユニット120のディスプレイ122、124にウォレット残高ドル2.00を見る。ユーザは、他に何も購入することを望まないと決め、単に立ち去る。ユーザが支払いゾーン102から立ち去ると、クレジットは機械120からクリアされるが、ユーザは、モバイルデバイス150に一度も触れなかったにも関わらず、ウォレット残高がドル2.00であることを知りながら離れる。支払い受理ユニット120とアダプタモジュール100との間の(モバイルデバイス150を介した)通信は、取引に付随する会計を処理する。残高(ドル2.00)は、サーバ130に技術的に記憶され、モバイルデバイス150のアプリケーション140において反映されることがある。
【0048】
複数の別個のゾーン
[0088]
図1及び
図2に示されるように、アダプタモジュール100により実行される機能は、別個のゾーンに分割される可能性がある:第1の「通信ゾーン」(例えば、「Bluetooth範囲」106)、第2の「認可ゾーン」104、及び第3の「支払いゾーン」102。支払いゾーン102は、認可ゾーン104よりも小さいか、又は認可ゾーン104に等しい(完全に重なる)。換言すれば、支払いゾーン102は、認可ゾーン104内にあるか、又は認可ゾーン104と同一の広がりを有する。支払いゾーン102は、支払いゾーン102と認可ゾーン104との比率が0.01:1~1:1の範囲となる、認可ゾーン104の部分集合である。必ずしも一定比率である必要はなく、異なる支払い受理ユニット120間、異なるモバイルデバイス150間、異なるユーザ間、及び時間の経過に伴って変化する可能性がある。ゾーン102、104、106は、均一な形状を有するものとして示されているが、形状が変化し得るという点でゾーンが必ずしも均一(又は時間の経過に伴って一定)でない場合がある。例えば、Bluetooth範囲106の形状は、室内の障害物及び支払い受理ユニット120のドア/壁材料などの環境条件に応じて変化することがある。
【0049】
[0089] Bluetooth範囲106(本明細書では「通信ゾーン」と呼ばれることもある):一番外側の範囲は、Bluetooth範囲106(
図1及び
図2に示される)である。これは、アダプタモジュール100がその存在をブロードキャストすることが可能なエリアである。多くの場合、Bluetooth範囲106は、実際のデータがモバイルデバイス150とアダプタモジュール100との間で交換されないという点で受動的な範囲である。Bluetooth範囲106内にある間、モバイルデバイス150はRSSI(受信信号強度インジケータ)をモニタする。
【0050】
[0090] 認可ゾーン104:中間領域は認可ゾーン104(
図1及び
図2に示される)である。これは、RSSIに基づいて計算されるエリアである。既に述べたように、モバイルデバイス150は、Bluetooth範囲106内にある間、RSSIをモニタする。RSSIが範囲内ヒューリスティックに基づいてある所定の閾値に達する場合、モバイルデバイス150は、認可ゾーン104内にあると見なされる可能性がある。認可ゾーン104において、モバイルデバイス150は、アダプタモジュール100への接続(例えば、SSL保護(
図6)を用いたBluetooth接続(
図5))を確立し、アダプタモジュール100にその存在を知らせる。アダプタモジュール100とのハンドシェイクに成功した後、モバイルデバイス150はアダプタモジュール100を登録し、アダプタモジュール100は、モバイルデバイスのネットワーク接続(例えば、SSL保護(
図6)を用いたWi-Fi又はセルラ接続(
図5))を介してサーバ130に認可を要求する。モバイルデバイス150及びアダプタモジュール100が、この時点で非排他的な関係を有することに留意することが重要である。アダプタモジュール100は、認可ゾーン104内にある全てのモバイルデバイス150の登録を収集することがある。
【0051】
[0091] 認可は、ユーザが支払いゾーン102(
図1及び
図2に示される)に入るときの準備として行われる。認可は、設定された期間(例えば、5分)で期限が切れるため、モバイルデバイス150が期限切れ時に認可ゾーン104内に依然としてある場合、アダプタモジュール100は、別の認可を求めこれを受信する。これは、設定された回数にわたって続くことになる(例えば、限度は3回である場合があり、取引を完了せずに長時間にわたって認可ゾーン104に留まり得るモバイルデバイスが多数回認可される事例を制限する)。ユーザが支払いゾーン102に入る前に認可に失敗した場合(例えば、限度に達した場合)、アダプタモジュール100は、モバイルデバイス150が支払いゾーン102に入るときに認可を要求することになる(経験に数秒を追加する)。
【0052】
[0092] 支払いゾーン102:ユーザが支払いゾーン102に入ると、モバイルデバイス150は、アダプタモジュール100の排他的制御を確立する。確立されると、支払いゾーン102内の他のあらゆるユーザは、「待機」ステータスになる。
【0053】
[0093] 支払いゾーン102において、支払い処理システムがハンズフリーモードを有し、ハンズフリーモードにある場合、支払いを自動的にトリガすることができる。そのような場合、モバイルデバイス150は、バックグラウンドモードでアプリケーション140を実行中であり、いかなる明示的なユーザ対話もなくクレジットを支払い受理ユニット120に送信することになる。ユーザは、クレジットを確立するために、あたかも現金が支払い受理ユニット120に投入されたかとほぼ同じように支払い受理ユニット120における取引を完了する。ユーザが(1つ以上の購入を含み得る)取引を完了した後、取引の詳細は、好ましくは別個のメッセージでモバイルデバイス150及びサーバ130に返される。サーバ130へのメッセージは、データの完全性を保証するために、好ましくはアダプタモジュール100の秘密鍵(
図6)を用いて暗号化される。
図7に示されるように、「秘密鍵」で符号化されたメッセージ(暗号化された自販詳細情報)は、好ましくはモバイルデバイス150を介して送信される。モバイルデバイス150へのメッセージは、取引を成立させるためだけに送信されることがある。取引の履歴及び残高は、サーバ130に送信される暗号化メッセージを介してサーバ側で更新される。
【0054】
[0094] 他の動作モードは手動モードである。手動モードでは、ユーザは、モバイルデバイス150を起動し、スワイプして支払いを支払い受理ユニット120に送信することができる。ユーザは、逆向きにスワイプして支払いをキャンセルすることもできる。ハンズフリーモードのように、購入取引は、あたかも現金が支払い受理ユニット120に挿入されたかと同じように支払い受理ユニット120において完了する。モバイルデバイス150は、支払いの送信にのみ使用される。選択は、支払い受理ユニット120において直接行われる。
【0055】
[0095] 自己較正ゾーン閾値:支払い処理システムの主要であるが任意選択的な機能は、自己較正支払いゾーンRSSI閾値である。RSSIは、機械毎、環境毎、及びデバイス毎に異なり得るため、支払いがトリガされる一定の閾値を有することは問題である可能性がある。本明細書において示唆される手法は、自己較正閾値の生成である。ユーザが支払い受理ユニット120と対話しているとき(ユーザが支払い受理ユニット120において選択するときなど)、支払い受理ユニット120は、アダプタモジュール100に通知し、アダプタモジュール100は、RSSI、ユーザモバイルデバイス150のタイプ、加速度計データ、及び他の情報などの状況を記録する。ユーザが支払い受理ユニット120から腕の長さの範囲内にある(ユーザが支払い受理ユニット120と何らかの物理的な対話を行っているため、ユーザは必然的に腕の長さにある)ことを安全に確認することができるのはこの時点である。これは、全取引において、ユーザが支払い受理ユニット120から腕の長さの範囲内にいることが確実であり得る唯一の時点である。
【0056】
[0096]
図4は、ユーザが支払いゾーン102に入るときに関わる簡略化された一連のステップを示す。特に
図4は、クレジットが確立されること(200)(これは、認可ゾーン104で行われることもあるが、行われない場合には支払いゾーン102で処理されることになる)、ユーザが機械を使用して選択すること(202)、機械がアダプタモジュールに選択を通知すること(204)、アダプタモジュールが(任意選択的に)RSSIを記録すること(206)、購入プロセスが続くこと(208)を示している。過去に記録されたRSSIデータを使用して、アダプタモジュール100は、様々な数学的モデルを使用していくつかの「平均」RSSIの1つを計算する。この「平均」は、従来の平均、移動平均、加重平均、メジアン、又は他の同様の集約関数である可能性がある。アダプタモジュール100は、関数を実行する前に過去データを事前処理して、上部及び下部データポイント、疑わしいデータポイントなどを削除することなどができる。
【0057】
[0097] 任意選択的に、モバイルデバイス150とアダプタモジュール100とのハンドシェイク中、アダプタモジュール100に送信される情報は、例えば、モバイルデバイス150のモデルを含みことがある。モバイルデバイスのモデルに関する受信情報を使用して、アダプタモジュール100は、各モバイルデバイスモデルに1つずつ、複数の支払い閾値を生成することができる。これは、異なるタイプのBluetooth無線に固有であり得る差異を許容する。この方法の代替手段は、アダプタモジュール100がベースライン支払いゾーン閾値をブロードキャストすることであり、モバイルデバイス150は、その特定のモデルタイプに基づいてこのベースラインからのオフセットを使用することができる。支払いゾーン閾値(又はベースラインオフセット)は、特定のタイプのモバイルデバイス(例えば、製造業者、オペレーティングシステム、もしくはコンポーネント部品による)、モバイルデバイスのモデル、又は個々のモバイルデバイス(各ユーザに固有)に固有である可能性がある。
【0058】
[0098] 支払いゾーン閾値が較正されている典型的なシナリオでは、アダプタモジュール100は、任意のモバイルデバイス150が認可ゾーン104内にあると見なす閾値と共にその存在を宣伝する。これは、アダプタモジュール100からモバイルデバイス150への単方向通信である。モバイルデバイス150が認可ゾーン104に入ると、アダプタモジュール100とモバイルデバイス150との間に確立されているハンドシェイクがある。このハンドシェイク中、モバイルデバイス150は、そのモデル情報をアダプタモジュール100と共有することができ、アダプタモジュール100は、その特定のモデルの支払いゾーン102の閾値を返すことができる。
【0059】
[0099] 任意選択的に、支払いゾーン閾値の較正に加えて、アダプタモジュール100は、自己較正モデルを認可ゾーン104に適用して、認可ゾーン閾値を較正することができる。支払いゾーン閾値と同様に、認可ゾーン閾値は特定のタイプのモバイルデバイス、モバイルデバイスのモデル、又は個々のモバイルデバイスに固有である可能性がある。このシナリオでは、アダプタモジュール100は、デバイスタイプによって複数の閾値をブロードキャストし、モバイルデバイス150は、いずれの閾値を適用するかを決定することになる(又は代替的にベースラインをブロードキャストすることになり、モバイルデバイス150は、そのデバイスモデルに基づいてオフセットを使用する)。このシナリオでも、認可ゾーン104は単方向通信である。
【0060】
[00100] 任意選択的に、(支払いゾーン及び/又は認可ゾーンにおいて)計算される閾値と共に、安全マージンを追加して、ユーザが範囲内にいるが閾値に達しなかったことがあるためにモバイルデバイス-機械支払い処理システムがそれを認識しないシナリオを最小限に抑えることができる。例えば、機械4567でiPhone(登録商標)5に計算されたRSSIが-68dbである場合、モバイルデバイス-機械支払い処理システムは、-5dbの安全マージンを追加し、-73dbに閾値を確立することがある。それにより、ユーザの電話が-73db以上のRSSIでアダプタモジュール100と通信している場合、モバイルデバイス-機械支払い処理システムは、モバイルデバイス150が支払い受理ユニット120を信用することを可能にすることになる。安全マージンは、サーバ130で設定されアダプタモジュール100にダウンロードされるか、又はモバイルデバイス150で設定されるか、又はアダプタモジュール100自体で設定される可能性がある。
【0061】
[00101] 任意選択的に、支払いゾーン閾値においてモバイルデバイス150は、他のデータを使用して、支払い受理ユニット120の排他的制御をいつキャンセルするかを決定し、ユーザが支払いゾーン102から出て移動しているときを特定することができる。外部データは、モバイルデバイス150からの加速度計データを含む可能性がある。そのデータを使用して、モバイルデバイス150は、ユーザが支払い受理ユニット120の前に比較的じっと立っているか、又はユーザが動いている場合に、実際に支払い受理ユニット120から立ち去ろうとしているかを判断することができる。
【0062】
信号非可用性への適応
[00102] 本明細書に記載のモバイルデバイス-機械支払い処理システムは、モバイルデバイス150の短距離通信技術(例えば、Bluetooth機構)(
図21に短距離通信機能876として示される)及びモバイルデバイス150の長距離通信技術(例えば、セルラ及び/又はWi-Fi機構)(
図21に長距離通信機能872として示される)を使用する。短距離通信機能876は、アダプタモジュール100の短距離通信技術(例えば、Bluetooth機構)(
図20に短距離通信機能776として示される)と通信する。長距離通信機能872は、サーバ130の長距離通信技術(例えば、セルラ及び/又はWi-Fi機構)(
図22に長距離通信機能972として示される)と通信する。モバイルデバイス150(モバイルアプリケーション140を備える)は、(支払い受理ユニット120と関連付けられた)アダプタモジュール100とサーバ130との間の通信の橋渡しとして機能する。このプロセスは、本明細書に記載されており、支払いゾーン102内にセルラ又はWi-Fiカバレッジがある場合に適切に機能する。
【0063】
[00103] 支払いゾーン102内にセルラ又はWi-Fiカバレッジがない場合の1つのオプションは、認可ゾーン104又はBluetooth範囲106内にセルラ又はWi-Fiカバレッジがあるかどうかを特定することである。ある場合、ゾーン102、104、106のサイズを適合させることができ、タイミングを適合させることができる。例えば、モバイルデバイス150が支払いゾーン102内のセルラ又はWi-Fiカバレッジに問題を検出する場合、ユーザは、モバイルデバイス150を他のゾーンに運び込みことができ(又はモバイルデバイス150は、短距離通信技術を使用して認可ゾーン104又はBluetooth範囲106内の他のモバイルデバイス150と通信することができ)、それらのゾーンがセルラ又はWi-Fiカバレッジを有するかどうかを特定することができる。それらのゾーンがカバレッジを有する場合、モバイルデバイス150とサーバ130との通信が進められる(モバイルデバイス150が機械120からより離れている場合に先に行われる)か、又は遅延される(モバイルデバイス150が機械120からより離れている場合に後に行われる)可能性がある。これは、ゾーン102、104、106のサイズ又は形状の変更と考えられる可能性がある。ユーザが購入を行う機会を有する前に資金の認可(AuthGrant)が期限切れしないように、タイミングも調整される必要があることになる。これは、ユーザが機械120から離れて移動し、再びセルラ又はWi-Fiカバレッジを有した後に、サーバ130への残高更新が行われ得ることも意味する。
【0064】
[00104] いずれのゾーン102、104、106内にもセルラ又はWi-Fiカバレッジがない場合の別のオプションは、ユーザがゾーン外にいる間にセルラ又はWi-Fiカバレッジがある場所で認可を取得することである。これは、例えばセルラ又はWi-Fiカバレッジを有しない(又はめったに有しない)アダプタモジュール100が備えられた支払い受理ユニット120がある場所に(恐らくお気に入りの支払い受理ユニット120に)行くことになることをユーザが分かっている場合に行われることがある。ユーザは、モバイルアプリケーション140を使用して、所与の範囲内(例えば、50マイル以内)又は所与の場所にある(例えば、キャンプ場もしくは特定の離れた都市にある)支払い受理ユニット120に問い合わせて、ゾーン102、104、106内にセルラ又はWi-Fiカバレッジがあるかどうかを判断することもある。次にユーザは、モバイルアプリケーション140を使用してサーバ130から事前認可を取得することができる。ここでも、ユーザが購入を行う機会を得る前に資金の認可(AuthGrant)が期限切れしないように、タイミングも調整する必要がある。これは、ユーザが機械120から離れて移動し、再びセルラ又はWi-Fiカバレッジを有した後、サーバ130の残高更新が行われ得ることも意味する。このオプションを実施する能力を有するモバイルデバイス-機械支払いシステムは、支払い受理ユニット120の近傍にいかなるネットワーク接続も必要とせずにキャッシュレス決済を受け入れることが可能になる。一部の実施例では、本明細書に記載のモバイルデバイス-機械支払い処理システムは、信号が利用可能でない離れた場所に位置し、したがってキャッシュレス決済を受け入れることができる。
【0065】
[00105] 特定の支払い受理ユニット120のいかなるゾーン102、104、106内にもセルラ又はWi-Fiカバレッジがないことがある状況の一例として、ユーザ(ティーンエイジャー)は、サマーキャンプに参加するためにセルラ又はWi-Fiカバレッジがない離れた場所に移動している場合がある。キャンプは、いくつかの支払い受理ユニット120(例えば、使用料金が必要な専用「ホットスポット」を生成する機械、自販機、又は自転車、カヤック、もしくはバスケットボールなどの機器をレンタルするための機械)を有することがある。キャンプ施設は、モバイルデバイス-機械支払いシステムが利用可能であることを親に通知することがある。親は家に居ながら、認可すべき特定の金額(日毎に一定額を小出しするか、又は機械のタイプもしくは場所に限定することができる)の認可を取得し、ユーザのモバイルデバイス150に「ロード」し、認可が一定期間又は特定の日付まで期限切れしないことを指定することができる。その後、キャンプにいる間、ユーザは、本明細書の他の箇所で考察したのと同様に、モバイルデバイス150のモバイルアプリケーション140を使用することができる。短距離通信が(機械120と関連付けられた)アダプタモジュール100とユーザのモバイルデバイス150との間の通信に使用されることがある。
【0066】
[00106] 本明細書に記載の支払い処理システムの、目立たないが強力な1つのコンポーネントは、認可ゾーン104においてのみ、及びAuthRequestを送信しAuthGrantを受信するのに必要な期間のみ長距離通信機能(例えば、インターネット又はセルラネットワーク接続)を必要とする。有効なAuthGrantがモバイルデバイス150によって受信されると、長距離通信機能(例えば、インターネット又はセルラネットワーク接続)は、AuthGrantが有効である(期限が切れてない)限り、支払いゾーン102内でモバイルデバイス150にもアダプタモジュール100にも必要とされない。このメカニズムにより、システムは、真正取引を(一時的に)オフラインモードでシームレスに処理することができ、保留中の承認及び取引メッセージは、ネットワーク接続が取り戻されたときに帳簿記入及びクリーンナップを実行する。上記の代替手段は、モバイルデバイス150がサーバ130と通信することができる任意の場所を含むように認可ゾーンを人工的に拡大する独自の方法を提供する。
【0067】
複数ユーザ解決
[00107]
図2に示されるように、1つの実際のシナリオでは、複数のユーザがゾーン102、104、106に存在する。
図2に示されるように、ユーザ1、2、及び3は、機械120の近くの支払いゾーン102におり、ユーザ5及び6は、認可ゾーン104とBluetooth範囲106との間に位置するように示され、ユーザ4及び7は、Bluetooth範囲106内におり、ユーザ10は、Bluetooth範囲106の縁部に位置し、ユーザ8及び9は、Bluetooth範囲106の外部に位置する。一部の実施例では、モバイルデバイス-機械支払い処理システムは、複数ユーザに関連する問題を管理及び解決する。
【0068】
[00108] ユーザ4及び7はBluetooth範囲106内におり、ユーザ10はBluetooth範囲106に入りつつあるか、又はBluetooth範囲106を出つつある。Bluetooth範囲106内において、ユーザのモバイルデバイス150は、アダプタモジュール100の宣伝を見ることができる。このゾーンでは、モバイルデバイス150は好ましくは接続を開始しない。アダプタモジュール100は、好ましくはBluetooth範囲106内のユーザに気付いていない。アダプタモジュール100がしている全てのことは、Bluetooth範囲106内に存在し得る任意の複数のユーザにその存在を通知することである。
【0069】
[00109] アダプタモジュール100は、(
図2においてユーザ5及び6として示される)ユーザ(及びユーザの各モバイルデバイス150)が認可ゾーン104に入るときにユーザの記録を開始する。この時点では、モバイルデバイス150により開始されたアダプタモジュール100に対する非排他的な接続がある。(例えば、認可の取得に必要な情報を交換し、任意選択的に、認可ゾーン閾値の自己較正に必要な情報を記録するための)ハンドシェイクを行い、モバイルデバイス150は、認可(例えば、AuthRequestを送信し、AuthGrantを受信する)のためにサーバ130と交信する。アダプタモジュール100は、AuthGrantを要求し受信した全てのモバイルデバイス150を登録する。アダプタモジュール100は、認可ゾーン104に入る任意の他のモバイルデバイス150とも通信し続ける。初期交信後、アダプタモジュール100は、アダプタモジュール100にいつ再チェックインすべきかについての猶予遅延をモバイルデバイス150に提供し、他のモバイルデバイス150がアダプタモジュール100と通信する機会を与えることがある。
【0070】
[00110] 支払いゾーン102にユーザが1人しかいない場合、購入取引が実行されることがある。支払いゾーン102に複数のユーザがいる場合、モバイルデバイス-機械支払いシステムは、この状況に対処しなければならない。
【0071】
[00111] 支払いゾーン102に複数のユーザがいる状況に対処するための任意選択的な1つの解決策は、支払いゾーン102内のユーザをキューに入れることである。任意のモバイルデバイス150が支払いゾーン102に入ると、アダプタモジュール100は、特定のモバイルデバイス150の排他性を(例えば、先着順方式で)確立する。しかしながら、技術的にはアダプタモジュール100は、モバイルデバイス150への排他的接続を確立していない。アダプタモジュール100は、依然としてラウンドロビンポーリングを実行し、他のモバイルデバイス150と通信し、それらに宣伝することができる。代わりに、アダプタモジュール100は、RSSI及び時間(例えば、誰が最初か、及び認可が期限切れしているかどうか)により優先順位が付けられたキューを確立し、他のモバイルデバイス150に待機するように通知(例えば、アラート)する。RSSIに関係がある場合、最も早期の有効な(期限が切れていない)認可が優先する。そうでない場合、例えば最も強い平均RSSIが優先される。好ましくは、キューは、RSSIの静的測度ではなく、キュー内の一定期間にわたる平均測度である。これは、ユーザがキューの中を歩き回っていることがあり、まさに前のユーザが終えつつあるときに支払い受理ユニット120に現れるシナリオを補完する。別のユーザも支払いゾーン102内におり、その間中そこに立っていたが、より新しい認可を得ることがある場合に、そのユーザは優先する可能性がある。
【0072】
[00112] アダプタモジュール100は、どのユーザが支払いゾーン102の支払い受理ユニット120の前にいるかをアダプタモジュール100が正確に判断できないときはいつでも、ハンズフリー支払いを無効にすることになる。モバイルデバイス150は、アラートをユーザに送信し、ユーザはスワイプして支払う(手動モード)を使用することができる。支払いゾーン102内の全ユーザは「接続中」を示すことになり、そのとき支払い受理ユニット120に対してスワイプ支払いをした最初のユーザは他のユーザを締め出す。
【0073】
複数モジュール解決[00113] 複数のモジュールが存在するシナリオでは、ユーザがどの支払い受理ユニット120の前にいるのかを判断することが難しい可能性がある。一部の実施例では、本明細書に記載のモバイルデバイス-機械支払い処理システムは、アダプタモジュール100がBluetoothを介して範囲内の他のアダプタモジュール100と通信できるようにする。各ユーザは、特定の支払い受理ユニット120の認可承諾を受信する。これは、同じ認可ゾーン104内に複数のアダプタモジュール100がある場合に、ユーザに複数の認可承諾があることになることを意味する。ユーザが支払いゾーン102に入るとき、支払いゾーン102が重複する場合、ユーザがどの支払い受理ユニット120の前にいるのかを識別することが難しい可能性がある。
【0074】
[00114] この問題を解決するために、ユーザが支払いゾーン102に入るとき、アダプタモジュール100は互いに通信し合って、特定のユーザのRSSIを(ユーザのモバイルデバイス150からの信号に基づいて)特定し、どのアダプタモジュール100(及び関連付けられた支払い受理ユニット120)がユーザに近いかを三角法で決定する。任意選択的に、モジュール間通信は、ユーザによる排他的接続の確立を1つの支払い受理ユニット120にのみ制限することができる。
【0075】
[00115] 任意選択的に、ユーザが支払い受理ユニット120に接続するとき、モバイルデバイス150は、メッセージを支払い受理ユニット120に送信し、一時的に支払い受理ユニット120のディスプレイ122、124でユーザに表示することができる。例えば、モバイルデバイス150は、ユーザが支払いゾーン102内にいるとき、購入前に(ハンズフリーモード又は手動モードで)どの支払い受理ユニット120にユーザが接続されているかが明らかになるように、所定の期間(例えば、1秒~3秒)にわたってメッセージ(例えば、「接続中」又は「フレッドのモバイルデバイスが接続中」)を支払い受理ユニットのディスプレイ122、124に送信することができる。
【0076】
[00116] 加えて、ユーザが手動モードにある場合、モバイルデバイス150は、視認のために支払い受理ユニット120の視覚的表示(例えば、支払い受理ユニット120の写真及び/又は支払い受理ユニットID)を(例えば、
図10Aから
図10Dに示されるようなタッチスクリーン152上に)表示することができる。ユーザが手動モードにある場合、ユーザは、支払い受理ユニット120を手動で変更することができる。
【0077】
説明のためのシナリオ
[00117]
図7、
図8Aから
図8G、及び
図9Aから
図9E(並びに他の図)を使用して、本明細書に記載のモバイルデバイス-機械支払い処理システムの詳細なシナリオを理解することができる。通信及びステップの流れについて、これら(及び他の図)を参照して以下に大まかに説明する。代替的なシナリオが、例えば実行されるステップの順序変更を含み得ることに留意されたい。
【0078】
[00118] 自販取引に先立って、ユーザはモバイルアプリケーション140をモバイルデバイス150にダウンロードし、アカウントを作成し、例えば資金調達源サーバ160を介して資金調達源を構成する。資金調達源は、例えばデビットカード、クレジットカード、キャンパスカード、報償ポイント、銀行口座、決済サービス(例えば、PayPal(登録商標))、又は他の支払いオプションもしくは既知のもしくは未発見の支払いオプションの組み合わせである場合がある。資金調達源は、本明細書に記載のエコシステムに統合されている従来及び/又は非従来の支払い源である場合があり、資金源として間接的に使用されることがある。資金調達源からの資金は、好ましくは、AuthRequestがサーバ130によって受信されたときにサーバ130が購入のための資金を認可するAuthGrantを送信することができるようにサーバ130に保持されている。
【0079】
[00119] ユーザは、学校や仕事場にある自販機などの定期的に訪れ得る1つ以上の「お気に入りの」アダプタモジュール100(支払い受理ユニット120に対して1対1の関係を有する)を指定することができる。お気に入りのアダプタモジュール100は、予めフィルタリングされたリストに表示され、ハンズフリー支払いなどの追加の豊富な機能を可能にする。
【0080】
[00120] 支払い受理ユニット120は、Bluetooth(又は他の「信号」、「通信」、及び/又は「伝送」)を介してその可用性を常に宣伝しているアダプタモジュール100を備えることがある。この進行中の宣伝及びアダプタモジュールのスキャンを
図8Aに示す。示されるように、モバイルデバイス150は、Bluetooth(又は他の「信号」、「通信」、及び/又は「伝送」)範囲内の任意のアダプタモジュール100について継続的にスキャンしている。ユーザがアダプタモジュール100の範囲内にいるとき、モバイルデバイス150は、所定の「認可ゾーン」閾値が得られるまで信号強度を追跡及びモニタする。
【0081】
[00121]
図8B及び
図9Aは全体として、認可ゾーン閾値に達したときに、モバイルデバイス150が認可ゾーンに入り(ブロック302)、アダプタモジュール100を登録することを示している。モバイルデバイス150はサーバ130に接続する(ブロック304)。モバイルデバイス150のアプリケーション140は、認可要求(AuthRequest)を作成し、適切な通信技術(例えば、GSM、CDMA、Wi-Fiなど)を使用してAuthRequestをサーバ130に渡す(ブロック306)。サーバ130は、特定のアダプタモジュールの秘密鍵で暗号化された認可承諾(AuthGrant)で応答する(ブロック306)。この認可トークンは、少なくともユーザ識別子(ID)、(アダプタモジュール100の)装置ID、認可金額、及び有効期間を含むことがある。モバイルデバイス150は、AuthGrantをサーバ130から受信し、モバイルデバイス150がアダプタモジュール100に対して支払いを行う準備ができるまで保持する。モバイルデバイス150は、いくつのアダプタモジュール100が範囲内にあるかに応じて1つ以上であり得る保留中の全てのAuthGrantを収集する。期限が切れる未使用のAuthGrantは、モバイルデバイス150及びサーバ130からパージされる。AuthGrantがサーバ130及びアダプタモジュール100のみが知るアダプタモジュールの一意の秘密鍵で暗号化されているため、モバイルデバイス150がAuthGrantを読み取れないことに留意することが重要である。これは、アダプタモジュール100がサーバ130によって発行されているAuthGrantのみを信用し、AuthGrantは、モバイルデバイス150によって、又はサーバとアダプタモジュール100との間の何らかの他の存在によって読み取られたり変更されたりする可能性がないため、システムにおけるセキュリティの好ましい主要要素を提供する。追加のモバイルデバイス150が認可ゾーン104に入ることがある(ブロック308)。
【0082】
[00122] ユーザは、特定のアダプタモジュール100に近づくとき、支払いゾーン102に入り、モバイルデバイス150により実行されるヒューリスティックに基づいてイベント閾値がトリガされる。ブロック310及び312は、認可ゾーン104からのモバイルデバイス150が支払いゾーン102に入るのを待つループステップを示す。ユーザが支払いゾーン102に入らずに認可ゾーン104を出る場合、アダプタモジュール100は、その存在の宣伝に戻る(ブロック300)。
【0083】
[00123]
図8C及び
図9Bは全体として、支払いゾーンに入りつつあるユーザを示している。モバイルデバイス150は、期限が切れてない有効なAuthGrantを有することを確認する。AuthGrantが良好でない場合、AuthGrantが再び要求されることがあり、認可要求プロセスが繰り返される(ブロック315)。AuthGrantが良好である場合、モバイルデバイス150は、有効なAuthGrant(ウォレット残高を含む)をアダプタモジュール100に送信し(ブロック322)、取引を開始する。モバイルデバイス150は、ハンズフリーモードがサポートされている(及びデバイスがお気に入りであり(ブロック318)、支払いゾーン102内にデバイスが1つしかなく(ブロック318)、(任意選択的に)認可ゾーン104内にユーザが1人しかいない(ブロック320)場合、特定のユーザ対話なしにAuthGrantを自動的に発行することがある。これらの要因のいずれかが存在しない場合、モバイルデバイス150は、ユーザが取引を手動で開始することを促す、及び/又はユーザが取引を手動で開始するのを待つことになる(ブロック324)。
【0084】
[00124]
図8D、
図9C、及び
図9Dは全体として、取引プロセスを示している。
図9Cに示されるように、アダプタモジュール100は、自販を妨げることになる任意の問題があるかどうかを判断するために、ユーザがアプリ内でキャンセルしたか(ブロック326)、ユーザが立ち去ったか(ブロック328)、硬貨返却が押下されたか(ブロック330)、所定の時間を超える時間が経過したか(ブロック332)を含む一連の質問に目を通す。これらの質問のいずれかへの答えが「はい」である場合、取引は進まない。これらの質問の全てへの答えが「いいえ」である場合、ユーザは、現金又はクレジットが支払い受理ユニット120に提供された場合と比較して同じ又は同様のやり方で、支払い受理ユニット120上で選択を行う(ブロック334)。機械120は、自販可能な場合(ブロック336)、製品をリリースしようとする。自販に失敗した場合(ブロック338)、機械によって失敗が報告され(ブロック340)、クレジットは仮想ウォレットに返却される(ブロック342)。自販に成功した場合(ブロック338)、機械によって成功が報告される(ブロック344)。換言すれば、取引が完了した後、アダプタモジュール100は、モバイルデバイス150に取引の詳細情報と、モバイルデバイス150を介してサーバ130に送信すべき自販詳細情報を含む暗号化パケットとを返す。任意選択的に、アダプタモジュール100は、支払い受理ユニットの健全性、販売データ、エラーコードなどの取引に直接関連しない追加情報を渡すことができる。
【0085】
[00125]
図8D及び
図9Eは全体として複数自販機能を示している。機械の複数自販機能が有効化されており(ブロック350)、かつ複数自販限度に達していない場合、プロセスは、ユーザが支払いゾーン内にいるかどうかの質問(
図9Aのブロック310)に戻る。機械の複数自販機能が有効化されていない(ブロック350)か、又は複数自販限度に達している場合、ウォレットは自販金額だけ減らされ、「お釣り」が仮想ウォレットに返却され(ブロック354)、プロセスは終了する(ブロック356)。
【0086】
[00126]
図8Eは、例示的なログインプロセスの概略的な流れ図である。
図8Fは、例示的なブートアッププロセスの概略的な流れ図である。
図8Gは、例示的な口座チェック/更新プロセスの概略的な流れ図である。
【0087】
[00127] 図のいくつかは、方法及びシステムを示すフローチャートである(例えば、
図9Aから
図9E)。これらのフローチャートの各ブロック、これらのフローチャートの全てもしくは一部のブロックのコンポーネント、及び/又はこれらのフローチャート内のブロックの組み合わせが、ソフトウェア(例えば、コーディング、ソフトウェア、コンピュータプログラム命令、ソフトウェアプログラム、サブプログラム、又は他の一連のコンピュータ実行可能もしくはプロセッサ実行可能命令)によって、ハードウェア(例えば、プロセッサ、メモリ)によって、ファームウェアによって、及び/又はこれらの形態の組み合わせによって実施され得ることが理解される。一例としてソフトウェアの場合、コンピュータプログラム命令(コンピュータ可読プログラムコード)が機械を生成するためにコンピュータにロードされることがあり、その結果、コンピュータで実行される命令は、フローチャートの1つ以上のブロックにおいて指定される機能を実施するための構造をもたらす。これらのコンピュータプログラム命令はメモリに記憶されることもあり、特定の様式で機能するようにコンピュータに指示することができるため、メモリに記憶されている命令は、フローチャートの1つ以上のブロックにおいて指定される機能を実施する命令構造を含む製品を生成する。コンピュータプログラム命令は、コンピュータで実行される命令がフローチャートの1つ以上のブロックにおいて指定される機能を実施するためのステップを提供するように、コンピュータにロードされて、コンピュータで又はコンピュータにより一連の動作ステップを実行させてコンピュータ実施プロセスを生成することもある。したがって、フローチャートのブロックは、指定される機能を実行するためのステップ、構造、及び/又はモジュールの組み合わせをサポートする。フローチャートの各ブロック、及びフローチャート内のブロックの組み合わせが、本発明の範囲に影響を及ぼすことなく分割され得る、及び/又はフローチャートの他のブロックと結合され得ることも理解される。この結果、例えば、コンピュータ可読プログラムコードが全体的に1つのメモリに記憶されること、又はコンピュータ可読プログラムコードの様々なコンポーネントが2つ以上のメモリに記憶されることがある。
【0088】
追加の実施例
[00128]
図23は、一部の実施例に係る支払い処理システムにおいて取引を実行するユーザを認証するプロセス1000の概略的な流れ図を示している。一部の実施例では、支払い処理システムは、1つ以上の支払いモジュール100(例えば、それぞれが商品及び/又はサービスを提供するための自動小売り機などの各支払い受理ユニット120と関連付けられている)、1つ以上のモバイルデバイス150(例えば、それぞれがフォアグラウンドプロセス又はバックグラウンドプロセスとして支払い処理システムのためのアプリケーション140をそれぞれ実行する)、及びサーバ130を含む。サーバ130は、支払い処理システムを管理するものであり、場合によっては、1つ以上の支払いモジュール100を供給、操作、及び/又は製造するエンティティと関連付けられている。簡潔にするために、プロセス1000は、支払い処理システムにおける各支払いモジュール100及び各モバイルデバイス150に関して説明される。
【0089】
[00129] 支払いモジュール100は、短距離通信機能(例えば、BLE)を介して情報のパケット(本明細書では「宣伝情報」と呼ばれることもある)をブロードキャストする(1002)。情報のパケットは、少なくとも認可コード及び支払いモジュール100と関連付けられている識別子(モジュールID)を含む。一部の実施例では、情報のパケットは、支払いモジュール100のファームウェアバージョンと、支払いモジュール100及び/又は支払い受理ユニット120の1つ以上の状態に対応する1つ以上のステータスフラグとを更に含む。支払いモジュール100によってブロードキャストされるパケットに含まれる情報について、
図24Aを参照して更に後述する。
【0090】
[00130] 一部の実施例では、支払いモジュール100は、X秒(例えば、100ms、200ms、500msなど)毎に一意の認可コードを送出する。一部の実施例では、一意の認可コードは、ランダム又は擬似ランダムに生成される数字である。一部の実施例では、支払いモジュール100は、受信した認可承諾トークンが、記憶されている認可コードの1つと一致するまで、ブロードキャストされた認可コードを記憶する。一部の実施例では、支払いモジュール100は、ブロードキャストされた認可コードを所定の時間(例えば、Y分)にわたって記憶し、その時間後、認可コードは有効期限が切れ、削除される。一部の実施例では、認可コードは、サーバ130に知られているが、支払いモジュール100に一意の共有秘密鍵で暗号化される。一部の実施例では、支払いモジュール100は乱数を初期化し、したがって、認可コードはこの乱数からの順次カウントである。かかる実施例では、支払いモジュール100は、あらゆる有効な認可コードを記憶する必要なく、最も早期の有効な(期限が切れていない)カウンタを記憶する。一部の実施例では、ブロードキャストされる情報パケットに含まれる認可コードは、ランダムもしくは擬似ランダムに生成される数字又は連番のハッシュ値である。
【0091】
[00131] モバイルデバイス150は、ブロードキャストされた情報パケットを受信し、モバイルデバイス150は、長距離通信機能(例えば、GSM、CDMA、Wi-Fiなど)を介して認可要求をサーバ130に送信する(1004)。例えば、支払い処理システムと関連付けられているアプリケーション140が、モバイルデバイス150でフォアグラウンド又はバックグラウンドプロセスとして実行されている。この例では、アプリケーション140は、モバイルデバイス150が支払いモジュール100の通信ゾーン(すなわち、BLE範囲)内にあるときに、ブロードキャストされた情報パケットを受信し、モバイルデバイス150が支払いモジュール100の認可ゾーン内にあるときに、認可要求をサーバ130に自動的に送信するか、又は認可要求をサーバ130に送信する。一部の実施例では、ブロードキャストされる情報パケットは、モバイルデバイス150(又はアプリケーション140)が、支払いモジュール100の認可ゾーン内に入る前に観測する必要があるベースラインRSSIを示すベースライン認可ゾーン閾値(すなわち、認可ゾーン基準)を含む。一部の実施例では、モバイルデバイス150(又はアプリケーション140)は、モバイルデバイス150の短距離通信機能(例えば、BLE無線/送受信機)の強度及び/又は受信に基づいて、ベースライン認可ゾーン閾値をオフセットする。一部の実施例では、認可要求は、少なくともブロードキャストされた情報パケットに含まれていた認可コード、モバイルデバイス150のユーザ又はモバイルデバイス150のユーザがアプリケーション140にログインするユーザアカウントと関連付けられた識別子(ユーザID)、及び支払いモジュール100と関連付けられた識別子(モジュールID)を含む。一部の実施例では、認可要求に含まれる認可コードは、平文のハッシュ値である。認可要求については、
図24Bを参照して更に後述する。
【0092】
[00132] 認可要求を受信した後、サーバ130は認可要求を処理する(1006)。一部の実施例では、サーバ130は、支払いモジュール100に対応する共有秘密鍵で認可要求に含まれる認可コードを解読する。一部の実施例では、サーバ130は、認可要求内のユーザIDと関連付けられたユーザが、支払い処理システムのそのユーザの口座に、認可要求内のモジュールIDに対応する支払いモジュール100と関連付けられている機械120において取引を実行するのに十分な資金を有しているかどうかを判断する。
【0093】
[00133] サーバ130は、長距離通信機能(例えば、GSM、CDMA、Wi-Fiなど)を介して認可承諾トークンをモバイルデバイス150に送信する(1008)。一部の実施例では、サーバ130は、支払いモジュール100に対応する共有秘密鍵で認可要求内の認可コードを解読できない(例えば、認可コードが破損しているか、又はハッキングされている)場合に、認可承諾トークンを送信しない。一部の実施例では、サーバ130は、認可要求内のユーザIDと関連付けられたユーザが口座に十分な資金を有しない場合、認可承諾トークンを送信しない。一部の実施例では、認可承諾トークンに加えて、サーバ130は、支払いモジュール100に対応する共有秘密鍵で暗号化されていないメッセージをモバイルデバイス150に直接送信する。メッセージを受信した後、モバイルデバイス150は、不十分な残高又は認可拒否などの適切なメッセージをユーザに表示する。一部の実施例では、サーバ130は、ゼロに等しい金額の認可承諾トークンを送信し、その場合、支払いモジュール100は、不十分な残高又はクレジット(これらに限定はされるものではない)を含む任意の数の理由で生じ得る認可の拒否又は失敗としてこれを解釈する。
【0094】
[00134] モバイルデバイス150は、認可承諾トークンを受信し、続いてトリガ条件を検出する(1010)。一部の実施例では、モバイルデバイス150(又はアプリケーション140)は、ハンズフリーモード(例えば、支払いモジュール100の支払いゾーンに入ったとき)又は手動モード(例えば、支払いモジュール100と関連付けられた支払い受理ユニットとの取引を開始するために、アプリケーション140のユーザインターフェイスと対話すること)を介してトリガ条件を検出する。
【0095】
[00135] 一部の実施例では、未使用の認可承諾(例えば、トリガ条件がなかった場合又は期限が切れていた場合)は、未使用認可承諾に対応するキャンセルメッセージをサーバ130に送信することによって、モバイルデバイス150によってキャンセルされる。一部の実施例では、サーバ130は、モバイルデバイス150に送信された認可が未処理の認可承諾の取引情報又はキャンセルを受信するまで、モバイルデバイス150に送信される認可承諾を拒絶するか、又は認可承諾の数を制限する。
【0096】
[00136] トリガ条件の検出に応答して、モバイルデバイス150は、短距離通信機能(例えば、BLE)を介して認可承諾トークンを支払いモジュール100に送信する(1012)。続いて機械120は、(例えば、
図19に示されるディスプレイ122又は124の一方を介して)クレジットをユーザに表示し、ユーザは、(例えば、
図19に示されるボタン126又はタッチスクリーンディスプレイ124を介して)機械120の入力機構と対話して製品及び/又はサービスを購入する。
【0097】
[00137]
図24Aは、一部の実施例に係る(例えば、
図23におけるプロセス1000のステップ1002において)支払いモジュール100によってブロードキャストされる情報のパケット1100のブロック図を示している。一部の実施例では、パケット1100は、少なくともモジュールID1102及び認可コード1104を含む。一部の実施例では、パケット110は、ファームウェアバージョン1106及び1つ以上のステータスフラグ1108を更に含む。
【0098】
[00138] 一部の実施例では、モジュールID1102は、パケット1100をブロードキャストする支払いモジュール100(本明細書では「アダプタモジュール100」と呼ばれることもある)に対応する一意の識別子である。
【0099】
[00139] 一部の実施例では、認可コード1104は平文のハッシュ値である。一部の実施例では、支払いモジュール100は、ランダムもしくは擬似ランダムに数字を生成するか、又は連番を決定し(
図23におけるプロセス1000のステップ1002参照)、数字に対して所定のハッシュ関数(例えば、SHA-256)を実行して、認可コード1104としてハッシュ値を生成する。一部の実施例では、認可コード1104は、支払いモジュール100に対応する秘密暗号鍵で暗号化されている一意のコードである。秘密暗号鍵は、サーバ130と共有されており、サーバ130が認可コード1104を解読し、認可承諾トークンを暗号化できるようにするが、モバイルデバイス150はそうすることができない。一部の実施例では、サーバ130と支払いモジュール100との間の暗号化は、2対の公開/秘密鍵によって達成される。
【0100】
[00140] 一部の実施例では、ファームウェアバージョン情報1106は、支払いモジュール100の現在のファームウェアバージョン1112を識別する。一部の実施例では、ファームウェアバージョン情報1106は、ファームウェアを更新するために支払いモジュール100が受信する1つ以上のパケットを示す、又は支払いモジュール100がファームウェアを更新するのに必要な1つ以上のパケットを示す、更新ステータス情報1114も含む。支払いモジュール100のファームウェアの更新に関する更なる考察については、
図26A及び
図26B及び
図30Aから
図30D並びに付随するテキスト参照。
【0101】
[00141] 一部の実施例では、1つ以上のステータスフラグ1108は、支払いモジュール100及び/又は支払いモジュール100と関連付けられた支払い受理ユニット120の状態を示す。一部の実施例では、1つ以上のステータスフラグ1108は、支払いモジュール100がサーバ130にアップロードされる情報(例えば、1つ以上の中断取引の取引情報)を有することを示すアップロード情報インジケータ1116など、支払いモジュール100の状態を示す。一部の実施例では、アップロード情報インジケータ1116は、モバイルデバイス150による支払いモジュール100への接続を即時にトリガする(例えば、サーバ130にアップロードされる中断取引情報を有する場合)。中断取引に関する更なる考察については、
図25A及び
図25B及び
図29並びに付随するテキスト参照。一部の実施例では、1つ以上のステータスフラグ1108は、エラーインジケータ1118(例えば、支払い受理ユニット120の紙幣及び/又は硬貨受理機が詰まり、エラーコード、又は誤作動に直面していることを示す)、通貨レベルインジケータ1120(例えば、支払い受理ユニット120の紙幣及び/又は硬貨受理機のリザーバのレベルが一杯又は空であることを示す)、及び/又は在庫レベルインジケータ1122(例えば、支払い受理ユニット120の1つ以上の製品を示す)のうちの1つ以上を含む、支払い受理ユニット120の状態を示す。一部の実施例では、1つ以上のステータスフラグ1108は、MDBを介して支払い受理ユニット120により発行されるエラーコードである。
【0102】
[00142] 一部の実施例では、ゾーン基準情報1110は、認可ゾーン基準1124(例えば、支払いモジュール100の認可ゾーン内に入る前にモバイルデバイス150(又はアプリケーション140)が観察する必要があるベースラインRSSIを示すベースライン認可ゾーン閾値)及び/又は支払いゾーン基準1126(例えば、支払いモジュール100の支払いゾーン内に入る前にモバイルデバイス150(又はアプリケーション140)が観察する必要があるベースラインRSSIを示すベースライン支払いゾーン閾値)を指定する。一部の実施例では、ベースライン認可ゾーン閾値及びベースライン支払いゾーン閾値は、サーバ130により決定されるか、又はアプリケーション140により変数として記憶されるデフォルト値であり、その場合、認可ゾーン基準1124及び支払いゾーン基準1126は、支払いモジュール100の短距離通信機能(例えば、BLE無線/送受信機)の強度及び/又は受信を補償するオフセットである。代替的に、ゾーン基準情報1110は、ベースライン認可ゾーン閾値とベースライン支払いゾーン閾値との間のスプレッドを含む。したがって、モバイルデバイス150(又はアプリケーション140)は、スプレッド値と、ベースライン認可ゾーン閾値又はベースライン支払いゾーン閾値のいずれかのデフォルト値とに基づいて、ベースライン認可ゾーン閾値及びベースライン支払いゾーン閾値を特定する。例えば、スプレッドは-10dbを示し、デフォルトベースライン支払いゾーン閾値は-90dbであり、したがってベースライン認可ゾーン閾値は-80dbである。この例を続けると、ベースライン認可ゾーン閾値及びベースライン支払いゾーン閾値を特定した後、モバイルデバイス150(又はアプリケーション140)は、その短距離通信機能(すなわち、BLE無線/送受信機)の強度及び/又は受信に基づいて、認可ゾーン閾値及び/又は支払いゾーン閾値を更に調整することがある。
【0103】
[00143]
図24Bは、一部の実施例に係る(例えば、
図23におけるプロセス1000のステップ1004において)モバイルデバイス150によりサーバ130に送信される認可要求1130のブロック図である。一部の実施例では、認可要求1130は、少なくともモジュールID1102、ユーザID1134、及び認可コード1104を含む。
【0104】
[00144] 一部の実施例では、モジュールID1102は、認可コード1104を含んだ1100をブロードキャストした支払いモジュール100に対応する一意の識別子である。
【0105】
[00145] 一部の実施例では、ユーザID1134は、認可要求1130をサーバ130に送信するモバイルデバイス150のユーザと関連付けられた識別子である。一部の実施例では、ユーザID1134は、モバイルデバイス150のユーザがアプリケーション140にログインしたユーザアカウントと関連付けられている。
【0106】
[00146] 一部の実施例では、認可コード1130は、支払いモジュール100によりブロードキャストされた情報のパケット1100に含まれる認可コード1104を含む。
【0107】
[00147]
図24Cは、一部の実施例に係る(例えば、
図23におけるプロセス1000のステップ1008において)サーバ130によりモバイルデバイス150に送信される認可承諾トークン1140のブロック図である。一部の実施例では、モバイルデバイス150からの認可要求1130に含まれる認可コード1136が有効であり、モバイルデバイス150と関連付けられたユーザが支払い処理システムのその口座に十分な資金を有するという判断に従って、サーバ130は認可承諾トークン1140を生成する。一部の実施例では、認可承諾トークン1140は、少なくともモジュールID1102、ユーザID1134、認可金額1146、(任意選択的に)有効期限オフセット1148、及び(任意選択的に)認可コード1104を含む。
【0108】
[00148] 一部の実施例では、モジュールID1102は、認可コード1104を含んだパケット1100をブロードキャストした支払いモジュール100に対応する一意の識別子である。
【0109】
[00149] 一部の実施例では、ユーザID1134は、認可要求1130をサーバ130に送信したモバイルデバイス150のユーザと関連付けられた識別子である。
【0110】
[00150] 一部の実施例では、認可金額1146は、モバイルデバイス150のユーザが認可承諾トークン1140を使用する取引の認可された最高金額を示す。例えば、認可金額1146は、1日当たりの限度に基づいて、又はユーザの合計口座残高に基づいて、又はユーザID1134に対応するユーザのリスクプロファイルに基づいて、モバイルデバイス150のユーザによって又はサーバ130によって予め規定されている。
【0111】
[00151] 一部の実施例では、有効期限1148オフセットは、支払いモジュール100と関連付けられた機械120との取引を開始するために、支払いモジュール100が認可承諾トークン1140を有効にしておく時間へのオフセットを示す。例えば、有効期限オフセット1148は、モバイルデバイス150のユーザの履歴及びクレジット又はモバイルデバイス150のユーザにより予め規定された期間に依存する。
【0112】
[00152] 一部の実施例では、認可承諾トークン1140は、認可要求1130に含まれていた認可コード1104を更に含む。一部の実施例では、認可コード1104がハッシュ値である場合、サーバ130は、支払いモジュール100と関連付けられた共有秘密暗号鍵でハッシュ値を含む認可承諾トークン1140を暗号化する。続いて、モバイルデバイス150がトリガ条件を検出した後に認可承諾トークン1140を支払いモジュール100に送信するとき、支払いモジュール100は、サーバ130及び(メッセージと認可承諾とを認証する)支払いモジュール100のみが知っている秘密鍵を使用して認可承諾トークン1140を解読し、次に解読された認可承諾トークン1140に含まれたハッシュ値を、前にブロードキャストされた有効な(期限が切れていない)ハッシュ値(すなわち、認可コード)と照合し、(支払いモジュール100のみにより知られていた)それの有効性を判断する。
【0113】
[00153]
図24Dは、一部の実施例に係る(例えば、
図25Aにおけるプロセス1200のステップ1204において)支払いモジュール100により生成される取引情報1150のブロック図を示している。一部の実施例では、取引情報1150は、各取引の取引ID1152、モジュールID1154、ユーザID1156、(任意選択的に)認可コード1158、取引ステータス情報1160、取引金額1162、及び他の情報1164を含む。
【0114】
[00154] 一部の実施例では、取引ID1152は各取引に対応する一意の識別子である。一部の実施例では、取引ID1152は、各取引が行われた時刻及び/又は日付並びに場所に基づいて又は関連して符号化されている。
【0115】
[00155] 一部の実施例では、モジュールID1154は、各取引を実行した支払いモジュール100に対応する一意の識別子である。
【0116】
[00156] 一部の実施例では、ユーザID1156は、各取引を開始したモバイルデバイス150のユーザと関連付けられた識別子である。
【0117】
[00157] 一部の実施例では、認可コード1158は、各取引の開始に使用されたオリジナルの認可コード(例えば、
図24Aから
図24Cの認可コード1104)及び/又は認可承諾トークン(例えば、
図24Cの認可承諾トークン1140)に対応する。一部の実施例では、認可コード1156は、支払いモジュール100に対応する一意の暗号鍵で暗号化されている。
【0118】
[00158] 一部の実施例では、取引ステータス情報1160は、各取引が完了したか、又は未完了であるか、又は中止されたかの指示を含む。例えば、詰まりが支払い受理ユニット120において生じ、ユーザが各取引と関連付けられた製品を受け取らなかった場合、各取引は不完全である。例えばユーザが、各取引においてお金が入金された後に支払い受理ユニット120から立ち去った場合、各取引は中止される。別の例では、ユーザが支払い受理ユニット120において製品を選択できなかったために、各取引が所定の期間後にタイムアウトした場合、各取引は中止される。別の例では、ユーザが支払い受理ユニット120の紙幣又は硬貨返却機構を作動させた場合、各取引は中止される。
【0119】
[00159] 一部の実施例では、取引金額1162は、各取引の金額又は(例えば、複数自販シナリオにおける)複数の取引のそれぞれの金額を示す。一部の実施例では、取引金額1162は、支払いモジュール100に対応する一意の暗号鍵で暗号化されている。
【0120】
[00160] 一部の実施例では、他の情報1164は、支払い受理ユニット120により提供されるアイテム及び取引のタイプ(例えば、硬貨、紙幣、クレジットカード、手動モード、ハンズフリーモードなど)などの各取引に関連する他の情報を含む。一部の実施例では、他の情報1164は、支払いモジュール100及び/又は支払いモジュール100と関連付けられた支払い受理ユニット120に関連する他の情報を含む。例えば、他の情報1164は、新しいファームウェアを実装するためのサーバ130への検証要求を含む。検証要求の更なる考察については、
図26A及び
図26B並びに付随するテキスト参照。別の例では、他の情報1164は、1つ以上の前の中断された取引からの取引情報を含む。別の例では、他の情報1164は、紙幣及び/又は硬貨で支払われた1つ以上の取引の取引情報を含む。別の例では、他の情報1164は、支払い受理ユニット120の1つ以上の製品についての在庫情報を含む。
【0121】
[00161]
図25は、一部の実施例に係る承認情報を処理するプロセス1200の概略的な流れ図を示している。一部の実施例では、支払い処理システムは、1つ以上の支払いモジュール100(例えば、それぞれが商品及び/又はサービスを販売するための自動小売り機などの各支払い受理ユニット120と関連付けられている)、1つ以上のモバイルデバイス150(例えば、それぞれがフォアグラウンド又はバックグラウンドプロセスとして支払い処理システムのためにアプリケーション140を実行する)、及びサーバ130を含む。サーバ130は、支払い処理システムを管理し、場合によって、1つ以上の支払いモジュール100を供給、操作、及び/又は製造する。簡潔にするために、プロセス1200は、支払い処理システムにおける各支払い受理ユニット120(機械120)と関連付けられた各支払いモジュール100及び各モバイルデバイス150に関して説明されることになる。プロセス1200では、支払いモジュール100は、第1の取引の第1の承認情報を、第1の取引を開始したモバイルデバイス150を介して受信する。
【0122】
[00162] 支払いモジュール100は、機械120から第1の取引の完了を示す第1の通知を取得する(1202)。例えば、
図23におけるプロセス1000の後に、モバイルデバイス150のユーザは、機械120の1つ以上の入力機構(例えば、
図19に示されるボタン126又はタッチスクリーンディスプレイ124)と対話することによって機械120から購入する製品を選択し、機械120は、選択された製品を払い出す。この例を続けると、製品が払い出された後に、取引は完了し、支払いモジュール100は、完了した取引の機械から通知を取得する。一部の実施例では、通知は、取引の金額と(任意選択的に)例えば支払い受理ユニット120の1つ以上の製品に関する在庫情報などの機械120と関連付けられた機械ステータス情報とを含む。
【0123】
[00163] 第1の通知を取得した後、支払いモジュール100は、第1の通知に基づく第1の取引情報を生成し(1204)、支払いモジュール100は、第1の取引情報を記憶する。一部の実施例では、取引情報は、第1の取引の取引ID、支払いモジュール100に対応するモジュールID、モバイルデバイス150に対応するユーザID、第1の取引が完了したことを示す取引ステータス情報、及び第1の通知により示される取引金額を含む。一部の実施例では、支払いモジュール100は、オリジナルのブロードキャストされたパケットに含まれる認可コード及び/又は認可承諾トークンを保持し、認可コードを第1の取引情報に含める。一部の実施例では、認可コードは、支払いモジュール100に対応する秘密鍵で暗号化され、秘密鍵はサーバ130と共有されるが、モバイルデバイス150とは共有されない。一部の実施例では、第1の取引情報は、第1の通知に含まれる機械ステータス情報又は前の中断された取引に対応する取引情報などの他の情報を更に含む。取引情報1150に関する更なる考察については、
図24D及び付随するテキスト参照。
【0124】
[00164] 支払いモジュール100は、短距離通信機能(例えば、BLE)を介して、第1の取引情報をモバイルデバイス150に送信する(1206)。
【0125】
[00165] モバイルデバイス150は、長距離通信機能(例えば、GSM、CDMA、Wi-Fiなど)を介して第1の取引情報をサーバ130に送信する(1208)。
【0126】
[00166] サーバ130は、第1の取引情報を処理する(1210)。例えば、サーバ130は、第1の取引情報におけるユーザIDと関連付けられたユーザの口座から、第1の取引情報により示される金額を引き落とす。
【0127】
[00167] サーバ130は、長距離通信機能(例え
ば、GSM、CDMA、Wi-Fiなど)を介して第1の承認情報をモバイルデバイス150に送信する(1212)。一部の実施例では、第1の承認情報は、サーバ130が第1の取引情報を受信したことを認める。一部の実施例では、第1の承認情報は、ユーザID、モジュールID、取引ID、及び(任意選択的に)取引情報に含まれる認可承諾(例えば、
図24Dの認可承諾1158)を含む。
【0128】
[00168] 第1の承認情報を受信した後、モバイルデバイス150は、短距離通信機能(例えば、BLE)を介して第1の承認情報を支払いモジュール100に送信する(1214)。
【0129】
[00169] 第1の承認情報を受信した後、支払いモジュール100は、記憶されている第1の取引情報を削除する(1216)。
【0130】
周辺機器の拡張及びルーティング
[00170]
図26は、一部の実施例に係る複数の電子周辺デバイス1330(本明細書では周辺機器とも呼ばれる)に対応するように機械120(本明細書では支払い受理ユニット、自販機、又は小売り機とも呼ばれる)を改造するための電子デバイス1300のブロック図である。デバイス1300は、デバイス1300が機械120のマルチドロップバス(MDB)に接続し、任意選択的に
図7、
図8Aから
図8G、
図9Aから
図9E、及び
図23で考察した支払い処理機能を(例えば、内部周辺機器1340を介して)提供するという点で、
図20に示されるアダプタモジュール100(本明細書では支払いモジュールとも呼ばれる)と類似しこれから改造される。
【0131】
[00171] 一部の実施例では、通常動作において機械120は、機械120の機械コントローラ1360(本明細書では支払い受理ユニットコントローラとも呼ばれる)を支払い周辺機器(例えば、硬貨受理機、紙幣受理機、支払いカードリーダなどのキャッシュレス支払いデバイスなどを含む他の支払い周辺機器1350、1355)と接続するマルチドロップバス(MDB)を備える。一部の実施例では、デバイス1300は
図17及び
図18に示すMDBにインライン接続されている。一部の実施例では、MDBプロトコル又は機械120は、限られた数の支払い周辺機器をサポートするように構成されているか、又は特定の支払い周辺機器をサポートしない。例えば一部の状況では、機械120は最大2つのキャッシュレス支払いデバイスをサポートするか、又は機械120は紙幣受理機及び硬貨受理機のみをサポートし、キャッシュレス支払いデバイス又は他の支払い周辺機器をサポートしない。デバイス1300は、機械120に接続される支払い周辺機器の数をこの限られた数を超えて増やし、機械120及び/又はMDBプロトコルに準拠していることもそうでないこともある複数の支払い周辺機器をサポートすることができる。
【0132】
[00172]
図26では、デバイス1300は、(i)機械120の機械コントローラ1360の仮想支払い周辺機器として機能し、かつ(ii)1つ以上の支払い周辺機器1330の仮想機械コントローラ(本明細書ではマスター、又は仮想マスターとも呼ばれる)として機能するように構成されている。したがって、一部の実施例では、機械コントローラ1360は、デバイス1300があたかも周辺機器1330によって発せられたかのように信号を機械コントローラ1360に送信する場合に、デバイス1300をMDBに接続された別の支払い周辺機器と見なす。一部の実施例では、あたかも周辺機器1330によって発せられたかのように信号を機械コントローラ1360に送信することは、信号にラベルを付けること、又は信号を有するラベルを含むことを含み、ラベルは周辺デバイスの登録情報及び/又は識別情報(例えば周辺デバイスのアドレス)を含む。別の言い方をすれば、デバイス1300は、周辺デバイスの登録情報又は識別情報を使用することによって機械コントローラ1360に周辺機器1330であると自称する。また、一部の実施例では、1つ以上の支払い周辺機器1330は、信号が1つ以上の支払い周辺機器1330にあたかも機械コントローラ1360によって発せられたかのように送信される場合に、デバイス1300を機械コントローラ1360と見なす。一部の実施例では、あたかも機械コントローラ1360によって発せられたかのように信号を周辺機器1330に送信することは、信号にラベルを付けること、又は信号を有するラベルを含むことを含み、ラベルは機械コントローラの識別情報(例えば機械コントローラのアドレス)を含む。別の言い方をすれば、デバイス1300は、機械コントローラの識別情報を使用することによって周辺機器1330に機械コントローラ1360であると自称する。これを達成するために、デバイス1300(その役割が仮想機械コントローラである)は、1つ以上の支払い周辺機器1330を管理及びホストする。また、デバイス1300は、アドレスを変換し、機械コントローラ1360がこれを経由してくるトラフィックを唯一の仮想支払い周辺機器と把握できるように必要に応じて通信を修正する。
【0133】
[00173]
図26では、デバイス1300は、デバイス1300をMDBに接続するためのスレーブインターフェイス1302(例えば、オスアダプタ720、
図20)及び追加のインターフェイス1304(例えば、メスアダプタ730、
図20)を備える。デバイス1300はまた、処理ユニット1312(例えば、1つ以上のプロセッサ、コア、マイクロコントローラ、マイクロプロセッサなどを含む)と、処理ユニット1312により実行される1つ以上のプログラムを記憶しているメモリ1314とを備えたデバイスコントローラ1310を備える。一部の実施例では、1つ以上のプログラムは、デバイス1300を機械コントローラ1360の仮想支払い周辺機器として機能させ、また1つ以上の支払い周辺機器1330のための仮想機械コントローラとして機能させる。
図26では、デバイス1300はまた、デバイス1300を1つ以上の支払い周辺機器1330(例えば、支払い周辺機器1330-A~1330-N)と接続するための1つ以上のホストインターフェイス1320(例えば、MDBポート又は非MDBポート)を備える。
【0134】
[00174] 一部の実施例では、機械120は、MDBと結合された1つ以上の他の支払い周辺機器1350、1355を更に備える。1つ以上の他の支払い周辺機器の例示的な支払い周辺機器には、紙幣受理機、硬貨受理機、又は支払いカードリーダが含まれる。これらの実施例では、デバイス1300は、デバイスを機械の1つ以上の他の支払い周辺機器1355と結合するように構成された追加のインターフェイス1304を更に備える。例えば、
図26を参照すると、他の支払い周辺機器1350(例えば、受理機、硬貨受理機、支払いカードリーダなど)は、デバイス1300の前に(例えばスレーブインターフェイス1302に先立って)MDBに接続され、他の支払い周辺機器1355(例えば、受理機、硬貨受理機、支払いカードリーダなど)は、デバイス1300の後に(例えば追加のインターフェイス1304の後に)MDBに接続される。
【0135】
[00175] 一部の実施例では、デバイス1300は、信号を1つ以上の他の支払い周辺機器1355から機械コントローラ1360に通過させるように構成されたパススルーチャネルを更に備える。例えば
図26を参照すると、デバイス1300は、機械コントローラ1360からの信号が他の支払い周辺機器1355に到達することを可能にし、他の支払い周辺機器1355からの信号が機械コントローラ1360に到達することを可能にするパススルーチャネルを備える。
【0136】
[00176] 一部の実施例では、デバイス1300は任意選択的に、(例えば
図20に示したセキュリティユニット755及び通信ユニット770を含む)
図7、
図8Aから
図8G、
図9Aから
図9E、及び
図23を参照して以上で説明した支払い処理機能の1つ以上を提供するためのハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせを備えた内部支払い周辺機器1340を備える。
【0137】
[00177]
図27は、一部の実施例に係る支払い周辺機器登録プロセス1400の概略的流れ図を示している。プロセス1400の結果として、例えば、MDBプロトコルに従って、デバイス1300は機械コントローラ1360のスレーブとして(例えば支払い周辺機器として)登録され、支払い周辺機器1330はデバイス1300のスレーブとして登録される。別の言い方をすれば、デバイス1300は、(i)(例えば動作1402~1408について)機械コントローラ1360のスレーブとして、また(ii)(例えば動作1412~1428について)支払い周辺機器1330のマスター(機械コントローラ)として機能する。
【0138】
[00178] 一部の実施例では、機械コントローラ1360(
図26)はデバイス1300をポーリングする(1402)。例えば機械コントローラ1360はデバイス1300にポーリングコマンドを送信する。
【0139】
[00179] 一部の実施例では、ポーリングコマンドに応答して、デバイス1300は機械コントローラ1360にリセット信号を送信する(1404)。例えばデバイス1300は、まだスレーブ(例えば支払い周辺機器)として登録されていない場合にリセット信号を機械コントローラ1360に送信する。別の例では、デバイス1300は、自身をスレーブとして再登録するためにリセット信号を送信する。一部の実施例では、デバイス1300は、リセット信号によって機械コントローラ1360に硬貨受理機、紙幣受理機、又はキャッシュレス支払いデバイスであると自称する。
【0140】
[00180] 一部の実施例では、リセット信号に応答して、機械コントローラ1360はデバイス1300に設定信号を送信する(1406)。一部の実施例では、設定信号はデバイス1300に割り当てられたアドレスを含む。
【0141】
[00181] 一部の実施例では、設定信号を受信し処理した後に、デバイス1300はスレーブとしての登録を確認する確認応答を機械コントローラ1360に送信する(1408)。
【0142】
[00182] 確認応答を送信すると、デバイス1300は、機械コントローラ1360のスレーブ(例えば支払い周辺機器)として登録される。
【0143】
[00183] 一部の実施例では、デバイス1300は支払い周辺機器1330-Aをポーリングする(1412)。
【0144】
[00184] 一部の実施例では、ポーリングコマンドに応答して、支払い周辺機器1330-Aはデバイス1300にリセット信号を送信する(1414)。例えば支払い周辺機器1330-Aは、まだデバイス1300のスレーブ(例えば支払い周辺機器)として登録されていない場合にリセット信号をデバイス1300に送信する。別の例では、支払い周辺機器1330-Aは自身をスレーブとして再登録するためにリセット信号を送信する。一部の実施例では、支払い周辺機器1330-Aは、リセット信号によってデバイス1300に硬貨受理機、紙幣受理機、又はキャッシュレス支払いデバイスであると自称する。
【0145】
[00185] 一部の実施例では、リセット信号に応答して、デバイス1300は支払い周辺機器1330-Aに設定信号を送信する(1416)。一部の実施例では、設定信号は支払い周辺機器1330-Aに割り当てられたアドレスを含む。
【0146】
[00186] 一部の実施例では、設定信号を受信し処理した後に、支払い周辺機器1330-Aはスレーブとしての登録を確認する確認応答をデバイス1300に送信する(1418)。
【0147】
[00187] 一部の実施例では、デバイス1300は支払い周辺機器1330-Nをポーリングする(1422)。
【0148】
[00188] 一部の実施例では、ポーリングコマンドに応答して、支払い周辺機器1330-Nはデバイス1300にリセット信号を送信する(1424)。例えば支払い周辺機器1330-Nは、まだスレーブ(例えば支払い周辺機器)として登録されていない場合にリセット信号をデバイス1300に送信する。別の例では、支払い周辺機器1330-Nは自身をスレーブとして再登録するためにリセット信号を送信する。一部の実施例では、支払い周辺機器1330-Nは、リセット信号によってデバイス1300に硬貨受理機、紙幣受理機、又はキャッシュレス支払いデバイスであると自称する。
【0149】
[00189] 一部の実施例では、リセット信号に応答して、デバイス1300は支払い周辺機器1330-Nに設定信号を送信する(1426)。一部の実施例では、設定信号は支払い周辺機器1330-Nに割り当てられたアドレスを含む。
【0150】
[00190] 一部の実施例では、設定信号を受信し処理した後に、支払い周辺機器1330-Nはスレーブとしての登録を確認する確認応答をデバイス1300に送信する(1428)。
【0151】
[00191]
図28A及び
図28Bは、一部の実施例に係る支払いプロセス1500の概略的流れ図を示している。一部の実施例では、プロセス1400(
図27)に従って、(i)デバイス1300は既に機械コントローラ1360のスレーブ(例えば支払い周辺機器)として登録されており、(ii)支払い周辺機器1330-A、1330-Nは既にデバイス1300のスレーブとして(例えば支払い周辺機器として)登録されている。別の言い方をすれば、デバイス1300は、(i)(例えば動作1502~1504、1520~1528、1540~1548、及び1554~1556について)機械コントローラ1360のスレーブとして、また(ii)(例えば動作1506~1518、1530~1538、1550~1552、及び1558~1564について)支払い周辺機器1330のマスター(機械コントローラ)として機能する。
【0152】
[00192] 一部の実施例では、機械コントローラ1360は、所定の時間(例えば5ms)に従って、MDBに接続されスレーブとして登録された他の支払い周辺機器(例えば他の支払い周辺機器1350、1355(
図26))と共に、デバイス1300をポーリングする。例えば所定の時間は、参照によりその全体が本明細書に組み込まれているMDBプロトコル又は仕様(例えばバージョン1.0~3.0以上)によって指定されている。ポーリングコマンドに応答して、(例えば、少なくともデバイス1300を含む)全てのスレーブデバイスが、(例えば依然としてMDB上にあることを示す)確認応答又は(例えば別の状態を示す)別の信号で応答する。一部の実施例では、機械コントローラ1360からのコマンドに応答して、デバイス1300はコマンドに直ちに応答し、コマンドを支払い周辺機器1330の少なくとも1つに非同期的に中継する。
【0153】
[00193] 一部の実施例では、機械コントローラ1360と同じように、デバイス1300も所定の時間(例えば5ms)に従って支払い周辺機器1330をポーリングする。例えばデバイス1300は、機械コントローラ1360によってポーリングされるときはいつでも支払い周辺機器1330をポーリングする。
【0154】
[00194] 一部の実施例では、機械コントローラ1360はデバイス1300をポーリングする(1502)。
【0155】
[00195] 動作1502におけるポーリングコマンドに応答して、デバイス1300は機械コントローラ1360に確認応答を送信する(1504)。
【0156】
[00196] 動作1502におけるポーリングコマンドに応答して又は無関係に、デバイス1300は支払い周辺機器1330-Nをポーリングする(1506)。動作1506におけるポーリングコマンドに応答して、支払い周辺機器1330-Nはデバイス1300に確認応答を送信する(1508)。
【0157】
[00197] 動作1502におけるポーリングコマンドに応答して又は無関係に、デバイス1300は支払い周辺機器1330-Aをポーリングする(1510)。動作1510におけるポーリングコマンドに応答して、支払い周辺機器1330-Aは支払いセッションの開始要求を送信する(1512)。例えば支払いセッションの開始要求は、動作1510におけるポーリングコマンドに先立って、ユーザが支払い(例えば紙幣又は硬貨)を支払い周辺機器1330-Aに投入することに応答して送信される。
【0158】
[00198] 支払いセッションの開始要求に応答して、デバイス1300は支払い周辺機器1330-Aに確認応答を送信する(1514)。
【0159】
[00199] 支払いセッションの開始要求に応答して、デバイス1300はまた、支払い周辺機器1330-Aの支払いセッションを処理しながら支払い周辺機器1330-Nを無効化するために、支払い周辺機器1330-Nに無効化コマンドを送信する(1516)。無効化コマンドに応答して、支払い周辺機器1330-Nはデバイス1300に確認応答を送信する(1518)。
【0160】
[00200] 機械コントローラ1360はデバイス1300をポーリングする(1520)。
【0161】
[00201] 動作1520におけるポーリングコマンドに応答して、デバイス1300は支払いセッションの開始要求を機械コントローラ1360に送信する(1522)。例えば(動作1522において機械コントローラ1360に送信された)支払いセッションの開始要求は、(動作1512において支払い周辺機器1330-Aから受信した)支払いセッションの開始要求を反映する。
【0162】
[00202] 動作1522における支払いセッションの開始要求に応答して、機械コントローラ1360は、デバイス1300に確認応答を送信し(1524)、またデバイス1300に自販要求を送信する(1526)。プロセス1500において、サービス又は製品の自販は非制限的な例と見なされる。
【0163】
[00203] 自販要求を受信したことに応答して、デバイス1300は機械コントローラ1360に確認応答を送信する(1527)。
【0164】
[00204] 一部の実施例では、機械コントローラ1360は、デバイス1300が動作1540において自販承認信号を送信するのに先立って、デバイス1300をN回ポーリングする(1528)。一部の実施例では、デバイス1300はN個のポーリングコマンドに、デバイス1300が依然として存在し自販要求を処理していることを示す確認応答で応答する。
【0165】
[00205] 動作1526における自販要求を受信したことに応答して、デバイス1300は自販要求を支払い周辺機器1330-Aに中継する(1530)。
【0166】
[00206] 動作1530における自販要求に応答して、支払い周辺機器1330-Aはデバイス1300に確認応答を送信する(1532)。
【0167】
[00207] 続いてデバイス1300は、支払い周辺機器1330-Aをポーリングする(1534)。動作1534におけるポーリングコマンドに応答して、支払い周辺機器1330-Aはデバイス1300に自販承認信号を送信する(1536)。例えば自販承認信号は、ユーザにより投入された支払いが返金されず、サービス又は製品を購入するのに使用されたことを示す。
【0168】
[00208] 動作1536における自販承認信号を受信したことに応答して、デバイス1300は支払い周辺機器1330-Aに確認応答を送信し(1538)、また自販承認信号を機械コントローラ1360に中継する(1540)。
【0169】
[00209] 動作1540における自販承認信号を受信したことに応答して、機械コントローラ1360はデバイス1300に確認応答を送信し(1542)、またデバイス1300に自販が成功であったか失敗であったかを示す要求を送信する(1544)。
【0170】
[00210] 動作1544における要求を受信したことに応答して、デバイス1300は、自販が成功であったか失敗であったかを示す応答を機械コントローラ1360に送信し(1546)、また自販が成功であったか失敗であったかを示す要求を支払い周辺機器1330-Aに中継する(1550)。
【0171】
[00211] 動作1550における要求に応答して、支払い周辺機器1330-Aはデバイス1300に確認応答を送信する(1552)。
【0172】
[00212] 動作1546における応答を受信したことに応答して、機械コントローラ1360は、デバイス1300に確認応答を送信し(1548)、またデバイス1300に支払いセッションを終了させるコマンドを送信する(1554)。
【0173】
[00213] 動作1554における支払いセッションを終了させるコマンドを受信したことに応答して、デバイス1300は、機械コントローラ1360に確認応答を送信し(1556)、支払いセッションを終了させるコマンドを支払い周辺機器1330-Aに中継する(1558)。
【0174】
[00214] 動作1558における支払いセッションを終了させるコマンドに応答して、支払い周辺機器1330-Aはデバイス1300に確認応答を送信する(1560)。
【0175】
[00215] 動作1560における確認応答を支払い周辺機器1330-Aから受信した後に、デバイス1300は、支払い周辺機器1330-Aの支払いセッションの完了後に支払い周辺機器1330-Nを有効にするために支払い周辺機器1330-Nにイネーブルコマンドを送信する(1562)。動作1562において受信したイネーブルコマンドに応答して、支払い周辺機器1330-Nはデバイス1300に確認応答を送信する(1564)。
【0176】
[00216]
図29は、一部の実施例に係る複数の支払い周辺機器1330(本明細書では電子周辺デバイス、周辺デバイス、又は周辺機器とも呼ばれる)に対応するように機械コントローラ1360(本明細書では支払い受理ユニット、自販機、小売り機、及び/又は支払い受理ユニット、自販機、もしくは小売り機のプロセッサもしくはコントローラとも呼ばれる)を改造する方法1600のフローチャートを示している。一部の実施例では、方法1600は、1つ以上の処理ユニット1312(プロセッサ)と、メモリ1314と、デバイス1300を機械コントローラ1360とマルチドロップバス(MDB)を介して結合するように構成されたスレーブインターフェイス1302と、デバイス1300を1つ以上の支払い周辺機器1330(例えば、硬貨受理機、紙幣受理機、支払いカードリーダなどのキャッシュレス支払いデバイスなど)と結合するように構成された1つ以上のホストインターフェイス1320とを備えた電子デバイス1300のデバイスコントローラ1310において実行され、各支払い周辺機器1330は機械コントローラ1360のMDBインターフェイスから分離され、各ホストインターフェイス1320と結合され、支払い周辺機器1330はMDBプロトコルを介して通信するように構成されている。例えば一部の実施例では、方法1600は、デバイス1300又はそのコンポーネント(例えばデバイスコントローラ1310)によって実行される。一部の実施例では、方法1600は非一時的コンピュータ可読記憶媒体(例えばメモリ1314)に記憶されている命令によって管理され、命令はデバイスの1つ以上のプロセッサ(例えば処理ユニット1312)によって実行される。任意選択的な動作は破線(例えば破線の境界線を有するボックス)によって示されている。
【0177】
[00217] デバイス1300は、自身を機械コントローラ1360のスレーブとして登録することによって機械コントローラ1360の仮想支払い周辺機器(スレーブ)として機能し(1602)、デバイス1300は、MDBプロトコルを使用して1つ以上の支払い周辺機器1330をデバイス1300のスレーブとして登録することによって、1つ以上の支払い周辺機器1330の仮想機械コントローラ(マスター)として機能する。一部の実施例では、MDBプロトコルは限られた数の支払い周辺機器1330をサポートする。デバイス1300は、(i)機械コントローラ1360をホストインターフェイス1320と結合された支払い周辺機器1330にエミュレートすること、及び(ii)支払い周辺機器1330を機械コントローラ1360にエミュレートすることによって、機械コントローラ1360に接続され得る支払い周辺機器1330の数をこの限られた数を超えて増やす。したがって、一部の実施例では、機械コントローラ1360はデバイス1300をMDBに接続された別の支払い周辺機器1330と見なし、デバイス1300は、唯一の仮想支払い周辺機器1330として機能しているデバイス1300によってあたかも発せられたかのように(換言すれば、あたかも支払い周辺機器1330によって発せられたかのように)信号を機械コントローラ1360に送信する。また、一部の実施例では、支払い周辺機器1330はデバイス1300を機械コントローラ1360と見なし、デバイス1300は、あたかも機械コントローラ1360によって発せられたかのように支払い周辺機器1330に信号を送信する。
【0178】
[00218] 一部の実施例では、デバイス1300を機械コントローラ1360のスレーブとして登録することは、デバイス1300がキャッシュレス支払い周辺機器であると機械コントローラ1360に明らかにすること、及びデバイス1300のキャッシュレス支払い周辺機器としての機械コントローラ1360への登録を受け付けること(1602a)を更に含む。例えばデバイス1300は、動作1404においてリセット信号を機械コントローラ1360に送信するときに機械コントローラ1360にキャッシュレス支払いデバイス(例えば支払いカードリーダ)であると自称し、デバイス1300は、動作1406において設定信号を機械コントローラ1360から受信するときにキャッシュレス支払いデバイスとしての登録を受け付ける(
図27参照)。
【0179】
[00219] 一部の実施例では、デバイス1300を機械コントローラ1360のスレーブとして登録することは、デバイス1300が硬貨受理機周辺機器であると機械コントローラ1360に明らかにすること、及びデバイス1300の硬貨受理機周辺機器としての機械コントローラ1360への登録を受け付けること(1602b)を更に含む。例えばデバイス1300は、動作1404においてリセット信号を機械コントローラ1360に送信するときに機械コントローラ1360に硬貨受理機であると自称し、デバイス1300は、動作1406における設定信号を機械コントローラ1360から受信するときに硬貨受理機としての登録を受け付ける(
図27参照)。
【0180】
[00220] 一部の実施例では、デバイス1300を機械コントローラ1360のスレーブとして登録することは、デバイス1300が紙幣受理機周辺機器であると機械コントローラ1360に明らかにすること、及びデバイス1300の紙幣受理機周辺機器としての機械コントローラ1360への登録を受け付けること(1602c)を更に含む。例えばデバイス1300は、動作1404においてリセット信号を機械コントローラ1360に送信するときに機械コントローラ1360に紙幣受理機/鑑別機であると自称し、デバイス1300は、動作1406において設定信号を機械コントローラ1360から受信するときに紙幣受理機/鑑別機としての登録を受け付ける(
図27参照)。
【0181】
[00221] デバイス1300は、コマンド(信号の形態をとる)を機械コントローラ1360からスレーブインターフェイス1302経由で受信し(1604)、機械コントローラ1360からの信号は、あたかも唯一の支払い周辺機器1330に送信されるかのように送信される。例えばプロセス1500を参照すると、機械コントローラ1360は、動作1554において支払いセッションを終了させるコマンドをデバイス1300に送信する(
図28B参照)。
【0182】
[00222] 機械コントローラ1360からコマンドを受信したことに応答して、デバイス1300は、コマンドに対する確認応答を機械コントローラ1360にスレーブインターフェイス1302経由で送信し(1604)、信号が唯一の仮想支払い周辺機器1330として機能しているデバイス1300によってあたかも発せられたかのように(換言すれば、あたかも支払い周辺機器1330によって発せられたかのように)機械コントローラ1360に送信され、コマンドを各支払い周辺機器1330に対応する各ホストインターフェイス1320経由で各支払い周辺機器1330に中継し、デバイス1300は、デバイス1300の1つ以上の支払い周辺機器1330に対する信号の送受信と非同期的に機械コントローラ1360に対して信号の送受信を行う(換言すれば、デバイス1300と機械コントローラ1360との間の通信は、デバイス1300と支払い周辺機器1330との間の通信に必ずしも同期されていない)。上記の例を続けてプロセス1500を参照すると、動作1554における支払いセッションを終了させるコマンドを受信したことに応答して、デバイス1300は、動作1556において、唯一の仮想支払い周辺機器1330として機能しているデバイス1300によってあたかも発せられたかのように(換言すれば、あたかも支払い周辺機器1330によって発せられたかのように)機械コントローラ1360に確認応答を送信する。この例を続けると、動作1554における支払いセッションを終了させるコマンドを受信したことに応答して、デバイス1300はまた、動作1558において支払いセッションを終了させるコマンドを支払い周辺機器1330-Aに非同期的に中継する。したがって、コマンドは、確認応答を機械コントローラ1360に送信することと非同期的に支払い周辺機器1330-Aに中継される(換言すれば、信号1556及び1558は必ずしも同期されていない)。
【0183】
[00223] 一部の実施例では、コマンドを中継したことに応答して、デバイス1300は、各支払い周辺機器1330に対応する各ホストインターフェイス1320経由で各支払い周辺機器1330から応答を受信する(1608)。上記の例を続けて、プロセス1500を参照すると、動作1558における中継された完了セッションコマンドに応答して、支払い周辺機器1330-Aは動作1560においてデバイス1300に確認応答を送信する。
【0184】
[00224] 一部の実施例では、各支払い周辺機器1330から応答を受信したことに応答して、デバイス1300は、各支払い周辺機器1330に確認応答を送信し、信号があたかも機械コントローラ1360によって発せられたかのように1つ以上の支払い周辺機器1330に送信され、応答をスレーブインターフェイス1302経由で機械コントローラ1360に中継し、デバイス1300は、デバイスの1つ以上の支払い周辺機器1330に対する信号の送受信と非同期的に機械コントローラ1360に対して信号の送受信を行う(換言すれば、デバイス1300と機械コントローラ1360との通信は、デバイス1300と支払い周辺機器1330との通信に必ずしも同期されていない)。一部の実施例では、各支払い周辺機器1330から応答を受信したことに応答して、デバイスは上記のステップを見合わせる(例えば、デバイス1300は、動作1556において既に機械コントローラ1360のセッション完了コマンドに対して確認応答を行っているため、機械コントローラ1360に確認応答1560を中継しない)。
【0185】
[00225] 一部の実施例では、デバイス1300は、コマンドを各支払い周辺機器1330から、各支払い周辺機器1330に対応する各ホストインターフェイス1320経由で受信し(1610)、各支払い周辺機器1330からの信号は、あたかも機械コントローラ1360に送信されるかのようにデバイス1300に送信され、各支払い周辺機器1330からコマンドを受信したことに応答して、デバイス1300は、コマンドに対する確認応答を各支払い周辺機器1330に送信し(1612)、信号があたかも機械コントローラ1360によって発せられたかのようにデバイス1300から支払い周辺機器1330に送信され、コマンドをスレーブインターフェイス1302経由で機械コントローラ1360に中継し、デバイス1300は、デバイス1300の支払い周辺機器1330に対する信号の送受信と非同期的に機械コントローラ1360に対して信号の送受信を行う(換言すれば、デバイス1300と機械コントローラ1360との通信は、デバイス1300と支払い周辺機器1330との通信に必ずしも同期されていない)。例えばプロセス1500を参照すると、動作1534においてポーリングされたときに、支払い周辺機器1330-Aは、動作1536においてあたかも機械コントローラ1360に送信されたかのように自販承認信号をデバイス1300に送信する。この例を続けると、動作1536における自販承認信号を受信したことに応答して、デバイス1300は、動作1538においてあたかも機械コントローラ1360によって発せられたかのように支払い周辺機器1330-Aに確認応答を送信する。この例を続けると、動作1536における自販承認信号を受信したことに応答して、デバイス1300はまた、動作1540において自販承認信号を機械コントローラ1360に非同期的に中継する。したがって、コマンドは、確認応答を支払い周辺機器1330-Aに送信することと非同期的に機械コントローラ1360に中継される(換言すれば、信号1538及び1540は必ずしも同期されていない)。
【0186】
[00226] 一部の実施例では、コマンドを中継したことに応答して、デバイス1300は、スレーブインターフェイス1302経由で機械コントローラ1360から応答を受信する(1614)。上記の例を続けて、プロセス1500を参照すると、動作1540における中継された自販承認信号に応答して、機械コントローラ1360は動作1542においてデバイス1300に確認応答を送信する。
【0187】
[00227] 一部の実施例では、デバイス1300は、短距離通信プロトコルに対応する短距離通信機能を備えた内部支払い周辺機器1340を更に備え、短距離通信機能は1つ以上のモバイルデバイスと通信するように構成されており、1つ以上のモバイルデバイスのそれぞれは、(i)補完的な短距離通信機能、及び(ii)長距離通信プロトコルに対応する長距離通信機能を備えて構成されている。例えば
図26を参照すると、デバイス1300は、
図7、
図8Aから
図8G、
図9Aから
図9E、及び
図23で考察した支払い処理機能(例えば
図20に示すセキュリティユニット755及び通信ユニット770)を提供するためのハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせを含む内部支払い周辺機器1340を備える。例えば、各モバイルデバイスは、長距離通信機能872及び短距離通信機能876を備えたモバイルデバイス150(
図21)に対応する。
【0188】
[00228] 一部の実施例では、デバイス1300は、短距離通信機能を介して各モバイルデバイスから機械コントローラ1360との取引を実行する取引要求を受信し(1616)、デバイス1300は取引要求を検証し、各モバイルデバイスが取引の支払いを開始する権限が各モバイルデバイスの長距離通信機能を介してリモートサーバにより与えられていることを示し、取引要求が有効であるとの判定に従って、デバイス1300は、例えば取引を実行する信号を機械コントローラ1360にスレーブインターフェイス1302経由で発することによって、機械コントローラ1360に要求された取引を実行させる。一部の実施例では、デバイス1300又はそのコンポーネント(例えば内部支払い周辺機器1340、
図26)は、短距離通信機能(例えばBLE、NFCなど)を介して各モバイルデバイス150(
図7、
図8Aから
図8G、
図9Aから
図9E、及び
図21)から取引要求を受信し、デバイス1300又はそのコンポーネント(例えば、内部支払い周辺機器1340、
図26;又はデバイスコントローラ1310、
図26)は、取引要求と関連付けられたAuthGrant又は認可承諾トークンが有効な認可コードを含んでいるかどうかを判定することによって各モバイルデバイス150からの取引要求を検証する。一部の実施例では、取引要求が有効な認可コードと関連付けられているとの判定に従って、デバイス1300又はそのコンポーネント(例えば、内部支払い周辺機器1340、
図26;又はデバイスコントローラ1310、
図26)は、唯一の仮想支払い周辺機器1330又は1340として機能しているデバイス1300によってあたかも発せられたかのように(換言すれば、あたかも支払い周辺機器1330又は1340によって発せられたかのように)要求された取引を実行するコマンドをスレーブインターフェイス1302経由で機械コントローラ1360に発する。
【0189】
[00229] 一部の実施例では、各支払い周辺機器1330から受信したコマンドが取引に対応するとの判定に従って、デバイス130
0は、各支払い周辺機器1330の識別子と関連付けられた取引の金額を少なくとも含む取引情報を記憶し(1618)、取引情報を記憶した後、デバイス1300は取引情報を各モバイルデバイスに短距離通信機能を介して送信し、取引情報をリモートサーバに各モバイルデバイスの長距離通信機能を介して送信するコマンドを各モバイルデバイスに発する。
【0190】
[00230] 一部の実施例では、デバイス1300又はそのコンポーネント(例えば、内部支払い周辺機器1340、
図26;又はデバイスコントローラ1310、
図26)は、機械コントローラ1360に中継される1つ以上の支払い周辺機器1330からのコマンド及び信号をモニタし、コマンド又は信号が取引と関連しているとの判定に従って、取引金額及び取引と関連付けられた各支払い周辺機器1330などの取引情報を記憶する。例えばデバイス1300は、1つ以上の支払い周辺機器1330のそれぞれの取引情報を、取引情報を支払い周辺機器のタイプ(例えば、紙幣受理機、硬貨受理機、支払いカードリーダなど)と関連付けるテーブルに記憶する。一部の実施例では、デバイス1300又はそのコンポーネント(例えば、内部支払い周辺機器1340、
図26;又はデバイスコントローラ1310、
図26)は、取引情報のテーブル又はその一部を、取引要求を送信した各モバイルデバイス150(又はデバイス1300との取引を実行する別のモバイルデバイス150)に短距離通信機能を介して送信する。一部の実施例では、デバイス1300又はそのコンポーネント(例えば、内部支払い周辺機器1340、
図26;又はデバイスコントローラ1310、
図26)は、取引情報のテーブル又はその一部をサーバ130にモバイルデバイスの長距離通信機能を介して送信するように各モバイルデバイス150に命令する。したがって、デバイス1300は、各モバイルデバイス150をサーバ130との通信ブリッジとして使用する。
【0191】
[00231] 一部の実施例では、デバイス1300又はそのコンポーネント(例えば、内部支払い周辺機器1340、
図26;又はデバイスコントローラ1310、
図26)はまた、機械コントローラ1360に中継される1つ以上の支払い周辺機器1330からのコマンド及び信号をモニタし、コマンド又は信号がエラーコード(例えば、硬貨詰まり、少ない硬貨又は紙幣数など)又は1つ以上の支払い周辺機器1330の動作と関連した他の情報と関連しているとの判定に従って、対応する動作情報を記憶する。一部の実施例では、デバイス1300はまた、取引情報のテーブル又はその一部と共に動作情報をサーバ130に、各モバイルデバイス150をサーバ130との通信ブリッジとして使用して送信する。
【0192】
[00232]
図29の動作を説明した特定の順序は例示に過ぎず、動作が実行され得る唯一の順序を示すことを意図するものではない。当業者であれば、本明細書に記載の動作を並べ替える様々な方法を理解するであろう。また、本明細書に記載の他の方法に関して本明細書に記載した他のプロセスの詳細はまた、
図29に関して以上で説明した方法1600にも同様に適用可能である。
【0193】
周辺機器への外部アクセスの提供
[00233] 一部の実施例では、電子デバイス1300は、周辺機器1330の1つ以上へのアクセス要求をモバイルデバイス150から内部周辺機器1340の短距離通信機能を介して受信する。この要求に応答して、デバイス1300は、周辺機器1330から各ホストインターフェイス1320経由で受信した信号(例えば、紙幣受理機周辺機器又は硬貨受理機周辺機器で受け取った金額を報告する支払い信号)を遮断する。信号を機械コントローラ1360に中継するのではなく、デバイス1300は、信号(又は信号に基づくデータ)をモバイルデバイス150に内部周辺機器1340を通じて中継する。デバイス1300は、周辺機器1330から受信した信号を遮断している(すなわち、信号を機械コントローラ1360ではなく内部周辺機器1340に中継している)間、周辺機器1330宛てのコマンド(例えば、機械コントローラ1360から送信されるポーリングコマンド)に、コマンドを周辺機器1330に中継するのではなく、確認応答(例えば、単に存在を報告すること)で応答する。
【0194】
[00234] 本明細書に記載されるように信号を遮断することによって、デバイス1300は、周辺機器1330への外部アクセスの提供(外部デバイスへの周辺アクセスの提供とも呼ばれる)を行うことができる。より具体的には、デバイス1300は、外部デバイス(例えば、モバイルデバイス150、又は物理的に機械120の外部にありデバイス1300と通信状態にある任意のデバイス)が機械120の周辺機器1330により提供される機能にアクセスできるように構成されることがある。本明細書で使用される「アクセス」という用語は、周辺機器1330の機能に基づいたデータの提供を指すことがあるが、外部デバイスとアクセスが行われている周辺機器1330との直接通信を必要としない。外部デバイスに周辺機器1330へのアクセスを提供することによって、外部デバイスに周辺機器1330の機能の恩恵が与えられる。例えば周辺機器1330が紙幣回収機である場合、紙幣回収機の機能にアクセスする外部デバイスには、紙幣回収機の状態を示すデータ又は紙幣回収機の機能と関連する任意の他のデータ(例えば、紙幣回収機が1ドル紙幣をたった今受理した旨)が提供されることがある。
【0195】
[00235] 1つの例示的なシナリオでは、デバイス1300と通信状態にあるモバイルデバイス150上で実行するアプリケーションに、機械120の紙幣受理機周辺機器1330へのアクセスが提供されることによって、アプリケーションが現金支払いを受理する方法が提供されることがある。したがって、モバイルデバイス150(ひいてはモバイルデバイス150上で実行するアプリケーション)の能力が、本明細書に記載されるように機械120の周辺機器1330により提供される機能へのアクセスが与えられる場合に強化される。かかるモバイルデバイス150上で実行するアプリケーション(本明細書ではモバイルアプリケーションと呼ばれる)は、アクセスが行われている周辺機器1330の機械120により必ずしも蓄えられていない製品及び/又はサービスを販売するが、製品及び/又はサービスの支払いを現金で行うオプションの利用可能性から恩恵を受けるように構成されることがある。例えば、モバイルデバイス150上で実行するアプリケーションが、一部の管轄区域の法律に従って現金を使用した購入のみが可能な宝くじ券を販売することがある。例示的な製品には、機械120と関連付けられた場所で入手可能な(例えば、店員又は銀行の窓口係によって提供される)物理的な製品が含まれるか、又は手に入れるかあるいは物理的に配達されることが必要とされない仮想製品(例えば、物理的なスクラッチカードの配送や使用を必要としない仮想抽選申込と関連する宝くじ券)が含まれることがある。例示的なサービスには、(例えば、銀行又は信用組合が物理的な場所を有しているかどうかにかかわらず、銀行又は信用組合の口座に現金を預け入れるために機械120の紙幣受理機周辺機器1330を使用する)銀行取引や、現金を口座に預け入れるオプションを必要とするかあるいは提供する任意の他のサービス(例えば、アドオン機能を現金で購入可能なゲームサービス、送金人が機械120の紙幣受理機に現金を預け入れ、受取人が別の機械120の現金払い出しモジュールにアクセスすることによって現金を引き出すことを可能にするピアツーピアの送金サービス、又は現金支払いを受理する任意の他のサービス)が含まれる。かかる製品及び/又はサービスは、機械120により自販又は宣伝される製品及び/又はサービスに関連することがあるか、又は機械120により自販又は宣伝される製品及び/又はサービスと無関係であることがある(例えば、ソーダマシンの紙幣受理機の機能が宝くじ券を販売するモバイルアプリケーションによってアクセスされることがあるか、又は洗濯機の硬貨受理機の機能がゲーム内のアドオン機能の代償として支払いを受理するように構成されたモバイルゲームアプリケーションによってアクセスされることがある)。
【0196】
[00236]
図30Aから
図30Bは、一部の実施例に係る電子周辺機器1330への外部アクセスを提供するように機械120を改造するためのデバイス1300の通常動作3002及びインターセプト動作3004のブロック図を示している。デバイス1300及び関連コンポーネント(1302~1360)は、
図26を参照して以上で説明した同様の番号の特徴に対応しており、その一部については簡潔にするために更なる考察を行わない。更に、
図26に示された一部の特徴が(明確にするために)
図30A及び
図30Bに示されていないが、
図26から
図29について以上で説明した概念のそれぞれは、
図30A及び
図30B、
図31から
図34、並びに
図35A及び
図35Bについて本明細書に記載される実施例に等しく適用される。
【0197】
[00237]
図30Aでは、デバイス1300は機械コントローラ1360と周辺機器1330との間で信号を中継するように構成されている。例えば、デバイス1300は(例えば1ドル紙幣を受け取ると)周辺機器1330から支払い受領信号を受信し(3118)、機械コントローラ1360に信号(3124)を中継する。通常動作におけるポーリングに関して、デバイス1300は、機械コントローラ1360から受信したポーリングに応答し、周辺機器1330にポーリングを非同期的に送信するように構成されている。
図28A及び
図28Bを参照して以上で説明したように、デバイス1300は、周辺機器1330から受信したポーリング応答に基づいて機械コントローラ1360から受信したポーリングに応答する。したがって、通常動作を実行する間、デバイス1300は、
図28A及び
図28Bを参照して以上で説明され、
図31及び
図32を参照して以下でより詳細に説明されるように周辺機器1330及び機械コントローラ1360を橋渡しする信号ルータとして機能する。
【0198】
[00238]
図30Bでは、デバイス1300は、機械コントローラ1360から受信した信号に対して確認応答を行う(例えば、ポーリングに確認応答を行う)が、それらの信号を周辺機器1330に中継すること(あるいはそれらの受信信号に基づいて信号を送信すること)を行わないように構成されている。更に、周辺機器1330から受信した信号(例えば支払い受領信号3306)を機械コントローラ1360に中継せずに、デバイス1300は、内部周辺機器1340を介して外部デバイス(例えばモバイルデバイス150)に、周辺機器1330から受信した信号を中継する(又は受信信号に基づいて、伝送取引信号3312などの信号を送信する)。例えばデバイス1300は、(例えば1ドル紙幣を受け取ると)周辺機器1330から支払い受領信号3306を受信し、支払い受領信号3306、又は支払い受領信号に基づいた信号(例えば伝送取引信号3312)を、内部周辺機器1340経由でモバイルデバイス150に中継する。この開示は、周辺機器1330から受信した信号を、機械コントローラ1360にではなく外部デバイスに、信号を遮断するものとして、又はインターセプト動作として中継する動作に言及する。インターセプト動作を実行する間、デバイス1300は、
図33及び
図34を参照して以下でより詳細に説明されるように周辺機器1330及び外部デバイス(例えばモバイルデバイス150)を橋渡しする信号ルータとして機能する。
【0199】
[00239] 一部の実施例では、デバイスコントローラ1310で受信された信号が、少なくとも(i)宛先アドレス、及び(ii)メッセージデータを含む。より具体的には、デバイス1300で受信された、周辺機器1330からの信号は、指定されたマスターのアドレス(本明細書ではマスターアドレスと呼ばれる)を含み、デバイス1300で受信された、機械コントローラ1360からの信号は、指定された周辺機器1330のアドレス(本明細書では周辺機器アドレスと呼ばれる)を含む。マスターアドレス及び周辺機器アドレスは、登録プロセス中(例えば、
図27の設定動作1406、1416、及び1426中、
図31の設定動作3102及び3106中、
図32の設定動作3208中、及び
図34の設定動作3416中)に識別されるかあるいは割り当てられることがある。メッセージデータは、発信モジュールの状態の表示(例えば、特定の周辺機器1330から受信した信号が、特定の周辺機器1330の状態の表示を含むことがある)、又は発信モジュールの機能に関連する任意の他のデータを含むことがある。本明細書で使用される「発信モジュール」という用語は、説明されている宛先アドレス又はメッセージデータを含む信号を送信したモジュール(例えば、周辺機器1330又は機械コントローラ1360)を指す。
【0200】
[00240] 例えば、周辺機器1330によりデバイス1300に送信された信号が機械コントローラ1360のアドレスをマスターアドレスに指定する場合、デバイスコントローラ1310は、
図30Aに示すように信号のメッセージ(例えば、1ドル紙幣の受領を示す)を含む信号を機械コントローラ1360に中継する。一方、周辺機器1330によりデバイス1300に送信された信号がデバイス1300のアドレスをマスターアドレスに指定する場合、デバイスコントローラ1310は、
図30Bに示すように外部デバイス(例えばモバイルデバイス150)に、信号のメッセージ(例えば、1ドル紙幣の受領を示す)を含む信号を中継するか、又は信号を処理し最初に受信したメッセージ(例えば、1ドル紙幣が受領され、閾値時間内に返金されなかったことを示す)に少なくとも部分的に基づいたメッセージを含む信号を送信する。
【0201】
[00241]
図31から
図34は、一部の実施例に係る機械120の電子周辺機器1330に外部アクセスを提供するプロセスの概略的流れ図を示している。
図31は通常動作(例えば、
図30Aの3002)の方法3100を示し、
図32は通常動作からインターセプト動作(例えば、
図30Bの3004)への移行の方法3200を示し、
図33はインターセプト動作の方法3300を示し、
図34はインターセプト動作から通常動作への移行の方法3400を示す。
【0202】
[00242]
図31から
図34の動作は、機械コントローラ1360、電子デバイス1300(例えば、
図26のメモリ1314)、電子周辺機器1330、モバイルデバイス150、及びサーバ130の任意の組み合わせのコンピュータメモリ又は非一時的コンピュータ可読記憶媒体に記憶されている命令によって管理されている。命令は、機械コントローラ1360、電子デバイス1300(例えば、
図26の処理ユニット1312)、電子周辺機器1330、モバイルデバイス150、及びサーバ130の任意の組み合わせの1つ以上のプロセッサによって実行される。各コンピュータ可読記憶媒体には、磁気又は光ディスク記憶デバイス、フラッシュメモリなどの固体記憶デバイス、又は1つ以上のその他の不揮発性メモリデバイスが含まれることがある。各コンピュータ可読記憶媒体に記憶されている命令には、ソースコード、アセンブリ言語コード、オブジェクトコード、又は1つ以上のプロセッサにより解釈される他の命令型式のうちの1つ以上が含まれることがある。
図31から
図34の一部の動作は結合されることがある、及び/又は
図31から
図34の一部の動作の順序は変更されることがある。
【0203】
[00243] 方法3100~3400は(本明細書に記載の概念を簡潔かつ明確にするために)1つの周辺機器1330を含む実施例を示しているが、本明細書に記載の概念は、複数の周辺機器1330(例えば、
図26から
図29を参照して以上で説明したような周辺機器1330-A~1330-N)を含む実施例にも適用される。具体的には、機械120が複数の周辺機器1330を備える実施例では、デバイス1300は、(i)複数の周辺機器1330のそれぞれをポーリングし、(ii)方法3100~3400に記載されるように複数の周辺機器1330のうちの特定の周辺機器1330から受信した信号を処理し、(iii)方法3100~3400に記載されるように信号を送信した周辺機器1330に応答する。例えば機械120は、第1の周辺機器1330として紙幣受理機を、第2の周辺機器1330として硬貨受理機を備えることがある。かかるシナリオでは、モバイルデバイス150に、方法3100~3400に記載の概念に従って紙幣受理機から受信した信号と、方法3100~3400に記載の概念に従って硬貨受理機から受信した信号とに関するデータが提供されることになる。
【0204】
[00244] 更に、方法3100~3400は紙幣受理機としての周辺機器1330に言及しているが、本明細書に記載の概念は他のタイプの周辺機器1330にも適用される。以上で説明したように、例示的な周辺機器1330には、紙幣受理機、硬貨受理機、及び支払いカードリーダなどのキャッシュレス支払いデバイスが含まれる。例示的な周辺機器1330には、支払いの受理に関係する又は関係しない任意の他のタイプの電子周辺デバイスが含まれることもある。
【0205】
[00245] 最後に方法3100~3400の動作は、特定の順序で、互いに対して特定の垂直オフセット(間隔)で示されている。特定の順序に関して、特定の動作の説明に別途記載がない限り、動作は、特に異なる列の動作について、また特に非同期であるとされる動作について、図に示された順序を外れて実行されることがある。例えば動作3104の確認応答は、動作3102で送信されたポーリング信号に応答して送信されるものと(以下でより詳細に)説明され、したがって、この動作対及び同様に記載のものは図に示した順序で実行されなければならない。ただし、動作3106のポーリング信号は、動作3102で送信されるポーリング信号の前後又はこれと同時に送信されることがある。なぜなら、これらの動作の説明に特定の順序が記載されていないか又は時間的制約が含まれていないためである。動作についての特定の垂直オフセットに関して、これらのオフセットは明確にするために提供されており、時間的尺度ではない。したがって、動作間の相対的な間隔サイズは、かかる動作の実行間に経過しなければならない相対的時間に影響を及ぼさない。
【0206】
[00246]
図30Aを参照して以上で説明したように、通常動作は、デバイス1300が周辺機器1330と機械コントローラ1360との間で信号を中継することによって特徴付けられることがある。
図31は、一部の実施例に係る例示的な通常動作を示している。
図31を参照すると、機械コントローラ1360はデバイス1300をポーリングし(3102)、デバイス1300は確認応答で応答する(3104)。(動作3102及び3104と比べて)非同期的に、デバイス1300は周辺機器1330をポーリングし(1306)、周辺機器1330は確認応答で応答する(3108)。デバイス1300が動作3102においてポーリングされるときに機械コントローラ1360のスレーブとして登録されていない場合、機械コントローラ1360は、
図27(動作1404~1408)を参照して以上で説明したように設定信号でデバイス1300を登録する。同様に、周辺機器1330が動作3106においてポーリングされるときにデバイス1300のスレーブとして登録されていない場合、デバイス1300は、
図27(動作1414~1418)を参照して以上で説明したように設定信号で周辺機器1330を登録する。
【0207】
[00247] 機械コントローラ1360は、MDBプロトコルの特定の実装により決定された頻度でデバイス1300をポーリングし続け、続けてデバイス1300は、MDBプロトコルの特定の実装により決定された頻度で、又は任意の他の所定の頻度で周辺機器1330をポーリングする。やがて支払いイベント(3114)が周辺機器1330で発生する(例えば、1ドル紙幣が受領される)。デバイス1300が支払いイベントを示す信号を周辺機器1330から受信するまで、デバイス1300は機械コントローラ1360からのポーリングに確認応答で応答する。したがって、機械コントローラ1360がデバイス1300を再度ポーリングする(3110)とき、デバイス1300は確認応答で応答する(3112)。支払いイベントの後に、デバイス1300は周辺機器1330をポーリングし(3116)、周辺機器1330は支払いイベント3114を示す支払い受領信号で応答する(3118)。例えば支払い受領信号は、(
図30Aに示すように)機械コントローラ1360宛てに送信され、1ドル紙幣が周辺機器1330で受領されたことを示すメッセージを含む。
【0208】
[00248] 支払い受領信号を周辺機器1330から受信したことに応答して、デバイス1300は、(i)周辺機器1330に確認応答で応答し(3120)、次のポーリングを機械コントローラ1360から受信した(3122)後に、(ii)(例えば、1ドル受領メッセージを含む)支払い受領信号を機械コントローラ1360に送信する(3124)。
図28A及び
図28Bを参照して以上で説明したように、デバイス1300は、その他の動作又はイベントが行われるのを待つことなく動作3120において確認応答で周辺機器1330に応答することがあるが、デバイス1300は、動作3124において支払い受領信号を機械コントローラ1360に送信する機会を得るまで、(動作3122に示す)次のポーリングの受信を待たなければならない。
【0209】
[00249]
図30Bを参照して以上で説明したように、インターセプト動作は、デバイス1300が(デバイス1300と機械コントローラ1360との間ではなく)周辺機器1330と外部デバイス(例えばモバイルデバイス150)との間で内部周辺機器1340経由で信号を中継することによって特徴付けられることがある。
図32は、一部の実施例に係る通常動作からインターセプト動作への移行を示している。
図32を参照すると、モバイルデバイス150上で実行するアプリケーションが、ユーザにより要求された機能を実行するために電子周辺デバイス(例えば周辺機器1330)へのアクセスを必要とすることがある。例えばアプリケーションは、(例えば、製品やサービスの代金を支払うため、口座に入金するため、又は上記のいずれかの理由で)現金取引を処理せよとのユーザ要求を受信する(3202)。ユーザ要求に応答して、モバイルデバイス150は、(例えば、以上で説明した内部周辺機器1340を介して)デバイス1300との接続を確立する(3204)。一部の実施例では、接続プロセスの一部として、モバイルデバイス150は、デバイス1300に周辺機器1330と関連付けられた機能へのアクセス要求を送信する。一部の実施例では、接続プロセスの一部として、デバイス1300は要求を検証し、モバイルデバイス150が、リモートサーバ(例えばサーバ130)によってモバイルデバイスの通信機能(例えば長距離通信機能)を介して、周辺機器1330が生成した信号へのアクセスを許可されていることを示す。デバイス検証プロセス及び(モバイルデバイス150及びデバイス1300間の)接続プロセスの実施の特徴は、(例えば、
図20に示したセキュリティユニット755及び通信ユニット770を含む)
図7、
図8Aから
図8G、
図9Aから
図9E、及び
図23を参照して以上でより詳細に説明されている。
【0210】
[00250] モバイルデバイス150への接続及び/又は周辺機器1330と関連付けられた機能へのアクセス要求に応答して、デバイス1300は、周辺機器1330を(機械コントローラ1360とではなく)デバイス1300と通信するように再構成するために、周辺機器1330にリセット信号(3206)及び/又は設定信号(3208)を送信する。以上で説明したように、デバイス1300は、周辺機器1330のマスターアドレス(信号宛先アドレス)をデバイス1300のアドレスにリセットすることによって、周辺機器1330をデバイス1300と通信するように再構成する。周辺機器1330のマスターアドレスをデバイス1300のアドレスにリセットすると、デバイス1300は実質的に周辺機器1330のマスターになる。結果として、機械コントローラ1360はもはや周辺機器1330のマスターではなくなる(
図30B参照)。周辺機器1330のマスターになることによって、デバイス1300は機械120のように見える。換言すれば、周辺機器1330は、あたかもデバイス1300が機械120又は機械コントローラ1360であるかのようにデバイス1300と通信する(例えば、周辺機器1330は機械コントローラ1360宛てにではなくデバイス1300宛てに信号を送信する)。例えば1ドル紙幣を受領すると、紙幣回収機周辺機器1330が1ドル紙幣の受領を機械コントローラ1360にではなくデバイス1300に報告する。結果として、機械コントローラ1360は、1ドル紙幣が機械120の紙幣回収機に投入されたという指示を受信することはなく、したがって、内部自販動作を進めることはない(たとえ機械にお金が投入されたとしても、機械に蓄えられている製品を購入することができないか、あるいは製品の購入にクレジットを利用することができない)。別の言い方をすれば、紙幣回収機での1ドル紙幣の受領を報告するいずれの信号もデバイスによって遮断され、機械コントローラ1360に中継されない。リセット信号及び/又は設定信号の後に、デバイス1300は周辺機器1330から確認応答を受信する(3210)。
【0211】
[00251] 周辺機器1330の信号宛先アドレスが更新されてデバイス1300のアドレスになると、デバイス1300は、周辺機器1330をポーリングし(3212、3216)、周辺機器1330から確認応答を受信し(3214、3218)続ける。この間に機械コントローラ1360からデバイス1300が受信したポーリング(3222、3226)は周辺機器1330に中継されない。その代わりに、デバイス1300は、機械コントローラ1360がその登録デバイスのリストからデバイス1300を削除しないようにひたすらポーリングに対する確認応答を行う(3224、3228)。別の言い方をすれば、デバイス1300は、通常は機械コントローラ1360から受信した信号を周辺機器1330に渡すが、(モバイルデバイス150がデバイス1300に接続し、デバイス1300が周辺機器1330をリセットした結果として)インターセプト動作を実行している間は、デバイス1300は機械コントローラ1360から受信したポーリングに依然として応答するが、いかなるメッセージも周辺機器1330に渡すことはない。その代わりに、デバイス1300は機械コントローラ1360から受信したメッセージに対してひたすら確認応答を行う。したがって、デバイス1300は、機械コントローラ1360に登録されたままであり、(機械コントローラ1360の視点から見ると)アイドル状態にあるように見える。インターセプト動作を実行している間、(i)デバイス1300と機械コントローラ1360との通信、及び(ii)デバイス1300と周辺機器1330との通信は非同期であり続ける。デバイス1300は、(
図34を参照して以下でより詳細に説明される)通常動作への再移行が行われるまでインターセプト動作を実行し続ける。
【0212】
[00252]
図33は、一部の実施例に係るインターセプト動作を示している。
図33を参照すると、支払いイベント(3302)が周辺機器1330において発生する(例えば、1ドル紙幣が紙幣受理機周辺機器1330に投入される)。デバイス1300から受信した次のポーリング(3304)に応答して、周辺機器1330は、支払い受領信号(3306)をデバイス1300に支払いイベント(例えば1ドルの受領)を示すかあるいはこれと関連したメッセージで送信する。デバイス1300は、支払い受領信号に対して確認応答を行い(3308)、支払い受領信号に基づいて取引を生成する(3310)。取引は、支払い受領信号に含まれたものと同じメッセージ(例えば、1ドル受領)及び/又は任意選択的に追加の情報を含む関連メッセージ(例えば、1ドル受領かつ返金なし)を含むことがある。
【0213】
[00253] デバイス1300は、取引(より具体的には、取引を記述するあるいは取引と関連したメッセージを含む信号)をモバイルデバイス150に送信する(3312)。モバイルデバイス150は、更なる処理のために取引をサーバ130に転送する(3314)。サーバ130は取引を処理する(3316)。例えばサーバ130は、支払いイベント3302の一部として預け入れた現金の額に従ってユーザの口座に資金の額を追加する(例えば、ユーザの口座に1ドルを追加する)。別の例としてサーバ130は、支払いイベント3302の一部として預け入れた現金の額に従って受領者に資金の額を送金する(例えば、受領者に1ドルを送金する)。別の例としてサーバ130は、要求された購入に従って指定された製品やサービスをユーザの口座と関連付ける(例えば、支払いイベント3302の一部として預け入れた現金の額と関連した資金の額の代償として仮想宝くじ券をユーザの口座と関連付ける)。
【0214】
[00254] 取引の処理の結果として、サーバ130は、支払いが処理されたこと及び/又は支払いが処理された結果(例えば、購入確認又は入金確認)を示す通知をモバイルデバイス150に送信する(3318)。一部の実施例では、モバイルデバイス150(より具体的には、モバイルデバイス上で実行するアプリケーション)は、受信した通知に関する情報(例えば、成功した購入又は入金を示すアラート、又は新しい口座残高を示す更新されたユーザインターフェイス)を表示する。
【0215】
[00255] 紙幣回収機の例に戻ると、一部の実施例では、動作3302~3312は、周辺機器1330に紙幣が投入されるたびに繰り返される。任意選択的に、モバイルデバイス150は、連続した取引(例えば、連続した1ドル投入)を単一の取引メッセージにグループ化し、サーバ130で処理するために動作3314において取引メッセージを送信する。代替的に、モバイルデバイス150は、連続した取引(例えば、連続した1ドル投入)のそれぞれについてサーバ130で処理するために、動作3314において取引メッセージを送信する。かかる実施例では、動作3302~3316(又は動作3302~3318、又は動作3302~3320)は、周辺機器1330に紙幣が投入されるたびに繰り返される。
【0216】
[00256] デバイス1300が
図33を参照して以上で説明したインターセプト動作を実行するとき、デバイス1300は、
図32を参照して以上で説明したように機械コントローラ1360への登録が維持されるように機械コントローラ1360から受信したポーリング(3322、3326)に確認応答(3324、3328)で応答する。
【0217】
[00257]
図34は、一部の実施例に係るインターセプト動作から通常動作への再移行を示している。
図34を参照すると、モバイルデバイス150は、モバイルデバイス150が周辺機器1330(又は周辺機器1330により提供される機能)へのアクセスをもはや必要としないという(例えば、モバイルデバイス150上で実行するアプリケーションへのユーザ入力を介した)指示を受信あるいは取得する(3402)。例えばユーザは、取引又は入金が完了していることを示すアフォーダンスをアプリケーションのユーザインターフェイスで選択する(例えばユーザは、それ以上宝くじ券を購入したいか尋ねられたとき、又はそれ以上入金したいか尋ねられたときに「いいえ」オプションを選択する)。アクセス完了通知3402に応答して、モバイルデバイスは、モバイルデバイス150が周辺機器1330(又は周辺機器1330により提供される機能)へのアクセスをもはや必要としないことを示すアクセス完了通知をデバイス1300に送信する(3404)。
【0218】
[00258] アクセス完了通知を受信したことに応答して、デバイス1300は、周辺機器1330にリセット信号を送信し(3406)、これによって周辺機器はもはやデバイス1300宛てに信号を送信しなくなる。続けてデバイス1300は、例えば設定信号を送信する(3416)ことによって、周辺機器1330の信号宛先アドレスを機械コントローラ1360のアドレスにリセットする。結果として、周辺機器1330によりデバイス1300に送信されるその後のメッセージは、機械コントローラ1360宛てに送信される。別の言い方をすれば、機械コントローラ1360は再度マスターとして機能し、デバイス1300は再度機械コントローラ1360(マスター)と周辺機器1330(スレーブ)との間のメッセージのルータとして機能する。
【0219】
[00259] 周辺機器1330の信号宛先アドレスが機械コントローラ1360のアドレスにリセットされる結果として、デバイス1300は、
図30A、
図31、及び
図32を参照して以上で説明した通常動作を始める。例えばデバイス1300は、機械コントローラ1360から受信したポーリング(3412)に対する確認応答をし(3414)、非同期的に周辺機器1330をポーリングする(3416)。デバイス1300は、周辺機器1330から確認応答(3418)を受信し、周辺機器1330から受信したメッセージを機械コントローラ1360に中継する。
【0220】
[00260]
図35A及び
図35Bは、一部の実施例に係る周辺機器アクセスシステムの一部として使用されているモバイルアプリケーションのグラフィック表示が示されたモバイルデバイス150を示している。
【0221】
[00261]
図35Aは、機械120に蓄えられている製品に関係のない仮想製品(例えば宝くじ券)の購入に対する現金支払いを受理するためにモバイルデバイス150が機械120の周辺機器1330にアクセスする例示的なシナリオを示している。この例では、ユーザの口座は3ドルの残高を有し、モバイルアプリケーションのユーザインターフェイス3502は、5ドルの購入を行うために(例えば、
図32の動作3204の結果として機械120に接続した後に)ユーザに機械120に2ドル投入することを促す。ユーザが機械120に2ドル投入し、取引が動作3302~3320(
図33)を参照して以上で説明したように処理されるとき、モバイルアプリケーションのユーザインターフェイス3504が、5ドルの購入が成功したこと、及び新しい残高が0ドルであることをユーザに通知する。通知は動作3320(
図33)における承認と対応する。
【0222】
[00262]
図35Bは、ユーザの口座への入金のための現金支払いを受理するためにモバイルデバイス150が機械120の周辺機器1330にアクセスする例示的なシナリオを示している。この例では、ユーザの口座は3ドルの残高を有し、モバイルアプリケーションのユーザインターフェイス3512が、ユーザが2ドル入金するオプションを選択した結果として(例えば、
図32の動作3204の結果として機械120に接続した後に)ユーザに機械120に2ドル投入することを促す。ユーザが機械120に2ドル投入し、取引が動作3302~3320(
図33)を参照して以上で説明したように処理されるとき、モバイルアプリケーションのユーザインターフェイス3514が、2ドルの入金が成功したこと、及び新しい残高が5ドルであることをユーザに通知する。通知は動作3320(
図33)における承認と対応する。
【0223】
[00263]
図30Aから
図35Bを参照して説明した実施例は、(例えば周辺機器1330が紙幣受理機であり、周辺機器1330が現金購入又は預入をサポートするためにアクセスされる)例示のための具体例を用いる。他のシナリオが、それ以外ではモバイルアプリケーションを実行するデバイスに無関係の機械の電子周辺デバイスへのモバイルアプリケーションアクセスを提供することによって実施されることがある。例えば、モバイルアプリケーションが、ユーザに現金を使用可能にするモバイルアプリケーションの機能(例えば、ピアツーピア現金支払いを受領すること、口座から現金を引き出すこと、モバイルアプリケーションにより提供される製品やサービスの現金による返金を受領すること、ゲームアプリケーションにおける達成の結果として懸賞金を受領すること、仮想宝くじ券に当選した結果として現金支払いを受領することなど)をサポートするために、機械120の現金払い出し周辺機器(例えば、自販機120での返金処理を、例えばクオーターを提供するクオーター返却口又は1ドル紙幣を出力する紙幣受理機を使用して行うためのモジュール)にアクセスすることがある。
【0224】
[00264] 更に、実施例が現金取引を伴うシナリオに限定される必要はない。他のタイプの電子周辺デバイスが、モバイルアプリケーションの機能であって、それ以外ではかかる機能をサポートするのに必要なハードウェアに直接アクセスすることはない機能を拡張するために、機械120からアクセスされることがある。別の言い方をすれば、デバイス1300は、モバイルデバイス150上で実行するアプリケーションと電子周辺デバイス1330との無線通信を、(i)電子周辺デバイス1300を通常は電子周辺デバイス1330のマスターとして機能する機械コントローラ1360から通信分離し、(ii)電子周辺デバイス1300と電子周辺デバイスのマスターとして・BR>@能するモバイルアプリケーションとの通信結合を、モバイルアプリケーションが電子周辺デバイス1330により提供される機能へのアクセスをもはや必要としなくなるまで行うことにより提供することによって、モバイルデバイス150が機械120の電子周辺デバイス1300により提供される機能にアクセスすることを可能にする。
【0225】
その他
[00265] 以上の説明は、具体的な実施例を参照して説明されている。しかしながら、上記の例示的な考察は、網羅的であること又は開示された正確な形態に請求項を限定することが意図されていない。上記の教示に鑑みて多くの変形が可能である。実施例は、動作の原理及び実用性を最良に説明することによって当業者が実施可能なように選ばれ記載された。
【0226】
[00266] 様々な図面は複数の要素を特定の順序で示している。ただし、順序に依存しない要素が並べ替えられることがあり、他の要素が結合又は分離されることがある。一部の並べ替えや他のグループ化が具体的に述べられているが、他のものも当業者に明らかになるため、本明細書に示された順序付け及びグループ化は代替手段の網羅的なリストではない。
【0227】
[00267] 本明細書で使用される単数形「1つの(a)」、「1つの(an)」、及び「その(the)」は、文脈が明らかに別のことを指摘しない限り複数形も含み、「及び/又は(and/or)」という用語は、列挙された関連項目の1つ以上の可能な全ての組み合わせを包含し、「第1の」や「第2の」という用語は、ある要素を他の要素と区別するのにのみ使用され、要素そのものを限定せず、「もし(if)」という用語は、文脈に応じて「とき(when)」、「すると(upon)」、「に応答して(in response to)」、又は「に従って(in accordance with)」を意味すると解釈されることがあり、「含む(include)」、「含んでいる(including)」、「備える(comprise)」、及び「備えている(comprising)」という用語は、特定の特徴又は動作を特定するが、追加の特徴又は動作を除外するものではない。最後に、本明細書で使用される「マスター」及び「ホスト」という用語は、明らかに矛盾する記載がない限り同義である。