JP6505948B2 - 支払いシステムのメッセージディスパッチャ - Google Patents

支払いシステムのメッセージディスパッチャ Download PDF

Info

Publication number
JP6505948B2
JP6505948B2 JP2018512995A JP2018512995A JP6505948B2 JP 6505948 B2 JP6505948 B2 JP 6505948B2 JP 2018512995 A JP2018512995 A JP 2018512995A JP 2018512995 A JP2018512995 A JP 2018512995A JP 6505948 B2 JP6505948 B2 JP 6505948B2
Authority
JP
Japan
Prior art keywords
message
payment
module
messages
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018512995A
Other languages
English (en)
Other versions
JP2018533785A (ja
Inventor
クシチズ ヴァデラ,
クシチズ ヴァデラ,
Original Assignee
スクエア, インコーポレイテッド
スクエア, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by スクエア, インコーポレイテッド, スクエア, インコーポレイテッド filed Critical スクエア, インコーポレイテッド
Publication of JP2018533785A publication Critical patent/JP2018533785A/ja
Application granted granted Critical
Publication of JP6505948B2 publication Critical patent/JP6505948B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/08Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes
    • G06K7/082Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes using inductive or magnetic sensors
    • G06K7/083Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes using inductive or magnetic sensors inductive
    • G06K7/084Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes using inductive or magnetic sensors inductive sensing magnetic material by relative movement detecting flux changes without altering its magnetised state
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/202Interconnection or interaction of plural electronic cash registers [ECR] or to host computer, e.g. network details, transfer of information from host to ECR or from ECR to ECR
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/204Point-of-sale [POS] network systems comprising interface for record bearing medium or carrier for electronic funds transfer or payment credit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/327Short range or proximity payments by means of M-devices
    • G06Q20/3278RFID or NFC payments by means of M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/352Contactless payments by cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/356Aspects of software for card payments
    • G06Q20/3567Software being in the reader
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

関連出願へのクロスリファレンス
本願は、2015年9月23日に出願された「Message Dispatcher for Payment System」と題する米国特許出願第14/863,381号(2016年5月3日に米国特許第9,330,383号として特許された)の優先権の利益を享受する。この出願は、参照によりその全体が本明細書に組み入れられる。本願はまた、2016年2月24日に出願された「Message Dispatcher for Payment System」と題する米国特許出願第15/052,790号の優先権の利益を享受する。この出願は、参照によりその全体が本明細書に組み入れられる。本願はまた、2016年2月24日に出願された「Message Dispatcher for Payment System」と題する米国特許出願第15/052,792号の優先権の利益を享受する。この出願は、参照によりその全体が本明細書に組み入れられる。
電子トランザクション処理システムは支払いカードと支払い端末とを用いてもよい。支払いカードは、支払い端末でスワイプされる磁気ストライプを有する。支払い端末は磁気ストライプからクレジットカード番号などの支払い情報を読み取り、その支払い情報をトランザクションに関する情報と共にリモートトランザクションサーバに送信する。リモートトランザクションサーバはトランザクションの許否を決定し、支払い端末に応答を提供する。そのような電子トランザクション処理システムは不正行為にさらされやすいことが知られている。例えば、支払いカードの磁気ストライプはクレジットカード番号を支払いターミナルに暗号化なしで提供する。この場合、この情報は支払いカードまたは支払い端末のいずれかから取得可能である。
支払い技術は、不正トランザクションの可能性を低減するよう発展してきた。Europay/Mastercard/Visa(「EMV」)システムは支払いカードの一部分として受動的電子チップを備えてもよい。支払い端末によって受動的電子回路に電力が供給される。この支払い端末は、受動的電子回路に物理的に係合するか、または、支払い端末によって送信される無線キャリア信号の誘導結合によって給電する。支払いカードの受動的電子回路は、物理的インタフェースを介して、または、無線キャリア信号の変調によって、支払い端末を活性化してそれと通信する。支払い端末に送信される前に、支払い情報は受動的電子回路によって暗号化される。
近距離無線通信(「NFC」)システムはスマートフォンやスマートウォッチやタブレットなどの電子デバイスの間のデータ伝送を促進する。NFC支払いシステムが実装されてきており、そこでは、電子デバイスが無線キャリア信号を提供する支払い端末に、支払い情報を伝達する。電子デバイスおよび支払い端末は無線キャリア信号を変調することによって通信する。EMV支払いシステムと同様に、NFC可能デバイスは支払い端末に支払い情報を暗号化された形態で送信してもよい。EMVまたはNFC支払いトランザクションを処理する支払い端末は、チップカードまたは電子デバイスとリモート支払いサーバとの間のトランザクションを処理するための専用ソフトウエアを含んでもよい。
本開示の上述及び他の側面、性質および種々の利点は、添付図面と併用される以下の詳細な説明の考慮のもとにより明らかとなるであろう。
本開示のある実施の形態に係る、支払いシステムの説明的ブロック図を示す。
本開示のある実施の形態に係る、支払いデバイスおよび支払いリーダの説明的ブロック図を示す。
本開示のある実施の形態に係る、支払いリーダのブロック図を示す。
本開示のある実施の形態に係る、NFCチップのコンポーネントのブロック図を示す。
本開示のある実施の形態に係る、支払いリーダのソフトウエアブロック図を示す。
本開示のある実施の形態に係る、メッセージディスパッチャモジュールおよび機能モジュールでメッセージを処理するための例示的ステップを説明する非限定的フロー図を示す。
支払いリーダは、ポイントオブセール(point-of-sale)アプリケーションと、EMVチップカードやNFC支払いデバイスなどの支払いデバイスと、の間のインタフェースを提供する。支払いトランザクションは、マーチャントがモバイルデバイス上でポイントオブセールアプリケーションを実行することなどによって開始される。ポイントオブセールアプリケーションは、通信インタフェースを介して支払いリーダと通信し、支払いリーダはトランザクションの処理に進む。支払いリーダは、近距離無線通信を用いて支払いデバイスとの通信を開始するか、または、顧客が支払いリーダのスロットにチップカードを挿入した場合は、そのチップカードとの直接電気接触を介して通信を開始する。支払いデバイスが支払い情報を提供するのを支払いリーダが待っている間、支払いリーダはまた、ポイントオブセールアプリケーションとの通信や支払いリーダの他のコンポーネントの動作などの他の機能を実行するであろう。
支払いデバイスから支払い情報を受信すると、支払いリーダはトランザクション処理手順にしたがってトランザクションを処理するであろう。例えば、支払いリーダは、ユーザによって提供された支払いのタイプ(例えば、Visa, Mastercard等)に基づいて、トランザクション処理手順を選択してもよい。支払いリーダは、次いで、トランザクション処理手順にしたがって支払いを処理するであろう。これは、支払いサーバへの最終的な伝達のために支払い情報を暗号化することを含む。支払いリーダはポイントオブセールアプリケーションと(例えば、ブルートゥースなどの無線接続を用いて)通信し、ポイントオブセールアプリケーションはインターネットプロトコル(IP)接続などの通信接続を介して支払いサーバと通信する。支払いサーバはトランザクションの許否を決定し、これをポイントオブセールアプリケーションおよび支払いリーダに返す。
支払いリーダはメモリを有し、該メモリは支払いリーダの機能を実行するためのインストラクションを保持し、また支払いリーダはそのようなインストラクションを実行するための処理ユニットを有する。インストラクションはファームウエアに実装され、複数のファームウエアモジュールに分割される。ファームウエアモジュールは、メッセージディスパッチャモジュールと機能モジュールとを含む。機能モジュールのそれぞれは支払いリーダの異なる機能に関連付けられる。例えば、支払いアプリケーションモジュールは支払いを扱うための、かつ、他のデバイスとのインタフェースとなるためのインストラクションを有し、非接触モジュールは非接触NFC通信インタフェースを動作させるためのインストラクションを有し、接触モジュールは接触インタフェースを動作させるためのインストラクションを有し、トランザクション処理モジュールはトランザクション処理手順のためのインストラクションを有し、暗号モジュールは暗号化を行うためのインストラクションを有し、通信モジュールは通信インタフェースを動作させるための(例えば、ポイントオブセールアプリケーションと通信するための)インストラクションを有する。
メッセージディスパッチャモジュールは機能モジュールの実行を調整する。その動作中、機能モジュールはメッセージを生成する。これらのメッセージは、提供されているメッセージのタイプを示すメッセージ識別子(「メッセージID」)を含む。メッセージディスパッチャは、メッセージを含むキュー化データ構造、例えばメッセージの巡回待ち行列やメッセージのプッシュポップスタック、を生成する。メッセージがキュー化データ構造内の適切な位置に到達した場合、メッセージディスパッチャはそのメッセージを機能モジュールのうちのひとつ以上に提供する。機能モジュールがメッセージIDに応じて、ある動作を行うべきであると決定すると、機能モジュールはそのインストラクションを実行する。処理が完了すると、機能モジュールはメッセージ内のフラグをセットする。メッセージディスパッチャモジュールは、キュー化データ構造からそのメッセージを除去し、次のメッセージに移る。
あるメッセージは同時処理が可能となっている計時メッセージであってもよい。例えば、計時メッセージは、ある機能モジュールの処理のためにかかる時間が延長される蓋然性が高い場合に用いられてもよい。例えば、非接触モジュールや接触モジュールなどの支払いモジュールは、チップカードやNFC可能電子デバイスとのインタフェースとなるためのインストラクションを実行する。これらの通信がいつ生じるかについてのタイミングは、支払いリーダに対して適切な位置にチップカードまたはNFC可能電子デバイスを置くユーザに依存する。したがって、チップカードまたはNFC可能電子デバイスが支払いリーダと通信するための適切な場所にあるように、遅延を伴って非接触モジュールおよび接触モジュールを呼び出すためのメカニズムを、計時メッセージは提供できる。計時メッセージが呼び出されるまで、他の機能モジュールは他のメッセージを同時に処理してもよい。
計時メッセージはタイミング値を含む。メッセージディスパッチャはこのタイミング値を用いることで、メッセージを機能モジュールにいつどのように配信するかを決定する。ある実施の形態では、タイミング値は計時メッセージがキュー化データ構造にいつ配信されるべきかを決定してもよい。計時メッセージがキュー化データ構造の先頭に到着したときはいつでも、(例えば、計時メッセージが生成されたときからの経過時間とタイミング値との比較に基づいて)タイミング値が満了しているかが判定される。タイミング値が満了するまで、計時メッセージはキューに戻される。いったん配信されると、非接触モジュールも接触モジュールも処理を止めるべきである(処理が完了したと、またはエラーが生じたと、示すことによって)と示さない場合、計時メッセージはキュー化データ構造に戻される。他の実施の形態では、タイミング値は、計時メッセージが機能モジュールに配信されかつキューに戻され続けるべき期間を決定してもよい。計時メッセージがキュー化データ構造の先頭に到着したときはいつでも、それは機能モジュールに配信される。タイミング値が満了するかメッセージが処理されるまで、メッセージは自動的にキュー化データ構造に戻される。タイミング値が満了すると、メッセージはキューから除去され、エラーが示されてもよい。
図1は、本開示のある実施の形態に係る、支払いシステム1の説明的ブロック図を示す。ある実施の形態では、支払いシステム1は、支払いデバイス10と、支払い端末20と、ネットワーク30と、支払いサーバ40と、を含む。支払いシステム1のこれらのコンポーネントは、マーチャントと顧客との間の電子支払いトランザクションを促進する。
マーチャントと顧客との間の電子的やりとりは、顧客の支払いデバイス10とマーチャントの支払い端末20との間で生じる。顧客は、磁気ストライプを有するクレジットカードや、EMVチップを有するクレジットカードや、支払いアプリケーションを実行するスマートフォンなどのNFC可能電子デバイスなどの支払いデバイス10を有する。マーチャントは支払い端末や他の電子デバイスなどの支払い端末20を有する。そのような他の電子デバイスは支払い情報(例えば、暗号化された支払いカードデータおよびユーザ認証データ)およびトランザクション情報(例えば、購入量およびポイントオブパーチェイス情報)を処理することができ、例えば支払いアプリケーションを実行するスマートフォンやタブレットである。
ある実施の形態(例えば、廉価トランザクションやNFCまたはEMV支払いデバイス10によって示される支払い上限よりも少ない支払いトランザクションについてのもの)では、支払いトランザクションの初期処理および承認は支払い端末20において処理されてもよい。他の実施の形態では、支払い端末20はネットワーク30を介して支払いサーバ40と通信してもよい。支払いサーバ40が単一の単純化されたブロックとして描かれているが、支払いサーバ40は任意の適切な主体により運用される任意の適切な数のサーバを含んでもよいこと、例えば支払いサービスシステムならびにマーチャントおよび顧客のひとつ以上の銀行のものを含んでもよいこと、は理解されるべきである。支払い端末20および支払いサーバ40は支払い情報およびトランザクション情報をやりとりし、トランザクションを承認するか否かを決定する。例えば、支払い端末20はネットワーク30を介して支払いサーバ40に、暗号化された支払いデータとユーザ認証データと購入量情報とポイントオブパーチェイス情報とを提供してもよい。支払いサーバ40は、この受信した情報と顧客アカウントまたはマーチャントアカウントに関する情報とに基づいて、トランザクションを承認するか否かを決定し、支払いトランザクションが承認されたか否かを示すためにネットワーク30を介して支払い端末20に応答してもよい。支払いサーバ40はまた、支払い端末20に、トランザクション識別子などの追加情報を送信してもよい。
支払い端末20において支払いサーバ40から受信した情報に基づいて、マーチャントはトランザクションが承認されたか否かを顧客に示してもよい。ある実施の形態、例えばチップカード支払いデバイス、では、承認は支払いリーダにおいて、例えば支払い端末の画面に、示されてもよい。NFC支払いデバイスとして動作するスマートフォンやウォッチなどの他の実施の形態では、承認されたトランザクションおよび追加情報(例えば、レシート、特別なオファー、クーポン、ロイヤリティプログラム情報など)についての情報がNFC支払いデバイスに提供され、スマートフォンやウォッチの画面に表示されるかまたはメモリに格納されてもよい。
図2は、本開示のある実施の形態に係る、支払いデバイス10および支払いリーダ20の説明的ブロック図を示す。支払いシステム1の支払いリーダ20および支払いデバイス10が任意の適切な態様で実装可能であることは理解されるところであるが、ある実施の形態では、支払いリーダ20は支払いリーダ22とマーチャントデバイス29とを備えてもよい。支払い端末20のリーダ22は、支払いデバイス10と、ポイントオブセールアプリケーションを実行するマーチャントデバイス29と、の間のトランザクションを促進してもよい。
ある実施の形態では、支払いデバイス10は、支払い端末20と(例えば、支払いリーダ22を介して)通信可能なデバイス、例えばNFCデバイス12やEMVチップカード14などであってもよい。チップカード14はセキュアな集積回路を含んでもよい。この集積回路は、支払い端末20などの支払い端末と通信することができ、暗号化された支払い情報を生成することができ、EMVCoによって公表されているものなどのひとつ以上の電子的支払い規格にしたがい、その暗号化された支払い情報と他の支払いまたはトランザクション情報(例えば、ローカルで処理される支払いについてのトランザクション上限)とを提供することができる。チップカード14は支払いリーダ22と通信するための接触ピン(例えば、ISO7816にしたがうもの)を含んでもよく、ある実施の形態では、近距離場15を介して支払いリーダ22と誘導的に結合されてもよい。支払いリーダ22と誘導的に結合するチップカード14は、ISO14443などの無線通信規格にしたがい支払いリーダ22によって提供される無線キャリア信号の負荷変調を用いて、支払いリーダ22と通信してもよい。
NFCデバイス12は、支払い端末20との(例えば、支払いリーダ22との通信を介した)セキュアなトランザクションを行うことができる、スマートフォンやタブレットやスマートウォッチなどの電子デバイスであってもよい。NFCデバイス12は、セキュアなトランザクション機能を実行するためのハードウエア(例えば、ハードウエアおよび実行可能コードを含むセキュアエレメント)および/またはソフトウエア(例えば、ホストカードエミュレーションルーチンにしたがいプロセッサ上で実行される実行可能コード)を有してもよい。支払いトランザクション中、NFCデバイス12は近距離場15を介して支払いリーダ22と誘導的に結合されてもよく、ISO14443およびISO18092などのひとつ以上の無線通信規格にしたがい支払いリーダ22によって提供される無線キャリア信号の能動的または受動的負荷変調によって支払い端末20と通信してもよい。
支払い端末20は任意の適切な態様で実装可能であるが、ある実施の形態では、支払い端末20は支払いリーダ22とマーチャントデバイス29とを含んでもよい。マーチャントデバイス29は、マーチャントのためのユーザインタフェースを提供し、かつ、支払いリーダ22および支払いサーバ40との通信を促進するポイントオブセールアプリケーションを実行する。支払いリーダ22は支払いデバイス10とマーチャントデバイス29との間の通信を促進してもよい。本明細書で説明される通り、NFCデバイス12やチップカード14などの支払いデバイス10は誘導的結合を介して支払いリーダ22と通信してもよい。これは図2において近距離場15として描かれている。この近距離場15は、支払いリーダ22から発せられる適切な周波数(例えば、13.56MHz)を有する無線キャリア信号を含む。
ある実施の形態では、支払いデバイス10はNFCデバイス12やチップカード14などの非接触支払いデバイスであってもよく、支払いリーダ22および非接触支払いデバイス10は近距離場15内の無線キャリア信号を変調することによって通信してもよい。支払いデバイス10に情報を伝達するために、支払いリーダ22は、支払いリーダ22から送信するべきデータに基づいて無線キャリア信号の振幅および/または位相を変化させ、その結果支払いデバイスへと送信される無線データ信号が生成される。この信号は、13.56MHzで送信するようチューンされた支払いリーダ22のアンテナによって送信され、支払いデバイス10もまた近距離場15の範囲内(例えば、0cmから10cm)に適切にチューンされたアンテナを有する場合、支払いデバイスは支払いリーダ22によって送信された無線キャリア信号または無線データ信号を受信する。無線データ信号の場合、支払いデバイス10の処理回路は、受信した信号を復調し、支払いリーダ22から受信されたデータを処理することができる。
支払いデバイス10などの非接触支払いデバイスが近距離場15の範囲内にある場合、それは支払いリーダ22と誘導的に結合される。したがって、支払いデバイス10はまた、能動的または受動的負荷変調を介して、無線キャリア信号を変調することができる。支払いデバイス10のアンテナのチューニング特性を変えることによって(例えば、アンテナ回路において送信対象の被変調データに基づいて選択的に並列負荷を選択することによって)、支払いデバイス10および支払いリーダ22の両方において無線キャリア信号が変調され、これにより被変調無線キャリア信号が生成される。このようにして、支払いデバイスは支払いリーダ22に被変調データを送信することができる。
ある実施の形態では、支払いリーダ22はまた、チップカード14を受けることができるEMVスロット21を含む。チップカード14は、チップカード14がEMVスロット21に挿入されたときに支払いリーダ22の対応する接点と係合する接点を有してもよい。支払いリーダ22はこれらの接点を通じてチップカード14のEMVチップに給電し、支払いリーダ22とチップカード14とはそれらの接点によって確立される通信経路を通じて通信する。
支払いリーダ22はまた、磁気ストライプカードとのインタフェースとなるハードウエアをふくんでもよい(図2では不図示)。ある実施の形態では、ハードウエアは、磁気ストライプカードの磁気ストライプをスワイプするか沈めるよう顧客を案内するスロットを含んでもよく、この場合、磁気ストライプリーダは磁気ストライプカードから支払い情報を受けることができる。次いで、受信された支払い情報は支払いリーダ22によって処理される。
マーチャントデバイス29は、タブレット支払いデバイス24やモバイル支払いデバイス26や専用支払い端末28などの任意の適切なデバイスであってもよい。タブレット支払いデバイス24やモバイル支払いデバイス26などの計算デバイスの場合、ポイントオブセールアプリケーションは、購入および支払い情報の入力、顧客とのやりとり、および支払いサーバとの通信を担当してもよい。例えば、支払いアプリケーションは、マーチャントがそのなかから選択できるサービスメニューと、トランザクションを自動化するための一連のメニューまたは画面と、を提供してもよい。支払いアプリケーションはまた、署名やPIN番号や生体情報などの顧客認証情報の入力を促進してもよい。専用支払い端末28に同様の機能が提供されてもよい。
マーチャントデバイス29は、通信経路23/25/27を介して支払いリーダ22と通信してもよい。通信経路23/25/27は有線接続(例えば、イーサネット、USB、ファイヤワイヤ、ライトニング)または無線接続(例えば、WiFi、ブルートゥース、NFC、ZigBee)を介して実装されてもよいが、ある実施の形態では、支払いリーダ22はブルートゥースまたはブルートゥースローエナジーインタフェースを介してマーチャントデバイス29と通信してもよい。本明細書で説明される通り、ある実施の形態では、例えば、トランザクション量が少ないか支払いサーバへの接続がない場合、支払いトランザクションの処理が支払いリーダ22およびマーチャントデバイス29においてローカルで生じうる。他の実施の形態では、マーチャントデバイス29または支払いリーダ22は公衆または専用通信ネットワーク30を介して支払いサーバ40と通信してもよい。通信ネットワーク30は任意の適切な通信ネットワークであってもよいが、ある実施の形態では、通信ネットワーク30はインターネットであってもよく、支払いおよびトランザクション情報は支払い端末20と支払いサーバ40との間で暗号化形式で通信されてもよい。
図3は、本開示のある実施の形態に係る、支払いリーダ22のブロック図を示す。図3において特定のコンポーネントが特定の構成で描かれているが、支払いリーダ22が追加のコンポーネントを含んでもよいこと、図3に示されるコンポーネントのうちのひとつ以上が支払いリーダ22に含まれなくてもよいこと、および支払いリーダ22のコンポーネントが任意の適切な態様で再構成されうること、は理解されるであろう。とりわけ、支払いリーダ22は支払いデバイス10などの非接触支払いデバイスとデータを交換するためのNFC通信デバイスとして動作してもよい。ある実施の形態では、支払いリーダ22は、NFCチップ102と、NFC回路100と、無線通信インタフェース160と、有線通信インタフェース162と、電源164と、接点インタフェース166と、を含む。NFC回路100および接点インタフェース166が支払いリーダ22内に含まれうる支払いインタフェースのタイプの例であるが、本開示の実施の形態に係る、任意の適切な支払いインタフェース(例えば、磁気カードリーダ)が支払いリーダ22内に含まれうることは理解されるであろう。
支払いリーダ22のNFCチップ102は、支払いリーダ22の機能を実行し制御するのに必要な限り、任意の適切なハードウエア、ソフトウエア、メモリ、および回路を含みうる。ある実施の形態では、NFCチップ102は、NFCチップ102のメモリに保持されるインストラクションを実行することで支払いリーダ22の動作および処理を制御するひとつ以上のプロセッサを含む。本明細書で用いられる場合、プロセッサは、本明細書で説明される処理機能を行うために必要な処理能力を有するひとつ以上のプロセッサを含んでもよく、例えば、ハードウエアロジックやプロセッサが実行するコンピュータ可読インストラクションやそれらの任意の適切な組み合わせなどを含むがそれらに限定されない。プロセッサは本明細書で説明される動作を行うためにソフトウエアを実行してもよく、そのようなソフトウエアは、実体的非一時的コンピュータ可読保持媒体上の機械可読形態でアクセスされたソフトウエアと、チップを設計するために用いられるハードウエア記述言語(HDL)ソフトウエアなどのハードウエアの構成を記述するソフトウエアと、を含む。
ある実施の形態では、NFCチップ102は二つのRISCプロセッサを含んでもよい。この二つのプロセッサはそれぞれ、それぞれのメモリに保持される実行可能インストラクションに基づいて、汎用処理機能および暗号化処理機能を行うよう構成される。本明細書で用いられる場合、メモリは、実体的または非一時的保持媒体を指してもよい。実体的(または、非一時的)保持媒体の例は、ディスクと、サム(thumb)ドライブと、メモリと、を含むが、伝送信号は含まない。実体的コンピュータ可読保持媒体は、コンピュータ可読インストラクションやデータ構造やプログラムモジュールや他のデータなどの、揮発性および不揮発性、取り外し可能および取り外し不可媒体を含む。そのような媒体の例は、RAM、ROM、EPROM、EEPROM、SRAM、フラッシュメモリ、ディスクまたは光学ストレージ、磁気ストレージ、あるいはプロセッサまたは計算デバイスによってアクセスされる情報を保持する任意の他の非一時的媒体を含む。
NFCチップ102はまた、インタフェース回路やアナログフロントエンド回路やセキュリティ回路などの追加回路を含んでもよい。ある実施の形態では、インタフェース回路は、無線インタフェース160(例えば、WiFi、ブルートゥース、ブルートゥースローエナジー)とのインタフェースとなる回路と、有線インタフェース162(例えば、USB、イーサネット、ファイヤワイヤ、およびライトニング)とのインタフェースとなる回路と、他の通信インタフェースまたはバス(例えば、IC、SPI、UARTおよびGPIO)とのインタフェースとなる回路と、電力インタフェース164(例えば、電力管理回路、電力変換回路、整流器、および電池充電回路)とのインタフェースとなる回路と、接点インタフェース166(例えば、チップカード14のEMVチップとのインタフェースのための電力および通信回路)とのインタフェースとなる回路と、を含んでもよい。
ある実施の形態では、NFCチップ102のアナログフロントエンド回路はNFC回路100のアナログコンポーネントとのインタフェースとなる回路(例えば、電磁環境整合(EMC)回路、整合回路、および変調回路)を含む。NFCチップ102のセキュリティ回路は、暗号化キーやマーチャント情報や顧客情報などの機微な情報を保護するための回路を含んでもよい。本明細書で後に詳述される通り、ある実施の形態では、セキュリティ回路は、NFCチップ102への不正アクセスを得ようとする試みに応じて、NFCチップのひとつ以上のコンポーネントの電源を選択的にオフにするか無効化するためのタンパ保護回路および電子ヒューズを含んでもよい。
無線インタフェース160は、外部の電子デバイスと無線で、例えばWiFi、ブルートゥース、ブルートゥースローエナジーなどで、通信するためのハードウエアおよびソフトウエアを含んでもよい。有線インタフェース162は、USB、イーサネット、ファイヤワイヤ、またはライトニングなどのインタフェースを介した外部の電子デバイスとの有線通信を促進するためのハードウエア、ソフトウエアおよび物理的インタフェースを含む。無線インタフェース116および有線インタフェース162を用いることで、支払いリーダ22はマーチャントデバイス29などの外部の電子デバイスと通信することができる。ある実施の形態では、支払いリーダ22は、(例えば、サーバに直接支払いまたはトランザクション情報を提供するために、または、サーバから更新を受けるために、または、認証および承認データをサーバに伝達するために)リモートサーバなどの他の電子デバイスと通信してもよいし、別の電子デバイスと通信してもよい。
電源164はAC電源や電池への物理的接続などのひとつ以上の電源を含んでもよい。電源164は、AC電力を変換するための、および/または、支払いリーダ22のコンポーネントによる使用のために複数のDC電圧を生成するための、電力変換回路を含んでもよい。電源164が電池を含む場合、電池は物理的な電力接続を介して、または、誘導充電を介して、または、任意の他の適切な方法を介して、充電可能である。
接点インタフェース166は、チップカード14のEMVチップなどの支払いチップに給電し、EMVチップと通信するための適切なインタフェースであってもよい。接点インタフェース166は、EMV規格にしたがいチップカード14との物理的なインタフェースとなる複数の接触ピンを含んでもよい。
支払いリーダ22のNFCチップ102は、正伝送ピン(TXP)、負伝送ピン(TXN)および受信ピン(R)などの複数のピンを介してNFC回路100と通信する。伝送ピンTXPおよびTXNは、振幅、周波数および波形を有する出力信号を提供してもよい。ある実施の形態では、TXPおよびTXNから提供される信号は、差動方形波信号であり、NFC回路100の変調回路110に提供されてもよい。
変調回路110は、TXPおよびTXNの出力にしたがい変調された信号を出力するための回路(例えば、Hブリッジ回路)を含んでもよい。変調回路110はまた、アンテナ140を介した伝送に適切な増大した電圧を印加することなどの他の機能を行ってもよい。変調回路110の出力はEMC回路120に提供されてもよい。EMC回路120は、他の高周波信号との受け入れ可能な電磁環境整合性を提供するために、インダクタやキャパシタなどのひとつ以上のコンポーネントを含んでもよい。EMC回路120の出力は整合回路130に提供されてもよい。整合回路130は、アンテナ140のインピーダンスマッチングおよびチューニングを提供するために、抵抗器やインダクタやキャパシタなどの適切なコンポーネントを含んでもよい。
変調回路110、EMC回路120および整合回路130は合わせて、アンテナ140と結合する送信回路を形成してもよい。しかしながら、送信回路がNFCチップ102(例えば、TXPおよびTXNピンによって示されるようなその処理ユニットの出力)と結合する任意の適切な回路を含んでもよいこと、図3に示される回路コンポーネントが任意の適切な態様で構成可能であること、および任意の適切なコンポーネントが追加または削除されうること、は理解されるであろう。
支払いリーダ22のNFCチップ102の動作中、伝送ピンTXPおよびTXNはキャリア信号または被変調信号のいずれかを出力してもよい。キャリア信号は、13.56MHzなどの固定周波数を有する信号であってもよい。キャリア信号は変調回路110に提供され、変調回路110はNFCチップ102からの出力信号を一様な態様で(例えば、昇圧を適用することによって)変調してもよい。EMC回路120および整合回路130のコンポーネント(例えば、抵抗器、インダクタおよびキャパシタ)は、例えば、アンテナ140により送信される信号がキャリア周波数を有する正弦波に近似されるように近似方形波出力を変調することによって、キャリア信号の出力波形を変更する。したがって、送信回路の第1部分はTXPピンの出力をアンテナ140の第1端子に結合させ、送信回路の第2部分はTXNピンの出力をアンテナ140の第2端子に結合させる。次いで、キャリア信号は無線キャリア信号としてアンテナ140を介して送信される。
NFCチップ102によってキャリア信号に変調が適用される場合、変調回路110は、データ信号に応じて振幅または位相もしくはその両方が元のキャリア信号から変化する被変調信号を出力してもよい。本明細書で説明される通り、NFCチップ102は、それ単体でまたは変調回路110と連携して、被変調信号を生成するために変調手順を実装してもよい。この被変調信号は、送信回路に提供され、無線データ信号としてアンテナ140を介して送信される。
NFCチップ102は、受信ピンRを通じてアンテナ140における信号を監視する。受信ピンRは受信回路に結合されている。ある実施の形態では、受信回路は整合回路134を含んでもよく、アンテナ140の第2端子と結合されてもよい。このようにすることで、NFCチップ102は何が送信されているか(例えば、無線キャリアおよび被変調信号)を監視することができ、また、NFCデバイス12やチップカード14などの非接触支払いデバイス10によってキャリア信号に適用される変化を監視することができる。受信信号のこれらの変調に基づいて、NFCチップ102は非接触支払いデバイス10からの通信を受信することができる。
図4は、本開示のある実施の形態に係る、NFCチップ102のコンポーネントのブロック図を示す。図4において特定のコンポーネントが特定の構成で描かれているが、NFCチップ102が追加のコンポーネントを含んでもよいこと、所定のコンポーネントがNFCチップ102に含まれなくてもよいこと、およびNFCチップ102のコンポーネントが任意の適切な態様で再構成されうること、は理解されるであろう。
ある実施の形態では、NFCチップ102は処理ユニット204とメモリ210とを含んでもよい。ある実施の形態では、処理ユニット204はCPU0 206およびCPU1 208との符号が付された二つのCPUを含んでもよい。CPU0 206は、NFCチップ102のほとんどの機能を制御する汎用プロセッサであってもよい。CPU208は、NFCチップ102の他のコンポーネント(不図示)から物理的に隔離された暗号プロセッサであってもよい。この場合、NFCチップ102のひとつ以上のコンポーネント(例えば、CPU0 206)が危うくなっても、暗号ユニットのプロセッサCPU1 208およびその関連メモリ(例えば、フラッシュSRAM1 214)は危うくならない。
ある実施の形態では、CPU0 206およびCPU1 208はRISCプロセッサであってもよい。メモリ210は適切なメモリを含んでもよいが、ある実施の形態では、CPU0 206およびCPU1 208のそれぞれは、フラッシュSRAM0 212およびフラッシュSRAM1 214などの関連フラッシュSRAMを有してもよい。フラッシュSRAM0 212およびフラッシュSRAM1 214は、対応するCPUであるCPU0 206およびCPU1 208で実行されるインストラクションを保持し、NFCチップ102の動作中に用いられるデータを保持してもよい。電池でバックアップされたRAM216は、暗号化キーなどの高度に機微な情報を保持する別個のメモリであってもよい。このようにすることで、NFCチップ102が危うくなった場合、例えば電池でバックアップされたRAM216への電力を除去することで、電池でバックアップされたRAM216に保持される情報は消去されてもよい。
処理ユニット204(例えば、処理ユニット204のCPU0 206)は、ひとつ以上の通信インタフェース220とのインタフェースとなってもよい。通信インタフェース220は、外部デバイスおよび支払いリーダ22の他の回路との通信を可能としてもよい。例えば、通信インタフェース220は、無線通信回路などの支払いリーダ22の回路(例えば、WiFi、ブルートゥース、ブルートゥースローエナジー)、支払いリーダ22の電力管理回路、支払いリーダ22の有線通信インタフェース(例えば、イーサネット、USB、ファイヤワイヤ、ライトニング)および支払いリーダ22の他のコンポーネント、との通信を可能としてもよい。例示的な通信インタフェース220は、USBハブと、USBデバイスと、ICと、SPIと、UARTと、GPIOと、を含む
NFCチップ102はまた、バイアス生成器234と、クロック232と、クロック管理ユニット236と、改ざん検知回路240と、電子ヒューズ242と、を含む。バイアス生成器234は電源と接続され、バイアス電圧を生成してもよい。このバイアス電圧は、アナログフロントエンド260や処理ユニット204やメモリ210などのNFCチップ102のコンポーネントへ提供される。ある実施の形態では、バイアス生成器234によって生成される適切なバイアス電圧は3.3ボルトであってもよい。クロック232は水晶発振器などの任意の適切なクロックであってもよく、クロック管理ユニット236にクロック周波数のクロック信号を提供してもよい。クロック管理ユニット236は、クロック232からの入力に基づいて複数のクロック信号を生成することで、例えば、処理ユニット204のCPU0 206およびCPU1 208のためのクロック信号と、近距離通信の伝送に適切な周波数(例えば、13.56MHz)を有するクロック信号と、を提供してもよい。
改ざん検知240は電源に接続される。改ざん検知240は改ざん検知入力244を含み、該入力244はNFCチップ102または支払いリーダ22のひとつ以上の電気的または物理的コンポーネントに結合されてもよい。これらの入力のうちのひとつが、支払いリーダ22のひとつ以上のコンポーネントに対する改ざんの試みがあったことを示す場合、改ざん検知240はNFCチップ102のひとつ以上のコンポーネントに対する電力の供給を止めてもよい。改ざん検知240が処理ユニット204および電池でバックアップされたRAM216とのみ通信するように描かれているが、改ざん検知240がフラッシュSRAM0 212およびフラッシュSRAM1 214などのNFCチップ102の任意の他のコンポーネントへの電力の中断を提供してもよいことは、理解されるであろう。
NFCチップ102はまた電子ヒューズ242を含む。電子ヒューズ242はNFCチップ102のひとつ以上のコンポーネントへの電力または通信を無効化するよう提供されてもよい。例えば、電子ヒューズ242はCPU1 208によって制御されてもよい。CPU1 208によってNFCチップ102の不適切なアクセス試行または使用が特定された場合、CPU1はひとつ以上の電子ヒューズ242を活性化させることで、NFCチップ102のひとつ以上のコンポーネントへの電力を遮断したり、NFCチップ102のひとつ以上のコンポーネントへのクロック信号を遮断したり、NFCチップ102のひとつ以上のコンポーネントの間の通信を遮断したり、してもよい。例えば、CPU1 208は、CPU0 206がCPU1 208と通信することもそれと共に動作することもできないように、電子ヒューズ242の部分集合を制御してもよい。
NFCチップ102はまた、アナログフロントエンド260とDPPリンクロジック262とを含む。DPPリンクロジック262は、処理ユニット204のCPU0 206からのデジタル信号と、アナログフロントエンド260のアナログ信号と、の間のインタフェースを提供してもよい。アナログフロントエンド260は、非接触インタフェース(例えば、NFC回路100)への、および、チップカード用の接触インタフェースへの、インタフェースを提供する。
動作中、クロック232はクロック信号をCMU236に提供し、CMU236は処理ユニット204に複数のクロック信号を提供する。改ざん検知240は入力244を監視し、改ざん試行がない場合は、電力が通常の態様でNFCチップ102のコンポーネントへ供給されてもよい。NFCチップ102への不適切なアクセス試行がない場合、CPU1 208は、NFCチップ102のコンポーネントが通常通りに動作できるように電子ヒューズ242を制御してもよい。
マーチャントデバイス29は支払いリーダ22のブルートゥース通信回路と通信してもよく、このブルートゥース通信回路は通信インタフェース220を介してCPU0 206と通信してもよい。ある実施の形態では、マーチャントデバイス29はNFCチップ102に対して、支払いを受けるための要求を送信してもよく、この要求はCPU0 206によって受け取られてもよい。CPU0 206は、フラッシュSRAM0 212に保持されるインストラクションにしたがってその要求を処理し、DPPリンクロジック262およびアナログフロントエンド260を介して、非接触インタフェース(例えば、NFC回路100)または接触インタフェースもしくはその両方を活性化してもよい。非接触インタフェースに関して、CPU0 206は近距離通信イニシエータの中のものとして機能してもよく、DPPリンクロジック262、アナログフロントエンド260および非接触インタフェースを介してキャリア信号および被変調信号を提供する。CPU0 206は、非接触インタフェース、アナログフロントエンド260およびDPPリンクロジック262を介して、ターゲット(例えば、NFCデバイス12やEMVデバイス14)からの応答があるか監視してもよい。
支払いデバイスとの通信が確立されると、例えば非接触回路を介して非接触デバイス(例えば、NFCデバイスやチップカード)との通信が確立されると、または、接触インタフェースを介して接触カードとの通信が確立されると、CPU0 206は支払いデバイスと通信することで支払いトランザクションを処理してもよい。このプロセス中、CPU0 206は、CPU208が暗号機能を実行できるようにCPU1 208と通信してもよい。ある実施の形態では、CPU0 206およびCPU1 208はトランザクションをローカルで処理してもよく、一方、ある実施の形態では、CPU0 206はマーチャントデバイス29と通信してもよく、または通信インタフェース220および関連通信回路(例えば、WiFi、ブルートゥース、イーサネット)を介して支払いサーバ40と直接通信してもよい。
図5は、本開示のある実施の形態に係る、支払いリーダ22のソフトウエアブロック図300を示す。ソフトウエアブロック図300の各ブロックはファームウエアモジュールを表す。図5では特定のファームウエアモジュールが描かれているが、支払いリーダ22が追加のファームウエアモジュールを含んでもよいこと、またはひとつ以上のファームウエアモジュールが変更または除去されてもよいこと、は理解されるであろう。さらに、図5は、暗号計算機320以外の全てのファームウエアモジュールがCPU0で実行され、暗号計算機320が別個のプロセッサCPU1で実行されることを示しているが、全てのファームウエアモジュールが単一のCPUで実行されてもよく、または複数のCPUに任意の適切な態様で割り当てられてもよいことは理解されるであろう。
ある実施の形態では、暗号計算機320は別個のCPU(例えば、CPU1)に配置されてもよい。この場合、暗号機能は支払いリーダ22のNFCチップ102の他の機能とは独立して実行される。加えて、暗号化キーおよび他の重要な情報は、CPU1上の暗号計算機320によってのみアクセス可能である。このようにすることで、重要で秘密の情報を、NFCチップ102および支払いリーダ22のソフトウエアの残りの部分から隔離することができる。
ソフトウエアシステム302はメッセージディスパッチャモジュール310を含み、このモジュール310は機能モジュールである他のファームウエアモジュールの動作およびそれらの間のやりとりを管理する。機能モジュールは、メッセージディスパッチャモジュール310にメッセージを提供してもよい。メッセージディスパッチャモジュール310は、キュー化データ構造メカニズムを通じてそれらのメッセージを管理し、キュー化データ構造から機能モジュールへメッセージを配信する。本明細書で説明される通り、ポインタは、キュー化データ構造におけるメッセージの位置を参照してもよい。メッセージは機能モジュールに任意の適切な態様で提供されてもよい(例えば、メッセージのコピーが機能モジュールによってアクセスされるメモリ位置に提供されてもよい)が、ある実施の形態では、ポインタ位置への参照が機能モジュールに提供されてもよく、この場合、機能モジュールはキュー化データ構造内においてメッセージに関連付けられたメモリ位置にアクセスし、ある実施の形態では、ひとつ以上のフラグなどのメッセージ内のデータを編集する。
CPU0のソフトウエアモジュールについて、CPU0の処理はメッセージディスパッチャモジュール310と機能モジュールとの間で行き来し、CPU0の処理が再びメッセージディスパッチャモジュール310に戻るまで、機能モジュールがそのインストラクションを実行する。このようにすることで、一度に一つの機能モジュールに特定の順番でメッセージを提供することができる。ある実施の形態では、メッセージディスパッチャモジュールはメッセージフィールドまたはフラグを監視することで、どの機能モジュールがメッセージを受信すべきか、メッセージが他の機能モジュールに配信され続けるべきか、メッセージを受信すべき機能モジュールのそれぞれにメッセージを一度だけ配信するか否か、機能モジュールへのメッセージの配信の順番、およびメッセージがキュー化データ構造に戻されるべきか否か、を決定してもよい。
ある実施の形態では、メッセージディスパッチャ310はキュー化データ構造を巡回待ち行列として実装する。この巡回待ち行列は、メッセージのアレイまたはメッセージのリンク化リストを有し、それぞれがキューの先頭(例えば、キューのトップまたはフロント)へのポインタと、キューの後尾(例えば、キューのボトムまたはエンド)へのポインタと、を有する。そのような巡回待ち行列は先入れ先出し(FIFO)キューであってもよく、そこでは、キューに入れるべき新たなメッセージは、キュー内の最後のメッセージの後となるメモリ内の次の位置に挿入される。エンドポインタは次いで、新たにキューに入ったメッセージの位置を指すよう変更される。キューの先頭においてフロントポインタをその現在の位置から次のメッセージへと動かすことで、メッセージは廃棄される。キューがそのキューを含むメモリ部分を巡回しうるという点でそのキューは巡回的である。ここでは、古いメッセージ(すなわち、スタートポインタとエンドポインタとの間にないメッセージ)はポインタが巡回待ち行列を周回するにつれて上書きされる。キューがフルの場合(すなわち、キューに入れられるべき次のメッセージがスタートポインタの位置に保持されるメッセージを上書きしてしまう場合)、キューに追加のメモリが割り当てられるか、または例外が提供されてもよい。
本明細書で説明される実施の形態にしたがい巡回待ち行列(すなわち、キュー)が議論されるであろうが、メッセージを保持し、かつ、メッセージへのアクセスを提供する任意の適切なキュー化データ構造が提供されてもよいことは理解されるであろう。シーケンシャルなキュー化データ構造の他の実施の形態では、メッセージングシステムはプッシュポップスタックとして実装されてもよい。プッシュポップスタックは後入れ先出し(LIFO)データ構造であってもよく、そこでは、格納されるべき新たなメッセージはスタック内の最初のメッセージの前となるメモリ内の位置に挿入される。スタックは原点位置を有してもよく、ポインタはキューの先頭を指してもよい。メッセージが廃棄される場合、ポインタは原点に向けてデクリメントされ、したがって、次のメッセージを指してもよい。メッセージがスタックに追加される場合、ポインタは原点から離れる向きにインクリメントされ、したがって、新たに追加されるメッセージを指してもよい。本明細書で説明されるようにキューに戻される計時メッセージを実装する実施の形態では、スタックの先頭以外のスタックの位置に計時メッセージを置くようにスタックのコンテンツが変更されてもよい。
ある実施の形態では、メモリにおいて、メッセージID、処理フラグおよびデータフィールドなどの複数のフィールドを含むメッセージデータ構造としてメッセージを実装してもよい。メッセージはメッセージ長を有してもよく、各フィールドはメッセージデータ構造内の相対位置に関連付けられてもよい。メモリ内のメッセージの位置が分かると(例えば、ポインタに基づいて)、メッセージの特定のフィールドは、既知のメッセージデータ構造内のその相対位置に基づいてアクセス可能である。メッセージIDは送信されているメッセージのタイプを示してもよい。このメッセージIDに基づいて、機能モジュールはメッセージに応じてアクションをとるか否かを決定し、かつ、メッセージに応じてどのアクションを行うかを決定してもよい。処理フラグは、メッセージが処理されたことをメッセージディスパッチャモジュール310に知らせてもよい。処理フラグは、機能モジュールがメッセージに応じて処理を完了すると、その機能モジュールによって設定されてもよい。処理フラグが設定されると、メッセージディスパッチャモジュール310はそのメッセージをキューから除去してもよい。処理エラーを示すために処理フラグおよび/または他のフラグを用いてもよい。コールミーフラグは、メッセージを提供したモジュールがメッセージディスパッチャモジュールからメッセージを受けるべきか否かを示してもよい。データフィールドは、メッセージと共に提供されるべきデータを含んでもよく、このデータはメッセージに応じてアクションを行う機能モジュールによって用いられる。ある実施の形態では、データフィールドは追加メッセージを含んでもよい。
メッセージディスパッチャモジュール310は、メッセージのタイプに基づいて異なる態様でキューを管理してもよい。メッセージディスパッチャモジュール310は受信したメッセージを任意の適切なメッセージタイプにしたがって処理してもよいが、ある実施の形態では、メッセージタイプは計時メッセージおよび標準メッセージであってもよい。標準メッセージはキュー内で一回の処理を受けてもよい。標準メッセージが処理されると、それはキューから除去されてもよい。標準メッセージが処理されるまで、それはキュー内でのその位置を維持し、キューの開始に対して移動する(例えば、ポインタは標準メッセージの位置に近づくように移動しうる)。計時メッセージはタイミング値を含んでもよく、メッセージ配信およびキューイングはそのタイミング値に基づいて変更されてもよい。
タイミング値は多くの方法により実装可能である。ある実施の形態では、計時メッセージは、タイミング値が満了せずかつ処理フラグが設定されない限り、キュー内に残ってもよい。計時メッセージがキューの先頭に到着すると、それは機能モジュール(例えば、計時メッセージを受信する権利がある機能モジュールの部分集合)にラウンドロビン方式で配信され、これはそのメッセージを受けるべき全ての機能モジュールにそのメッセージが配信されてしまうまで、または、そのメッセージのフィールドが更新され、そのメッセージがさらに配信されるべきではないことを示す(例えば、タイミング値または処理フラグを変更することによって)ようになるまで、続く。ある実施の形態では、どの機能モジュールも処理フラグを設定することはなく、かつ、タイミング値が満了しない限り、メッセージは、そのメッセージを受けるべき全ての機能モジュールへ配信された後、キューに戻される(例えば、ある実施の形態では、所定の機能モジュールのみが計時メッセージを受信でき、またはメッセージはコールミーフラグに基づいてメッセージを提供した機能モジュールには提供されなくてもよい)。次いで、計時メッセージがキューの先頭に戻ってくるまでキュー内の他のメッセージが処理され、戻ってくると、その計時メッセージは再び機能モジュールに配信される。処理フラグが設定されると、計時メッセージはキューから除去されてもよい。処理フラグが設定される前にタイミング値が満了すると、これは計時メッセージが処理されなかったことを示す。計時メッセージはキューから除去され、計時メッセージに関連付けられた支払い失敗メッセージなどのエラーメッセージまたはフラグが生成されてもよい。
他の実施の形態では、計時メッセージは、タイミング値が満了しない限りキューに戻されてもよい。ある実施の形態では、タイミング値は生成時刻(例えば、計時メッセージの開始時刻)と現在時刻とに基づいて満了する。生成時刻が現在時刻から減算され、その結果がタイミング値よりも大きい場合、タイミング値は満了する。タイミング値は任意の適切な態様で実装されてもよいが、他の実施の形態では、タイミング値はカウントダウン、カウントアップ、またはタイミング値が満了しうる将来の時刻の設定であってもよい。タイミング値が満了すると、計時メッセージは機能モジュールのうちのひとつ以上に配信される。機能モジュールが計時メッセージのタイミング値のリセットを望む場合、それは計時メッセージを再送信してもよく、またはタイミング値に関連付けられた生成時刻を変更してもよく、またはタイミング値を変更してもよい。計時メッセージがキューから除去されるべきである場合、処理フラグが設定されてもよい。ある実施の形態では、計時メッセージに関連付けられた支払い失敗メッセージなどのエラーメッセージまたはフラグが生成されてもよい。
巡回待ち行列のある実施の形態では、キューにメモリが割り当てられ、メッセージがキューの次に利用可能な位置へ追加されてもよい。メッセージを配信するとき、メッセージディスパッチャモジュール310はキューに入れられたメッセージが位置するキュー内の位置へのポインタを提供する。機能モジュールは、ポインタに基づいて、メッセージIDフィールドや処理フラグやデータフィールドなどのキュー内メッセージのフィールドにアクセスすることができる。このようにすることで、メッセージディスパッチャモジュール310はメッセージを機能モジュールに提供し、機能モジュールはキューに入れられたメッセージを更新することができる。キューに入れられたメッセージが処理されるか除去されるかキューの異なる位置へ動かされると、ポインタは次のキューに入れられたメッセージへと動かされてもよい。
機能モジュールは、メッセージディスパッチャモジュール310から受信したメッセージに応じてメッセージを生成してもよい。加えて、機能モジュールの処理がモジュール内で開始され、ハードウエア割り込みやソフトウエア割り込みなどのある外的刺激に応じてメッセージが生成されてもよい。割り込みに応じて、CPU0 206の処理は機能モジュールへと渡り、該機能モジュールは割り込みに応じて初期化されてもよい。
機能モジュールは、内部通信モジュール340などのひとつ以上の通信モジュールを含んでもよい。内部通信モジュール340は、USBインタフェース、ICインタフェース、SPIインタフェース、UARTインタフェース、およびGPIOインタフェースなどのNFCチップ102の内部通信インタフェース220と通信するためのインストラクションを含んでもよい。これらのインタフェースは、外部デバイス(例えば、USBインタフェースを介するもの)との、またはWiFiやブルートゥースや電力制御ハードウエアなどの内部ハードウエアとの通信をサポートしてもよい。外部デバイスとの、または支払いリーダ22の内部ハードウエアとの通信は任意の適切な態様で開始されてもよく、例えば通信インタフェースを介して提供される割り込みにより開始されてもよい。通信インタフェースからの通信に応じて、内部通信モジュール340は、メッセージIDと、通信のソースを示すデータと、通信対象のデータと、他の任意の適切な情報と、を有するメッセージを生成してもよい。これらのメッセージはメッセージディスパッチャモジュール310に提供され、他の機能モジュールのうちのひとつ以上に配信されてもよい。内部通信モジュール340はまた、メッセージディスパッチャモジュール310から、外部デバイスまたは支払いリーダ22の内部ハードウエアへ送信されるべきメッセージを受信してもよい。そのようなメッセージは、支払いアプリケーションモジュール330やホスト通信モジュール342やハードウエアモジュール338などの他の機能モジュールから生じたものであってもよい。
非接触モジュール334は送信対象のデータを受信してもよく、支払いリーダ22とNFCデバイス12やチップカード14などの支払いデバイス10との間の近距離無線通信を制御するためのインストラクションを含む。非接触モジュール334は、ISO14443およびISO18092で概説されるものなどの通信プロトコルを介したそのようなデバイスとの通信を提供する。非接触モジュール334は支払いデバイス10(例えば、ターゲット)にメッセージを提供するイニシエータとして機能してもよい。NFCモジュール334は、被変調キャリア信号を介した支払いデバイス10との通信を促進するためのメッセージを生成し、かつ、支払いデバイス10が支払いリーダ22のアンテナから提供されるキャリア信号を変調することに基づいて支払いデバイス10からメッセージを受信する。これらの受信したメッセージは、暗号化されたクレジットカード番号などの支払い情報を含んでもよく、ある実施の形態では、PIN番号や指紋情報や他の生体情報などの認証情報を含んでもよい。
ある実施の形態では、非接触モジュール334はメッセージディスパッチャモジュール310のキューからのメッセージにアクセスしてもよい。そのメッセージは支払いデバイス10に情報を要求してもよく、または支払いデバイス10に送信されるデータを提供してもよい。例えば、支払いアプリケーションモジュール330はメッセージディスパッチャモジュール310のキューにメッセージを提供してもよい。このメッセージは、トランザクションのローカル処理についての上限に関する情報を要求する。非接触モジュール334は、キューからのメッセージにアクセスし、被変調キャリア信号を介して支払いデバイス10にローカル支払い上限についての要求を送信してもよい。支払いデバイス10はキャリア信号を変調することによって、その支払い上限で応答してもよい。非接触モジュール334は受信したデータに基づいてメッセージを生成し、そのメッセージをメッセージディスパッチャモジュール310に提供してもよい。メッセージディスパッチャ310は、メッセージがキューの先頭に至るとそのメッセージを配信し、支払いアプリケーション330はこのメッセージにアクセスすることで、ローカル支払い上限がトランザクション量よりも小さいか否かを判定してもよい。他の実施の形態では、非接触モジュール334は、支払いパラメータの更新や支払いデバイスのキーなどの、支払いデバイス310に書き込まれるべきデータを提供してもよい。
接触モジュール336は、チップカード14などの接触デバイスとの通信を提供する。非接触モジュール334について本明細書で説明される通り、接触モジュール336は支払いデバイス10とのインタフェースとなり、NFCソフトウエア302の他の機能モジュールとメッセージを交換してもよい。接触モジュール336は、支払いリーダ22の接触インタフェースを介してチップカード14と通信してもよく、また、メッセージディスパッチャモジュール310のキューに送信されるかそれからアクセスされるメッセージを介して他の機能モジュールと通信してもよい。
任意の適切な機能モジュールが計時メッセージを用いてもよいが、ある実施の形態では、非接触モジュール334および接触モジュール336の両方が動作中に計時メッセージを用いてもよい。例えば、支払いデバイス10から支払い情報を受けるためのメッセージを受信すると、非接触モジュール334および接触モジュール336はそれぞれメッセージディスパッチャ310に計時メッセージを提供してもよい。この計時メッセージはキューの先頭に周期的に到着し、到着したときには、そのメッセージはタイミング値に基づいて配信され、非接触モジュール334または接触モジュール336によって、支払い情報が受信されたか否かが判定される。支払い情報が受信されたかまたは計時メッセージの処理を終えるべきであると機能モジュールが決定した場合、支払い情報を受信したモジュールは計時メッセージの処理フラグを変更し、支払い情報が受信されたかまたは支払いエラーが生じたことを示すメッセージをメッセージディスパッチャモジュール310のキューに提供する。ある実施の形態では、支払い情報が受信されるかまたはタイマが満了するまで、計時メッセージは配信され続け、キューに戻され続けてもよい。他の実施の形態では、タイミング値は、支払い情報が受信されていなければならない期間の長さに対応してもよく、計時メッセージはこのタイミング値が満了したときにのみ機能モジュールに送信されてもよい。次いで、計時メッセージの処理を終えるべきであることを処理フラグが示すまで、計時メッセージは配信され続けてもよく、またはタイミング値はリセットされてもよい(例えば、計時メッセージの生成時刻またはタイミング値を更新することによって)。ある実施の形態では、計時メッセージに関連付けられた支払い失敗メッセージなどのエラーメッセージが生成されてもよい。
NFCソフトウエア302はまた、ホストアプリケーションとの通信のためのホスト通信モジュール342などの通信モジュールを含んでもよい。ある実施の形態では、ホストアプリケーションはNFCチップ102とは異なるプロセッサで実行されてもよい。例えば、ホストアプリケーションは支払いリーダ22の他のプロセッサで実行されていてもよく、本明細書で記載されるある実施の形態では、マーチャントデバイス29で実行されていてもよい。処理動作はNFCソフトウエア302と外部ホストアプリケーションとの間で任意の適切な態様で分散していてもよいが、ある実施の形態では、ホストアプリケーションは、ユーザインタフェース機能と、支払いサーバ40などの外部デバイスとの通信と、を制御してもよい。NFCソフトウエア302は、支払い処理を扱い(例えば、支払いアプリケーションモジュール330およびEMVモジュール332を介して)、支払いデバイスとのインタフェースとなり(例えば、非接触モジュール334および接触モジュール336を介して)、支払いサーバ40に送信されるべきデータを暗号化してもよい(例えば、暗号計算機モジュール320を介して)。ホスト通信モジュール342のインストラクションは、ホストアプリケーションから受信したデータを処理し、機能モジュールの動作に関するメッセージを生成し、受信したメッセージに基づいてホストアプリケーションに送信すべきメッセージを生成する。
ハードウエアモジュール338は、支払いリーダ22の内部ハードウエアと通信するためのインストラクションを含んでもよい。内部通信モジュール340から通信を受信し、その通信に関するメッセージがメッセージディスパッチャモジュール310にキューされると、ハードウエアモジュール338は、そのメッセージが支払いリーダ22の内部コンポーネントからのものであるか否かを判定してもよい。メッセージが支払いリーダ22の内部ハードウエアコンポーネントからのものである場合、ハードウエアモジュール338はそのメッセージおよびデータを処理し、ひとつのまたは他の機能モジュールによって処理されるためにメッセージディスパッチャモジュール310においてキューに入れられるべき応答メッセージを生成する。
支払いアプリケーションモジュール330は支払いリーダ22における支払いの処理のためのインストラクションを含む。支払いアプリケーションモジュール330はホスト通信モジュール342および内部通信モジュール340を介してホストアプリケーションと通信し、また、支払い処理のために用いられる機能モジュール(例えば、暗号計算機モジュール320、EMVモジュール332、非接触モジュール334、および接触モジュール336)の動作を調整する。例えば、支払いトランザクションがホストアプリケーションによって開始されると、支払いアプリケーションモジュール330はメッセージディスパッチャモジュール310(例えば、これはホスト通信モデル342により開始された)からキュー内のメッセージを取得し、支払い要求を処理してもよい。支払いアプリケーションモジュール330は、支払い情報を(例えばNFCデバイス12またはチップカード14から)受信するために、非接触モジュール334および接触モジュール336のうちのひとつ以上を初期化するためのメッセージまたは複数のメッセージを生成してもよい。
支払い情報が受信されたことを示すメッセージがメッセージディスパッチャモジュール310のキューに到着し、支払いアプリケーションモジュール330によって受信されると、支払いアプリケーションモジュール330はEMVモジュール332のひとつ以上のトランザクション処理モジュール(A、B、CおよびDとして示されている)にアクセスするためのメッセージを生成してもよい。例えば、トランザクション処理モジュールA−Dのそれぞれは、Europay, MasterCard, Visa, または American Expressなどの支払いプラットフォームに対応してもよい。支払いアプリケーションモジュール330は、メッセージディスパッチャモジュール310においてキューに入れられているメッセージを介したEMVモジュール332のトランザクション処理モジュールとの通信を続けてもよく、また、暗号計算機モジュール320によってアクセスされるメッセージを提供してもよい。ある実施の形態では、支払いアプリケーションモジュール330は(例えば、廉価トランザクションについての)トランザクションをローカルで処理してもよく、または、ある実施の形態では、マーチャントデバイス29を介した支払いサーバ40との通信を促進してもよい。いずれの場合でも、支払いアプリケーションモジュール330はメッセージディスパッチャモジュール310にメッセージを提供してもよく、そのメッセージはホスト通信モジュール342によってアクセスされ、ホスト通信モジュール342はトランザクション承認処理の結果を、マーチャントデバイス29で実行されるホストアプリケーションに(例えば、内部通信モジュール340を通じてアクセスされるブルートゥース接続を介して)伝達する。
EMVモジュール332は、Europay, MasterCard, Visa, American Express,および他の発行企業などの支払い処理者によって指定されるひとつ以上のトランザクション処理手順にしたがい、支払いトランザクションを処理するためのインストラクションを含む。支払い情報が非接触モジュール334または接触モジュール336から受信されると、支払いアプリケーション330は、EMVモジュール332のどのトランザクション処理モジュールにアクセスすべきかを決定してもよい。EMVモジュール332のトランザクション処理モジュール(例えば、図5にA、B、CおよびDとして描かれている)には、発行企業の規格に準拠することが要求される。EMVモジュール332の処理モジュールによる規格への準拠性は、認証プロセスによって確認されてもよい。EMVモジュール332は要求されたトランザクション処理モジュールにアクセスし、メッセージディスパッチャモジュール310においてキューに入れられたメッセージを介して他の機能モジュールと通信する。
暗号計算機モジュール320は支払い処理トランザクションの暗号化機能を行うためのインストラクションを含む。暗号計算機モジュール320は、支払いサーバ40などの外部デバイスに送信される情報を暗号化するために用いられてもよいキーへのアクセスを有してもよい。支払いアプリケーションモジュール330およびEMVモジュール332などの機能モジュールは、暗号計算機320がアクセスしてもよいメッセージを、メッセージディスパッチャ310のキューに提供してもよい。アクセスされるメッセージは、暗号化対象のデータを含んでもよい。暗号計算機モジュール320は、別個のプロセッサ(例えば、CPU1)上で暗号化を行ってもよい。暗号計算機モジュール320は次いで、暗号化されたデータを含むメッセージを生成し、そのメッセージをメッセージディスパッチャモジュール310のキューに提供してもよい。そのメッセージはキューから(例えば、支払いアプリケーションモジュール330によって)アクセスされてもよく、最終的に支払いサーバ40に伝達されてもよい(例えば、支払いアプリケーションモジュール330、ホスト通信モジュール342および内部通信モジュール340からメッセージディスパッチャモジュール310のキューに提供されるメッセージを介して、および、マーチャントデバイス29を介して、ネットワーク30へと)。
上述の構成およびデバイスに照らし、開示される主題にしたがい実装されうる方法は、図6のフローチャートを参照することでより良く理解されるであろう。説明の簡単化を目的として、方法が一連のステップとして示され説明されるが、そのような図示または対応する説明はステップの順番に限定されるものではなく、いくつかのステップが本明細書で図示され説明されるものとは異なる順番でおよび/または他のステップと同時に生じうることは理解され認識されるべきである。フローチャートを介して図示される任意のシーケンシャルでないまたは枝分かれのフローは、同じまたは同様の結果を達成する種々の他の枝分かれやフローパスやステップの順番が実装可能であることを示すものとして理解されるべきである。さらに、以下に説明される方法を実装するために、図示される全てのステップが要求されるわけではない場合がある。
図6は、本開示のある実施の形態に係る、メッセージディスパッチャモジュール310および機能モジュールでメッセージを処理するためのステップ600を示す。ステップ602で、メッセージディスパッチャモジュール310はメッセージを受信したか否かを判定してもよい。本明細書で説明されるように、メッセージは、機能モジュールによって処理されたメッセージや割り込みや他の適切な処理に応じてひとつ以上の機能モジュールから受信されてもよい。メッセージが受信されると、処理はステップ604へと続いてもよい。メッセージが受信されないと、処理はステップ606へと続いてもよい。
ステップ604で、受信されたメッセージはメッセージディスパッチャモジュール310によってキューに入れられてもよい。ある実施の形態では、キューは巡回待ち行列であってもよく、この場合、最も直近に受信されたメッセージがキューの後端に置かれる。他の実施の形態では、キューに入れられるメッセージは異なる態様で配置されてもよく、例えばこの場合、最も直近に受信されたメッセージがキューの先頭などのどこかに置かれる。ある実施の形態では、キューは受信されたメッセージのひとつ以上のフィールドのコンテンツ(例えば、これはメッセージ優先度を設定する)に基づいて、または、任意の他の適切な方法に基づいて、調整されてもよい。メッセージがキューに入れられると、処理はステップ606へと続いてもよい。
ステップ606で、メッセージディスパッチャモジュール310は、キューにおいて、処理対象のメッセージにアクセスしてもよい。メッセージは任意の適切な態様でアクセスされてもよいが、ある実施の形態では、ポインタはキューの先頭のメッセージに対応する位置を指してもよい。キューにアクセスする際、メッセージディスパッチャモジュール310は、メッセージID、メッセージ長、コールミーフィールド、処理フラグ、およびデータフィールドなどのメッセージのひとつ以上のフィールドにアクセスしてもよい。ある実施の形態では、メッセージディスパッチャモジュール310はこれらのフィールドのうちのひとつ以上を用いることで、メッセージを機能モジュールへ配信すべきか否か、またはメッセージを機能モジュールへどのように配信すべきかを決定してもよい。例えば、フィールド値またはメッセージIDは、メッセージが計時メッセージであることを示す情報を含んでもよい。コールミーフィールドの状態に基づいて、メッセージディスパッチャは、メッセージを提供した機能モジュールへメッセージを戻すことはしない。メッセージディスパッチャモジュール310がキューにおいてメッセージにアクセスすると、処理はステップ608へ続いてもよい。
ステップ608で、メッセージディスパッチャモジュール310は、現在のメッセージが計時メッセージであるか否か、および、そのメッセージが処理されずにキューに戻されるべきか否かを判定してもよい。ある実施の形態では、メッセージIDフィールドは、メッセージが計時か否かに対応するメッセージIDを含んでもよい。例えば、支払いアプリケーションモジュール330、EMVモジュール332、非接触モジュール334、または接触モジュール336からのあるタイプのメッセージは計時メッセージであってもよい。他の実施の形態では、メッセージは、メッセージが計時メッセージであるか否かを示すフィールドを含んでもよい。計時メッセージは、タイミング値にしたがい、所定間隔で、周期ベースで、または遅延された態様で、所定の処理が行われること可能としてもよい。これは、所定の処理機能が、同時にかつ不必要な処理時間を費やすことなしに、生じることを可能としてもよい。例えば、非接触モジュール334または接触モジュール336がチップカードやNFCデバイスを探し始めると、CPU0 206の処理は他のメッセージを同時に処理することに戻るのが望ましい。接触モジュール336および非接触モジュール334は、他のメッセージが処理されている間にも動作可能なハードウエアおよびソフトウエアを含み、チップカードやNFCデバイスをチェックするための処理は、タイミング値に基づいて、接触モジュール336や非接触モジュール334に渡されてもよい。メッセージが計時メッセージでない場合、処理はステップ612へと続いてもよい。それが計時メッセージである場合、タイミング値が満了したか否かが判定されてもよい。
メッセージが計時メッセージであるとメッセージディスパッチャモジュール310が決定した場合、メッセージディスパッチャモジュール310はまた、タイミング値が満了したか否かを判定してもよい。ある実施の形態では、計時メッセージのタイミング値が満了するまで計時メッセージがキューに戻されてもよく、タイミング値が満了したときにのみ配信されてもよい。このようにすることで、タイミング値が満了するまで、計時メッセージは処理のために機能モジュールに(例えば、接触モジュール336に、または非接触モジュール334に)渡されることはない。ある実施の形態では、タイミング値の満了は、計時メッセージを生成した機能モジュールによって設定された生成時刻値およびタイミング値に基づいてもよい。メッセージディスパッチャモジュール310は、それがキューにおけるメッセージにアクセスしている現在時刻を決定し、その現在時刻から生成時刻を減算してもよい。その結果がタイミング値より小さい場合、計時メッセージはどの機能モジュールに送信されることもなく、キューに戻されてもよい。その結果がタイミング値より大きい(または、ある実施の形態では、以上)場合、計時メッセージは、(例えば、計時メッセージのフィールドまたはメッセージIDに基づいて、)その計時メッセージを受信することとなっている機能モジュールに送信されてもよい。このようにすることで、計時メッセージの間隔は、タイミング値および生成時刻に基づいて制御可能である。例えば、タイミング値が小さいほど、計時メッセージがすぐに機能モジュールに送信される。生成時刻またはタイミング値を変更またはリセットすることにより、満了までの時間を延長することができる。タイミング値が満了すると、処理はステップ612へと続いてもよい。タイミング値が満了しないと、処理はステップ610へと続いてもよい。
他の実施の形態(図6では不図示)では、計時メッセージは、それがキューの先頭に到着するたびに、ターゲットの機能モジュールに提供されてもよい。他のこの実施の形態では、ステップ608でタイミング値はチェックされず、タイミング値はメッセージが機能モジュールへと配信された(例えば、ステップ618で)後にのみチェックされてもよい。したがって、処理はステップ612をスキップするであろう。
ステップ610で、メッセージディスパッチャモジュール310は、計時メッセージをキューに戻してもよい。計時メッセージはキューの任意の適切な位置へ任意の適切な態様で戻されてもよいが、ある実施の形態では、計時メッセージはキューの後尾に戻されてもよい。計時メッセージがキューに戻されると、処理はステップ602へと続いてもよい。
ステップ612で、メッセージディスパッチャモジュール310は、メッセージを機能モジュールに送信してもよい。ある実施の形態では、メッセージディスパッチャモジュール310は機能モジュールに、キュー内のメッセージの位置へのポインタを送信してもよい。ある実施の形態では、メッセージは所定の機能モジュールにのみ送信されてもよい(例えば、計時メッセージは、メッセージIDまたはメッセージフィールドに基づいて、所定の機能モジュールにのみ配信されてもよい)。メッセージはラウンドロビン方式で機能モジュールに(例えば、ステップ612、614および616のループ内のステップ612の各繰り返しにおいて)提供されてもよく、メッセージを受信する機能モジュールはそのメッセージに応じて何らかのアクションを起こすべきか否かを判定する(例えば、メッセージIDに基づいて)。機能モジュールがメッセージに応じてアクションを起こす場合、プロセッサ(例えば、CPU0 206)の処理の制御はその機能モジュールに渡されてもよい。機能モジュールによって行われる処理は、メッセージIDにしたがってメッセージ内のデータを処理することと、メッセージディスパッチャに提供されるメッセージを生成することと、処理フラグを変更することと、任意の他の適切な処理と、を含んでもよい。機能モジュールがその処理を完了すると、CPU0 206の処理の制御はメッセージディスパッチャモジュール310に戻り、ステップ614でメッセージディスパッチャモジュール310は、メッセージが処理されたか否かを判定してもよい。
ステップ614で、メッセージディスパッチャモジュール310は、キュー内の現在のメッセージが処理されたか否かを判定してもよい。ある実施の形態では、メッセージディスパッチャモジュール310は、メッセージに関連付けられた処理フラグの状態に基づいて、メッセージが処理されたか否かを判定してもよい。例えば、機能モジュールがその機能モジュールによる処理を要求するメッセージIDを伴うメッセージを受信すると、機能モジュールはその処理を完了し、機能モジュールはメッセージ内における処理フラグの既知の位置に基づいて処理フラグを変更してもよい。(例えば、処理フラグの状態に基づいて)メッセージが既に処理されたとメッセージディスパッチャモジュール310が判定した場合、処理はステップ620へと続いてもよい。メッセージがまだ処理されていないとメッセージディスパッチャモジュール310が判定した場合、処理はステップ616へと続いてもよい。
ステップ616で、メッセージディスパッチャモジュール310は、メッセージを受け取る権利のある全ての機能モジュールにそのメッセージが送信されたか否かを判定してもよい。最初は、メッセージはどの機能モジュールにも送信されていないであろう。処理はステップ612、614および616へと続き、そこではメッセージがメッセージを受信すべき機能モジュールへと送信され(ステップ6012において)、処理フラグがチェックされ(ステップ614において)、メッセージを受け取る権利のある全ての機能モジュールにそのメッセージが送信されたか否かが判定される(ステップ616において)。メッセージを受け取る権利のある全ての機能モジュールにそのメッセージが送信された(例えば、計時メッセージについては、または、コールミーフラグがアサートされていない場合は、メッセージは機能モジュールの全てに送られるわけではない)と、またはメッセージが処理された(例えば、処理フラグの状態に基づいて)と、メッセージディスパッチャモジュールが決定するまで、このループは続いてもよい。メッセージを受け取る権利のある全ての機能モジュールにそのメッセージが送信されると、処理はステップ618へと続いてもよい。メッセージを受け取る権利のある全ての機能モジュールにそのメッセージが送信されてしまわない限り、処理はステップ612に戻る。
ステップ618で、メッセージディスパッチャモジュール310は、現在のメッセージが計時メッセージであるか否かを判定してもよい。本明細書で説明されるように、これは、メッセージIDフィールドやメッセージが計時メッセージであるか否かを示すフィールドや任意の他の適切な態様に基づいて判定されてもよい。メッセージが計時メッセージである場合、メッセージをキューに戻すために、処理はステップ622へと続いてもよい。メッセージが計時メッセージでない場合、メッセージをキューから除去するために、処理はステップ620へと続いてもよい。
他の実施の形態(図6では不図示)では、計時メッセージは、それがキューの先頭に到着するたびに、機能モジュールに提供されてもよく、かつ、タイミング値が満了しておらずかつ処理フラグがセットされていない限りキューに戻されてもよい。そのメッセージについて処理フラグが設定されていない限り、かつ、タイミング値が満了していない限り、そのメッセージはキューに戻される。このような態様で設定されるタイミング値によると、タイミング値によって表される期限がくるまで、機能モジュールを周期的にポーリングすることが可能となる。タイミング値が満了する(例えば、機能モジュールによる処理中にリセットされることなく)と、計時メッセージに関連付けられた支払い失敗メッセージなどのエラーメッセージが生成されてもよい。他のこの実施の形態では、ステップ608でタイミング値はチェックされず、タイミング値はメッセージが機能モジュールへと配信された(例えば、ステップ618で)後にのみチェックされてもよい。他のこの実施の形態では、ステップ618でタイミング値が満了しないと、処理はステップ622へと続いてもよい。タイミング値が満了すると、処理はステップ620へと続いてもよい。
ステップ620で、メッセージディスパッチャモジュール310は、処理されたメッセージをキューから除去してもよい。処理されたメッセージは任意の適切な態様でキューから除去されてもよいが、ある実施の形態では、メッセージディスパッチャモジュール310は、キュー内の次のメッセージを指すようポインタを調整してもよい。処理されたメッセージは最終的に、他のメッセージがキューに入ることに基づいて上書きされてもよい。次いで、処理はステップ602に戻ってもよい。
ステップ622で、メッセージディスパッチャモジュール310は、計時メッセージをキューに戻してもよい。計時メッセージはキューの任意の適切な位置へ任意の適切な態様で戻されてもよいが、ある実施の形態では、計時メッセージはキューの後尾に戻されてもよい。加えて、ある実施の形態では、計時メッセージのタイミング値および/または生成時刻はひとつ以上の機能モジュールによって変更またはリセットされてもよい。例えば、ステップ608におけるタイミング値の次の満了までの時間を延長するために、タイミング値または生成時刻を変更またはリセットしてもよい。計時メッセージがキューに戻されると、処理はステップ602へと続いてもよい。
上記は本開示の原理の単なる説明に過ぎず、当業者であれば本開示の範囲から逸脱することなく種々の変更を行える。上述の実施の形態は、限定では無く説明の目的のために示されたものである。本開示はまた、本明細書で明示的に説明されたもの以外の多くの形態をとることができる。したがって、本開示は明示的に開示された方法、システムおよび装置に限定されず、むしろそれらの変形例や変更例であって以下の請求の範囲内のものを含むことが意図されていることを強調しておく。
さらなる例として、本明細書で示され説明された提供された構成、デバイスおよび方法をさらに最適化するために、装置またはプロセスパラメータ(例えば、寸法、設定、コンポーネント、プロセスステップの順番等)の変更を行うことができる。いずれにせよ、本明細書で説明される構成およびデバイス、ならびに関連方法は、多くのアプリケーションを有する。したがって、開示された主題は本明細書で説明されるいずれかの単一の実施の形態に限定されるべきではなく、むしろ添付の請求の範囲にしたがう範囲において解釈されるべきものである。

Claims (15)

  1. 支払いデバイスでトランザクションを処理するための支払いリーダであって、
    前記支払いデバイスとのインタフェースとなるよう、かつ、前記支払いデバイスから支払い情報を受けるよう構成された支払いインタフェースと、
    複数のファームウエアモジュールを含むメモリであって、前記複数のファームウエアモジュールがメッセージディスパッチャモジュールと複数の機能モジュールとを含み、前記複数の機能モジュールが前記支払いインタフェースに関連付けられた支払いモジュールと前記支払い情報の処理に関連付けられたトランザクション処理モジュールとを有する、メモリと、
    前記複数のファームウエアモジュールにおいてインストラクションを実行するよう構成されたプロセッサであって、前記プロセッサが前記複数の機能モジュールに関連付けられたインストラクションを、前記メッセージディスパッチャモジュールによって提供されたひとつ以上のメッセージに基づいて、実行するよう構成され、かつ、前記支払いモジュールと前記ひとつ以上のメッセージのうちの第1メッセージとに基づいて支払い情報を受けるよう構成され、かつ、前記トランザクション処理モジュールと前記ひとつ以上のメッセージのうちの第2メッセージとに基づいて該支払い情報を処理するよう構成される、プロセッサと、を備え、
    前記ひとつ以上のメッセージのうちの第1メッセージタイプは前記機能モジュールの同時動作に関連付けられ、前記ひとつ以上のメッセージのうちの第2メッセージタイプは前記機能モジュールの順番動作に関連付けられる支払いリーダ。
  2. 前記第1メッセージタイプが前記第1メッセージに関連付けられ、前記第2メッセージタイプが前記第2メッセージに関連付けられる請求項1に記載の支払いリーダ。
  3. 前記第1メッセージタイプが計時メッセージを含み、前記第2メッセージタイプが標準メッセージを含む請求項1に記載の支払いリーダ。
  4. 前記プロセッサが、タイミング値と前記メッセージディスパッチャモジュールの前記インストラクションとに基づいて、前記機能モジュールの前記同時動作を可能とするよう構成される請求項1から3のいずれか一項に記載の支払いリーダ。
  5. 前記プロセッサが、前記メッセージディスパッチャモジュールの前記インストラクションに基づいて、前記タイミング値が満了しない間に、前記支払いモジュールに前記第1メッセージタイプの前記第1メッセージを提供するよう構成される請求項4に記載の支払いリーダ。
  6. 前記プロセッサが、前記メッセージディスパッチャモジュールの前記インストラクションに基づいて、前記タイミング値が満了したときに、前記支払いモジュールに前記第1メッセージタイプの前記第1メッセージを提供するよう構成される請求項4に記載の支払いリーダ。
  7. 支払いトランザクションを処理する方法であって、
    複数のファームウエアモジュールのうちのメッセージディスパッチャモジュールから前記複数のファームウエアモジュールのうちの複数の機能モジュールのうちのひとつ以上にひとつ以上のメッセージを提供することであって、前記ひとつ以上のメッセージのうちの第1メッセージタイプが前記機能モジュールの同時動作に関連付けられ、前記ひとつ以上のメッセージのうちの第2メッセージタイプが前記機能モジュールの順番動作に関連付けられる、提供することと、
    前記複数の機能モジュールのうちの支払いモジュールが支払い情報を受けるべきであることを、前記メッセージディスパッチャモジュールのインストラクションに基づいて、決定することと、
    前記決定することと前記支払いモジュールのインストラクションと前記ひとつ以上のメッセージの第1メッセージとに基づいて、支払いインタフェースから支払い情報を受けることと、
    前記複数の機能モジュールのうちのトランザクション処理モジュールのインストラクションと前記ひとつ以上のメッセージのうちの第2メッセージとに基づいて、前記受けた支払い情報を処理することと、を含む方法。
  8. 前記第1メッセージタイプが前記第1メッセージに関連付けられ、前記第2メッセージタイプが前記第2メッセージに関連付けられる請求項7に記載の方法。
  9. タイミング値と前記メッセージディスパッチャモジュールの前記インストラクションとに基づいて、前記機能モジュールの前記同時動作を可能とすることをさらに含む請求項7または8に記載の方法。
  10. 前記メッセージディスパッチャモジュールの前記インストラクションに基づいて、前記タイミング値が満了しない間に、前記支払いモジュールに前記第1メッセージタイプの前記第1メッセージを提供することをさらに含む請求項9に記載の方法。
  11. 前記メッセージディスパッチャモジュールの前記インストラクションに基づいて、前記タイミング値が満了したときに、前記支払いモジュールに前記第1メッセージタイプの前記第1メッセージを提供することをさらに含む請求項9に記載の方法。
  12. 数のファームウエアモジュールのうちのメッセージディスパッチャモジュールから前記複数のファームウエアモジュールのうちの複数の機能モジュールのうちのひとつ以上にひとつ以上のメッセージを提供する機能であって、前記ひとつ以上のメッセージのうちの第1メッセージタイプが前記機能モジュールの同時動作に関連付けられ、前記ひとつ以上のメッセージのうちの第2メッセージタイプが前記機能モジュールの順番動作に関連付けられる、提供する機能と、
    前記複数の機能モジュールのうちの支払いモジュールが支払い情報を受けるべきであることを、前記メッセージディスパッチャモジュールのインストラクションに基づいて、決定する機能と、
    前記決定することと前記支払いモジュールのインストラクションと前記ひとつ以上のメッセージの第1メッセージとに基づいて、支払いインタフェースから支払い情報を受ける機能と、
    前記複数の機能モジュールのうちのトランザクション処理モジュールと前記ひとつ以上のメッセージのうちの第2メッセージとに基づいて、前記受けた支払い情報を処理する機能と、をコンピュータに実現させるためのコンピュータプログラム
  13. 前記第1メッセージタイプが前記第1メッセージに関連付けられ、前記第2メッセージタイプが前記第2メッセージに関連付けられる請求項12に記載のコンピュータプログラム
  14. イミング値と前記メッセージディスパッチャモジュールの前記インストラクションとに基づいて、前記機能モジュールの前記同時動作を可能とする機能をさらに前記コンピュータに実現させる請求項12または13に記載のコンピュータプログラム
  15. 記メッセージディスパッチャモジュールの前記インストラクションに基づいて、前記タイミング値が満了しない間に、前記支払いモジュールに前記第1メッセージタイプの前記第1メッセージを提供する機能をさらに前記コンピュータに実現させる請求項14に記載のコンピュータプログラム
JP2018512995A 2015-09-23 2016-09-23 支払いシステムのメッセージディスパッチャ Active JP6505948B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US14/863,381 US9330383B1 (en) 2015-09-23 2015-09-23 Message dispatcher for payment system
US14/863,381 2015-09-23
US15/052,792 US10083437B2 (en) 2015-09-23 2016-02-24 Message dispatcher for payment system
US15/052,790 2016-02-24
US15/052,790 US9613350B1 (en) 2015-09-23 2016-02-24 Message dispatcher for payment system
US15/052,792 2016-02-24
PCT/US2016/053303 WO2017053699A1 (en) 2015-09-23 2016-09-23 Message dispatcher for payment system

Publications (2)

Publication Number Publication Date
JP2018533785A JP2018533785A (ja) 2018-11-15
JP6505948B2 true JP6505948B2 (ja) 2019-04-24

Family

ID=55807541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018512995A Active JP6505948B2 (ja) 2015-09-23 2016-09-23 支払いシステムのメッセージディスパッチャ

Country Status (6)

Country Link
US (3) US9330383B1 (ja)
EP (1) EP3329438B1 (ja)
JP (1) JP6505948B2 (ja)
CN (1) CN108140182B (ja)
CA (1) CA2997776C (ja)
WO (1) WO2017053699A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10684848B1 (en) 2016-03-30 2020-06-16 Square, Inc. Blocking and non-blocking firmware update
US10762196B2 (en) 2018-12-21 2020-09-01 Square, Inc. Point of sale (POS) systems and methods with dynamic kernel selection
US10817869B2 (en) 2016-06-29 2020-10-27 Square, Inc. Preliminary enablement of transaction processing circuitry
US10990969B2 (en) 2018-12-21 2021-04-27 Square, Inc. Point of sale (POS) systems and methods for dynamically processing payment data based on payment reader capability
US11010765B2 (en) 2016-06-29 2021-05-18 Square, Inc. Preliminary acquisition of payment information
US11049095B2 (en) 2018-12-21 2021-06-29 Square, Inc. Point of sale (POS) systems and methods with dynamic kernel selection

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2881429C (en) 2012-02-29 2017-05-02 Mobeewave, Inc. Method, device and secure element for conducting a secured financial transaction on a device
US9330383B1 (en) * 2015-09-23 2016-05-03 Square, Inc. Message dispatcher for payment system
US10248940B1 (en) 2015-09-24 2019-04-02 Square, Inc. Modular firmware for transaction system
US10148321B2 (en) * 2016-03-21 2018-12-04 Samsung Electronics Co., Ltd. Antenna for near field communication, accessory and electronic device including the same
US10417628B2 (en) 2016-06-29 2019-09-17 Square, Inc. Multi-interface processing of electronic payment transactions
US10546302B2 (en) 2016-06-30 2020-01-28 Square, Inc. Logical validation of devices against fraud and tampering
KR20180055209A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 대리 장치를 이용한 결제 방법 및 이를 수행하는 전자 장치
US10621590B2 (en) * 2017-02-22 2020-04-14 Square, Inc. Line-based chip card tamper detection
US10579566B2 (en) * 2017-04-28 2020-03-03 Square, Inc. Point of sale device with switchable internal connection roles
US10733589B2 (en) 2017-04-28 2020-08-04 Square, Inc. Point of sale device power management and under voltage protection
US11257058B1 (en) 2017-10-30 2022-02-22 Square, Inc. Sharing output device between unsecured processor and secured processor
CN107944857A (zh) * 2017-10-31 2018-04-20 阿里巴巴集团控股有限公司 一种支付乘车费的方法及装置
US10970698B1 (en) 2017-12-08 2021-04-06 Square, Inc. Reader detection signal bypassing secure processor
US10715536B2 (en) 2017-12-29 2020-07-14 Square, Inc. Logical validation of devices against fraud and tampering
US11017377B2 (en) 2018-02-09 2021-05-25 Ka Wai Wayne LEUNG Apparatus and method for wireless secure payment and data transaction with biometric enrollment and authentication
US11233830B2 (en) * 2018-04-13 2022-01-25 Verifone, Inc. Systems and methods for point-to-point encryption compliance
WO2020010523A1 (zh) * 2018-07-10 2020-01-16 威富通科技有限公司 支付结果信息处理方法及终端设备
US11494762B1 (en) 2018-09-26 2022-11-08 Block, Inc. Device driver for contactless payments
US11507958B1 (en) 2018-09-26 2022-11-22 Block, Inc. Trust-based security for transaction payments
JP7524180B2 (ja) * 2018-12-21 2024-07-29 ブロック, インコーポレイテッド 動的カーネル選択による販売時点情報管理(pos)システム及び方法
CN109743137B (zh) * 2019-01-10 2022-01-14 浙江小泰科技有限公司 一种支持更新的分布式延迟消息队列处理系统
CN110719221B (zh) * 2019-10-16 2022-11-08 北京蚂蜂窝网络科技有限公司 即时通信方法、装置、设备及存储介质
US11327793B2 (en) * 2020-02-18 2022-05-10 International Business Machines Corporation Garbage collection work stealing mechanism

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696955A (en) 1994-06-01 1997-12-09 Advanced Micro Devices, Inc. Floating point stack and exchange instruction
CN1398387A (zh) 1999-12-23 2003-02-19 瑞士电信流动电话公司 支付交易方法和支付交易系统
US20030208443A1 (en) * 2001-02-05 2003-11-06 Dean Mersky Electronic payment systems and methods
US8332293B2 (en) 2004-06-10 2012-12-11 Ronald John Rosenberger End user generated billing cycles
US7597250B2 (en) * 2003-11-17 2009-10-06 Dpd Patent Trust Ltd. RFID reader with multiple interfaces
US8762263B2 (en) * 2005-09-06 2014-06-24 Visa U.S.A. Inc. System and method for secured account numbers in proximity devices
US20080121687A1 (en) * 2006-11-28 2008-05-29 Motorola, Inc. Method and system for detecting an end of transaction for contactless transactions on a mobile device
US20080162312A1 (en) 2006-12-29 2008-07-03 Motorola, Inc. Method and system for monitoring secure applet events during contactless rfid/nfc communication
US10311427B2 (en) 2006-12-29 2019-06-04 Google Technology Holdings LLC Method and system for monitoring secure application execution events during contactless RFID/NFC communication
WO2008129225A1 (fr) * 2007-03-30 2008-10-30 France Telecom Procédé de communication et de transmission d'un message concernant une transaction d'une application sans contact, terminal, module sécurisé et système associés
US9342823B2 (en) * 2007-06-18 2016-05-17 Lemon, Inc. Payment clearing network for electronic financial transactions and related personal financial transaction device
CN101753523A (zh) * 2008-12-12 2010-06-23 华为技术有限公司 数据处理方法、装置及系统
PT3447702T (pt) * 2009-02-14 2020-08-28 Net2Text Ltd Método de pagamento e faturação seguro utilizando número ou conta de telemóvel
GB0904877D0 (en) 2009-03-20 2009-05-06 Global Refund Holdings Ab Interface module, system and method
EP2430601B1 (en) * 2009-04-28 2019-02-20 Mastercard International Incorporated Apparatus, method, and computer program product for providing a quality control mechanism for the contactless interface of a dual-interface card
US20100312692A1 (en) 2009-06-03 2010-12-09 Mordechai Teicher Compact payment terminal
US10454693B2 (en) * 2009-09-30 2019-10-22 Visa International Service Association Mobile payment application architecture
US8616441B2 (en) 2009-12-31 2013-12-31 First Data Corporation Systems and methods for processing a transaction associated with a contactless transaction card
WO2011103520A1 (en) * 2010-02-18 2011-08-25 Bling Nation, Ltd. Automated transaction system and settlement processes
US8284061B1 (en) * 2010-04-12 2012-10-09 Diegane Dione System and method for exchanging information bi-directionally
EP2390817A1 (en) 2010-05-27 2011-11-30 Gemalto SA Method of managing communications with a nfc controller
US9402278B2 (en) * 2010-11-26 2016-07-26 Wireless Dynamics, Inc. Multi-mode communication system for a mobile phone
US20120143703A1 (en) * 2010-12-03 2012-06-07 Google Inc. Multiple contactless device interactions and communication protocols per tap
US8335921B2 (en) * 2010-12-17 2012-12-18 Google, Inc. Writing application data to a secure element
US8360329B2 (en) 2011-01-31 2013-01-29 Bank Of America Corporation Mobile wallet with managed active and passive payment technology
US8886119B2 (en) * 2011-02-02 2014-11-11 Nxp B.V. Coordinating multiple contactless data carriers
CN103067335B (zh) * 2011-10-18 2016-01-27 中国移动通信集团公司 一种非接触方式实现信息交互的方法、相关设备及系统
CN103198399A (zh) * 2012-01-04 2013-07-10 国民技术股份有限公司 共享式移动支付管理单元、终端和业务方法
US20150006407A1 (en) * 2012-01-13 2015-01-01 Ebay Inc. Systems, methods, and computer program products providing payment in cooperation with emv card readers
CA2881429C (en) 2012-02-29 2017-05-02 Mobeewave, Inc. Method, device and secure element for conducting a secured financial transaction on a device
US10354247B2 (en) * 2012-03-20 2019-07-16 First Data Corporation Systems and methods for processing payment transactions
US9760939B2 (en) * 2012-03-23 2017-09-12 The Toronto-Dominion Bank System and method for downloading an electronic product to a pin-pad terminal using a directly-transmitted electronic shopping basket entry
GB201209232D0 (en) * 2012-05-25 2012-07-04 Secure Electrans Ltd Card payment unit and method
US9357332B2 (en) * 2012-06-08 2016-05-31 Broadcom Corporation Near field communication application identification routing in card emulation
US9852419B2 (en) * 2012-09-17 2017-12-26 Capital One Financial Corporation Systems and methods for providing near field communications
WO2014076584A2 (en) * 2012-11-14 2014-05-22 Savolainen Risto K System and method for secure mobile contactless payment
GB2508015A (en) * 2012-11-19 2014-05-21 Mastercard International Inc Method and apparatus for secure card transactions
US9038894B2 (en) * 2012-11-20 2015-05-26 Cellco Partnership Payment or other transaction through mobile device using NFC to access a contactless transaction card
US9621252B2 (en) * 2013-03-11 2017-04-11 Nagravision S.A. Method and apparatus for selecting an application of a device having an NFC interface
WO2014174342A1 (en) * 2013-04-25 2014-10-30 Elharras Mohamed Mobile payment with strong authentication and non repudiation
GB201310084D0 (en) * 2013-06-06 2013-07-17 Mastercard International Inc Improvements to electronic authentication systems
TWI545511B (zh) * 2013-11-22 2016-08-11 宏達國際電子股份有限公司 電子裝置及其授權方法
US9400977B2 (en) * 2014-05-29 2016-07-26 Apple Inc. User device enabling access to payment information in response to mechanical input detection
CN104408619A (zh) * 2014-11-14 2015-03-11 中国建设银行股份有限公司 Ic卡支付终端交易流程配置、实现方法及装置和业务系统
US9654903B2 (en) * 2014-12-23 2017-05-16 Intel Corporation System for securing an NFC transaction
US9799032B2 (en) * 2015-01-26 2017-10-24 International Business Machines Corporation Client-side security for tokenized transactions
CN104766375B (zh) * 2015-03-11 2017-12-12 惠州Tcl移动通信有限公司 一种高速公路收费的支付方法、放行系统及支付系统
US9330383B1 (en) 2015-09-23 2016-05-03 Square, Inc. Message dispatcher for payment system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10684848B1 (en) 2016-03-30 2020-06-16 Square, Inc. Blocking and non-blocking firmware update
US10817869B2 (en) 2016-06-29 2020-10-27 Square, Inc. Preliminary enablement of transaction processing circuitry
US11010765B2 (en) 2016-06-29 2021-05-18 Square, Inc. Preliminary acquisition of payment information
US10762196B2 (en) 2018-12-21 2020-09-01 Square, Inc. Point of sale (POS) systems and methods with dynamic kernel selection
US10990969B2 (en) 2018-12-21 2021-04-27 Square, Inc. Point of sale (POS) systems and methods for dynamically processing payment data based on payment reader capability
US11049095B2 (en) 2018-12-21 2021-06-29 Square, Inc. Point of sale (POS) systems and methods with dynamic kernel selection

Also Published As

Publication number Publication date
WO2017053699A1 (en) 2017-03-30
EP3329438B1 (en) 2020-04-15
CN108140182B (zh) 2022-06-14
EP3329438A1 (en) 2018-06-06
CA2997776A1 (en) 2017-03-30
JP2018533785A (ja) 2018-11-15
CA2997776C (en) 2020-08-11
US20170083904A1 (en) 2017-03-23
US9330383B1 (en) 2016-05-03
US20170083879A1 (en) 2017-03-23
US10083437B2 (en) 2018-09-25
US9613350B1 (en) 2017-04-04
CN108140182A (zh) 2018-06-08

Similar Documents

Publication Publication Date Title
JP6505948B2 (ja) 支払いシステムのメッセージディスパッチャ
TWI726955B (zh) 資料交互方法及裝置、離線信用支付方法及裝置
US10684848B1 (en) Blocking and non-blocking firmware update
US12086787B2 (en) Integration of verification tokens with mobile communication devices
US10248940B1 (en) Modular firmware for transaction system
US9785930B1 (en) Expedited processing of electronic payment transactions
EP3436937B1 (en) Blocking and non-blocking firmware update
US10417628B2 (en) Multi-interface processing of electronic payment transactions
US8534564B2 (en) Integration of verification tokens with mobile communication devices
US9778928B1 (en) Compressed firmware update
CN109690593B (zh) 预交易处理技术
US10255464B2 (en) Systems and methods for determining clock rates for communicating with processing devices
US10120427B1 (en) Multi-chip reference counting power management
JP2016527632A (ja) 電子支払システム及びリモートまたは近距離の決済方法
CN114363070A (zh) 可靠的时间戳凭证
US10002268B1 (en) Identification of desired clock rate for an externally-driven processing device
EP3479326A1 (en) Expedited processing of electronic payment transactions
WO2018144591A1 (en) Communication protocol speedup and step-down
CN105160776A (zh) 城市一卡通卡、业务平台、卡片业务系统及实现方法
CN105185002B (zh) 移动终端、业务平台及卡片业务系统
US10740740B1 (en) Monitoring and recovery for a USB interface
US12124830B2 (en) Method and system for configuring a mobile point-of-sales application
KR20100103758A (ko) 통신요금을 포함하는 카드결제 서비스 제공방법 및 복합단말과 이를 위한 기록매체
KR20100103761A (ko) 결제서비스 제공을 위한 통신요금 결제처리 방법과 이를 위한 기록매체

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190327

R150 Certificate of patent or registration of utility model

Ref document number: 6505948

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250