EP4655677A1 - Access device interaction method using multiple user devices - Google Patents
Access device interaction method using multiple user devicesInfo
- Publication number
- EP4655677A1 EP4655677A1 EP25757138.0A EP25757138A EP4655677A1 EP 4655677 A1 EP4655677 A1 EP 4655677A1 EP 25757138 A EP25757138 A EP 25757138A EP 4655677 A1 EP4655677 A1 EP 4655677A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- user device
- nfc
- application
- api
- hardware
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/70—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
- H04B5/77—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes for interrogation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1423—Reconfiguring to eliminate the error by reconfiguration of paths
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2012—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant and using different communication protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/40—Near-field transmission systems, e.g. inductive or capacitive transmission systems characterised by components specially adapted for near-field transmission
Definitions
- User devices such as mobile phones can be used as contactless devices to access secure locations, obtain resources (during payments), and the like. They can communicate with access devices using a short range communication protocol such as NFC (near field communication).
- NFC near field communication
- User devices can have NFC hardware which may include NFC chips and NFC antennas, which allow them to communicate with the access devices using NFC.
- an NFC hardware API application programming interface
- Some user devices may have operating systems, which require “entitlement” before the NFC hardware API and the NFC hardware can be accessed or used by applications on the user devices.
- the requirement of entitlement presents logistical difficulties for the development and testing of applications and SDKs (software development kits) that are to be used on the user devices.
- an entitlement may only allow NFC interface access to applications on user devices when they are in the European Union.
- the development of the application and/or SDK may be performed in the United States, and testing of the application may be conducted in Singapore. In this scenario, because of the entitlement requirement, the development and testing of the application and/or SDK may be difficult or impossible to perform.
- a party who develops an application e.g., an HCE or Host Card Emulation application
- an SDK may not want to call the NFC hardware API on the mobile device.
- an application such as an HCE application and a corresponding SDK may not yet be compatible with the NFC hardware API or may have other issues with the NFC hardware API.
- Embodiments of the invention address these and other problems, individually and collectively.
- Novel and inventive techniques are disclosed to enable the development and testing of software (e.g., an HCE application and an SDK) without directly calling an NFC hardware API on user device such as a smart phone to access NFC hardware.
- Embodiments of the invention can bypass any entitlement requirement (such as when entitlement is not available or is invalid) needed to access the NFC hardware on the user device.
- One embodiment is related to a method of testing a software application on a first user device, the method comprising: determining, by the first user device comprising the software application, that a transceiver application on the first user device is unable to communicate with a first near field communication (NFC) application programming interface (API) associated with a first NFC hardware in the first user device; forming a data connection between the first user device and a second user device with a second NFC API associated with a second NFC hardware in the second user device; and conducting one or more interactions between the software application and an access device via the second user device and the second NFC API associated with the second NFC hardware, wherein the second user device communicates with the access device via NFC.
- NFC near field communication
- API application programming interface
- NFC near field communication
- API application programming interface
- Another embodiment of the invention includes a method comprising: forming a data connection between a first user device and a second user device with a second NFC API associated with a second NFC hardware in the second user device, after the first user device determines that an application comprising a transceiver application on the first user device is unable to communicate with a first near field communication (NFC) application programming interface (API) associated with a first NFC hardware in the first user device; and performing one or more NFC interactions with an access device using the second NFC API associated with the second NFC hardware in the second user device while communicating with the application in the first user device.
- NFC near field communication
- API application programming interface
- Another embodiment of the invention includes a second user device comprising a processor, and a computer readable medium.
- the computer readable medium comprising code, executable by the processor, for performing a method.
- the method comprises: forming a data connection between a first user device and a second user device with a second NFC API associated with a second NFC hardware in the second user device, after the first user device determines that an application comprising a transceiver application on the first user device is unable to communicate with a first near field communication (NFC) application programming interface (API) associated with a first NFC hardware in the first user device; and performing one or more NFC interactions with an access device using the second NFC API associated with the second NFC hardware in the second user device while communicating with the application in the first user device.
- NFC near field communication
- API application programming interface
- FIG. 1 is a block diagram illustrating a host card emulation (HCE) application and SDK for card emulation in a production configuration, according to certain embodiments.
- FIG. 2 is a block diagram illustrating debugging and testing an HCE application and SDK using a proxy device for card emulation, according to certain embodiments.
- HCE host card emulation
- FIG. 3 shows a block diagram of an exemplary user device according to an embodiment.
- FIG. 4 shows a block diagram of an access device according to an embodiment.
- a “credential” may be any suitable information that serves as reliable evidence of worth, ownership, identity, or authority.
- a credential may be a string of numbers, letters, or any other suitable characters, as well as any object or document that can serve as confirmation. Examples of credentials include value credentials, identification cards, certified documents, access cards, passcodes, and other login information, etc.
- a “user device” may be any suitable device that a user can interact with (e.g., a payment card or mobile phone).
- User devices may be in any suitable form.
- Some examples of user devices include cards (e.g., payment cards such as credit, debit, or prepaid cards) with magnetic stripes or contactless elements (e.g., including contactless chips and antennas), cellular phones (smart phones) wearable devices (smart watches, smart rings, smart glasses, etc.) PDAs, personal computers (PCs), tablet computers, bodily implant devices, and the like.
- the mobile device may include a display, a memory, a processor, a computer-readable medium, and any other suitable component.
- the functions present in an SDK may vary.
- one SDK may have authentication software.
- Another SDK may have token processing software.
- a “server computer” may include a powerful computer or cluster of computers.
- the server computer can be a large mainframe, a minicomputer cluster, or a group of servers functioning as a unit.
- the server computer may be a database server coupled to a web server.
- the server computer may be coupled to a database and may include any hardware, software, other logic, or combination of the preceding for servicing the requests from one or more client computers.
- the server computer may comprise one or more computational apparatuses and may use any of a variety of computing structures, arrangements, and compilations for servicing the requests from one or more client computers.
- a “processor” may include a device that processes something.
- a processor can include any suitable data computation device or devices.
- a processor may comprise one or more microprocessors working together to accomplish a desired function.
- the processor may include a CPU comprising at least one high-speed data processor adequate to execute program components for executing user and/or system-generated requests.
- the CPU may be a microprocessor such as AMD's Athlon, AMD Ryzen, AMD Threadripper, Duron and/or Opteron; IBM and/or Motorola's PowerPC; IBM's and Sony's Cell processor; Intel's Celeron, Itanium, Pentium, Xeon, and/or XScale; and/or the like processor(s).
- a “memory” may be any suitable device or devices that can store electronic data.
- a suitable memory may comprise a non-transitory computer readable medium that stores instructions that can be executed by a processor to implement a desired method.
- Examples of memories may comprise one or more memory chips, disk drives, etc. Such memories may operate using any suitable electrical, optical, and/or magnetic mode of operation.
- a “token” may be a substitute value for a credential.
- a token may be a string of numbers, letters, or any other suitable characters. Examples of tokens include access tokens such as payment tokens, data that can be used to access secure systems or locations, etc.
- a "payment token” may include an identifier for a payment account that is a substitute for an account identifier, such as a primary account number (PAN) and/or an expiration date.
- a token may include a series of alphanumeric characters that may be used as a substitute for an original account identifier.
- a token “4900 0000 0000 0001” may be used in place of a PAN “4147 0900 0000 1234.”
- a token may be “format preserving” and may have a numeric format that conforms to the account identifiers used in existing transaction processing networks (e.g., ISO 8583 financial transaction message format).
- a token may be used in place of a PAN to initiate, authorize, settle or resolve a payment transaction or represent the original credential in other systems where the original credential would typically be provided.
- a token value may be generated such that the recovery of the original PAN or other account identifier from the token value may not be computationally derived.
- the token format may be configured to allow the entity receiving the token to identify it as a token and recognize the entity that issued the token.
- Tokenization is a process by which sensitive data is replaced with substitute data.
- a real credential e.g., a primary account number (PAN)
- PAN primary account number
- tokenization can be applied to any other information to substitute the underlying information with a token.
- Token exchange or “de-tokenization” can be a process of restoring the data that was substituted during tokenization.
- a token exchange may include replacing a payment token with its associated primary account number (PAN).
- de- tokenization or token exchange may be applied to any other information to retrieve the substituted information from a token.
- token exchange can be achieved via a transactional message, such as an ISO message, an application programming interface (API), or another type of web interface (e.g., web request).
- API application programming interface
- a “token service computer” can include a system that that services tokens.
- a token service computer can facilitate requesting, determining (e.g., generating) and/or issuing tokens, as well as maintaining an established mapping of tokens to primary account numbers (PANs) in a repository (e.g., token vault).
- PANs primary account numbers
- the token service computer may establish a token assurance level for a given token to indicate the confidence level of the token to PAN binding.
- the token service computer may include or be in communication with a token vault where the generated tokens are stored.
- the token service computer may support token processing of payment transactions submitted using tokens by de- tokenizing the token to obtain the actual PAN.
- An “application” may be computer code or other data stored on a computer readable medium (e.g., memory element or secure element) that may be executable by a processor to complete a task.
- An “access device” may be any suitable device for obtaining access to a resource.
- An access device may generally be located in any suitable location, such as at the location of a merchant.
- An access device may be in any suitable form.
- Some examples of access devices include POS devices, cellular phones, PDAs, personal computers (PCs), tablet PCs, hand-held specialized readers, set-top boxes, electronic cash registers (ECRs), automated teller machines (ATMs), virtual cash registers (VCRs), kiosks, security systems, access systems, Websites, and the like.
- An access device may use any suitable contact or contactless mode of operation to send or receive data from, or associated with, a payment device and/or a user mobile device.
- FIG. 1 is a block diagram illustrating an interaction between a first user device 30 comprising an HCE application 34 and an access device 40 (e.g., a contactless POS device).
- the HCE application 34 comprises an HCE SDK 32 and an NFC transceiver application 36.
- entitlement 31 is present and the HCE SDK 32 may access a first NFC interface (e.g., a first NFC API and NFC hardware 38), such that the first user device 30 can communicate with an access device 40 via NFC.
- a first NFC interface e.g., a first NFC API and NFC hardware 38
- embodiments of the invention are not limited to the specific types of software applications or components in FIG. 1 (and FIG. 2).
- HCE hardware-based test application
- embodiments of the invention can be used to test applications that have any suitable function including, but not limited to, data access applications, identity applications, secure location access applications, etc.
- API application-specific integrated circuit
- APDll APDll message
- the socket server may process any other suitable type of message.
- SDK Secure Digital Key
- Card emulation technology such as Host Card Emulation (HCE) can emulate a smartcard on a user device (e.g., a smartphone) to allow a mobile application running on the user device to conduct contactless transactions.
- a mobile application can access the contactless interface of the user device via the operating system (OS) of the user device without involving a secure element.
- OS operating system
- the card emulation approach reduces the technical and commercial complexities for entities such as issuers and/or payment processors, because issuers and/or payment processors can provision account credentials and payment functionalities to a mobile application on a portable communication device without having to obtain access to a secure element through a mobile network operator.
- the user device can transmit a credential and a cryptogram, or a token and a token cryptogram, to the access device via NFC in a series of messages exchanges (without the use of a secure element).
- the access device can then generate an authorization request message and transmit it to an authorizing entity computer (e.g., an issuer computer) via a processing network for authorization.
- an authorizing entity computer e.g., an issuer computer
- the first user device 30 can be a smartphone, which may include an HCE application 34 on a computer readable medium.
- the HCE application 34 in the first user device 30 can comprise an HCE SDK 32 and a near field communication (NFC) transceiver application 36.
- the first user device 30 can also comprise a first NFC interface, which may include the first NFC API and hardware 38.
- the first NFC interface can be separate from the HCE application 34.
- the NFC transceiver application 36 in the HCE application 34 can communicate with the first NFC API and NFC hardware 38 if entitlement 31 is present.
- the entitlement 31 can be present in an operating system of the first user device 30.
- the entitlement 31 may or may not be valid for a particular application on the first user device 30.
- the entitlement 31 may not be valid for an application when the first user device 30 is outside of a predefined region (e.g., a particular country or set of countries).
- a first party e.g., a payment processor such as Visa
- the NFC transceiver application 36 and the HCE SDK 32 can produce application protocol data unit (APDll) commands and response payloads that can be exchanged with the access device 40.
- APIll application protocol data unit
- a second party e.g., an issuer such as a European bank with the required entitlement 31
- a third party e.g., a mobile phone developer or manufacturer
- the NFC interface e.g., the NFC API and hardware 38
- the HCE application 34 incorporating the HCE SDK 32 and the NFC transceiver application 36 developed by the second party may call the NFC API in the first NFC API and hardware 38 on behalf of the first party.
- the HCE SDK 32 can perform NFC communications with the access device 40 using the NFC transceiver application 36 the entitlement 31 is present and valid for the second party.
- FIG. 2 is a block diagram of a system including the first user device 30, a second user device 50, and an access device 60.
- FIG. 2 illustrates the debugging and testing an HCE application 44 and an SDK 42 using a proxy device for card emulation, according to certain embodiments.
- the configuration in FIG. 2 may be used when an entitlement is not available, or an entitlement is present but not valid. Because an entitlement for the first user device 30 is not available or not valid, the NFC transceiver application cannot communicate with the NFC interface in the first user device 30.
- an entitlement may only allow NFC interface access in the European Economic Area while the development of the HCE (host card emulation) application is executed in the United States and testing is executed in another country such as Singapore.
- a party who develops an application e.g., an HCE application
- SDK e.g., software application
- OS operating system
- an application such as an HCE application and a corresponding SDK may not yet be compatible with the hardware API or may have other issues with the hardware API.
- the debugging and testing of the HCE SDK 32 in the first user device 30, which may be a first smartphone may be performed via a proxy device, which can be a second user device 50.
- the second user device 50 can be a second smartphone.
- the second user device 50 can include a socket server such as an APDll socket server 52 capable of communicating with an NFC interface (e.g., the second NFC API and hardware 56) on the same second user device 50 without the need for an entitlement.
- the second user device 50 can be developed by a fourth party (i.e., another mobile phone developer or manufacturer).
- the first user device 30 and the second user device 50 can have different operating systems, different NFC hardware, and/or different APIs.
- the first user device 30 can use an iOSTM operating system
- the second user device 50 can use an AndroidTM operating system.
- the second user device 50 may not have the same entitlement requirements as the first user device 30.
- a method for debugging and testing the HCE SDK 32 on the first user device 30 via the second user device 50 with a socket server such as the APDll socket server 52, is described below.
- a socket server can be a server application that listens to a specific port waiting for connection requests from a client such as the first user device 30.
- the first user device 30 and the second user device 50 establish a dedicated connection (e.g., an Internet connection) over which they can communicate.
- the first user device 30 can be assigned a local port number, and binds a socket to it.
- the first user device 30 talks to the second user device 50 by writing to the socket and getting information from the second user device 50 by reading from it.
- the NFC transceiver application 36 running on the first user device 30 determines that that the entitlement to access the first NFC API and hardware 38 is missing or invalid. Therefore, the NFC transceiver application 36 may not call the first NFC API and hardware 38 to do card emulation for an NFC communication with the access device 40.
- the NFC API may be a first NFC API and the NFC hardware may be first NFC hardware.
- the first user device and the second user device form a data connection.
- the NFC transceiver application 36 then communicates with the APDll socket server 52 running on the second user device 50 via a network connection (e.g., an Internet connection using TCP/IP) using a pre-configured credential (e.g., IP address, port number, user name, password, certificate, etc.).
- the NFC transceiver application 36 can communicate with the second user device 50 via a network interface and/or long range communication antenna in the first user device 30 that is different from the first NFC hardware in the first NFC API and hardware 38.
- the second user device 50 can have a device NFC system API 54 and a second NFC API and hardware.
- the APDll socket server 52 running on the second user device 50 can start a card emulation session by calling the second NFC API and hardware 56 via the device NFC system API 54.
- the NFC transceiver application 36 and/or the APDll socket server 52 does not have to have entitlement before access to the second NFC API and hardware 56 is permitted. This is because the operating system of the second user device 50 may not have the same entitlement requirements as the operating system in the first user device 30.
- a developer or a tester taps the second user device 50 to the access device 40, or otherwise places the second user device 50 near the access device 40 (e.g., within 1 cm) for debugging and testing.
- the second user device 50 establishes an NFC communication with the access device 40. Then, one or more communications between the HCE SDK 32 in the HCE application 34 in the first user device 30 and the access device 40 are then passed via the NFC transceiver application 36, and the APDU socket server 52, the device NFC system API 54, and the second NFC second NFC API and hardware 56 in the second user device 50.
- the communications between the HCE SDK 32 and the access device 40 may be recorded by the HCE SDK 32, the access device 40, or a separate analysis computer in communication with the first user device 30 and/or the access device 40. The recorded data can be later analyzed for development or repair of the software.
- the access device 40 sends APDll commands to the second user device 50, which is in card emulation mode.
- APDll commands include, but are not limited to the following: SELECT PPSE, SELECT AID, GET PROCESSING OPTIONS, and READ RECORD.
- the NFC API and hardware 56 sends the received APDU commands to the APDU socket server 52 via the device NFC system API 54 on the second user device 50.
- the APDU socket server 52 forwards the received APDU commands to the NFC transceiver application 36 on the first user device 30 via the established network connection.
- the NFC transceiver application 36 sends the received APDU commands to the HCE SDK 32.
- the HCE SDK 32 returns APDU responses to the NFC transceiver application 36.
- the NFC transceiver application 36 returns the APDU response to the APDU socket server 52 on the second user device 50 via the established network connection.
- the APDU socket server 52 returns the APDU responses to the NFC API and hardware 56 of the second user device 50 via the device NFC system API 54.
- the second user device 50 returns the APDU responses to the access device 40.
- steps 1 -13 can be repeated as many times as desired to facilitate testing.
- hundreds or thousands of transaction scenarios can be run to determine if the HCE SDK 32 and the access device 40 are interacting as expected. Errors or other performance output data can be gathered and stored by the first user device 30, the access device 40, or an analysis computer (not shown) in communication with the first user device 30 or the access device 40 for later analysis.
- the APDll socket server 52 in the second user device 50 may include, but is not limited to, the following commands: runSocketServer(), lncomingHandler(), and processCommandApdu().
- the NFC transceiver application 36 in the first user device 30 can communicate with the access device 40 if entitlement is present in the first user device, as discussed in FIG. 1 , or without an entitlement, as discussed in FIG. 2.
- the NFC transceiver application 36 may be developed with three possible options.
- the NFC transceiver application 36 reads the entitlement eligibility indicator from the first user device 30. If the indicator is true, then the NFC transceiver application 36 uses the NFC API and hardware 38 in the first user device 30 for card emulation as described above with respect to FIG. 1 . Otherwise, it uses a proxy device such as the second user device 50 for card emulation as described above with respect to FIG. 2.
- the NFC transceiver application 36 reads a configuration in the HCE application 34 (e.g., database entry, JSON file), to determine whether to use the NFC API and hardware 38 or a proxy device (e.g., the second user device 50) for card emulation.
- a configuration in the HCE application 34 e.g., database entry, JSON file
- a proxy device e.g., the second user device 50
- class A implements the NFC transceiver application 36 using the NFC API and hardware 38 for card emulation.
- Class B causes the NFC transceiver application to communicate with a proxy device such as the second user device 50 for card emulation.
- the HCE application 34 can choose to compile with an SDK with Class A in a product scenario or with an SDK with Class B in testing scenario.
- the NFC transceiver application 36 on the first user device 30 may verify if the first user device 30 is eligible to use CardSession (i.e., whether the indicator is true or false) based on its location by performing the following three sub-steps: Check NFCReaderSession.readingAvailable to ensure that the device supports card sessions with NFC.
- NFC transceiver application 36 proceeds to a second step using the first user device 30 CardSession APIs for card emulation by performing the following sub-steps: a. Create a card session over events from the session’s eventstream.
- CardSession() b Start the session to acquire necessary system resources.
- Event.sessionStarted c The application acquires the NFC resource, and the device detects the RF field of an NFC reader.
- an external reader e.g., in an access device
- CardSession. startEmulation() e. After starting emulation, the reader can communicate with the emulated card in the first user device 30, and emulation triggers the system. f. Begin receiving and processing APDlls from the event stream. g. Process the APDll payload in each event, generate a response, and send it with a response. h. If the reader disconnects, this may be because of the device moving away from the reader.
- the processing for NFC transceiver application proceeds to a third step using a proxy device such as the second user device 50 with the APDll socket server 52 running on the second user device 50 (e.g., an Android device) to perform card emulation, by performing the following sub-steps: a. Establish socket connection. b. Once sockets are connected, the second user device starts card emulation. c. Tap the second user device to contactless access device. d. Contactless access device sends APDll commands to the second user device. e. The second user device’s APDll socket server 52 forwards the APDU commands to the first user device 30 using the socket server connection. f.
- a proxy device such as the second user device 50 with the APDll socket server 52 running on the second user device 50 (e.g., an Android device) to perform card emulation, by performing the following sub-steps: a. Establish socket connection. b. Once sockets are connected, the second user device starts card emulation. c. Tap the
- FIG. 3 illustrates a user device 300 according to an embodiment.
- User device 300 may include device hardware 304 coupled to a system memory 302.
- Device hardware 304 may include a processor 306, a short range antenna 314, a long range antenna 316, input elements 310, a user interface 308, and output elements 312 (which may be part of the user interface 308).
- input elements may include microphones, keypads, touchscreens, sensors, etc.
- output elements may include speakers, display screens, and tactile devices.
- the processor 306 can be implemented as one or more integrated circuits (e.g., one or more single core or multicore microprocessors and/or microcontrollers), and is used to control the operation of user device 300.
- the processor 306 can execute a variety of programs in response to program code or computer-readable code stored in the system memory 302, and can maintain multiple concurrently executing programs or processes.
- the long range antenna 316 may include one or more RF transceivers and/or connectors that can be used by user device 300 to communicate with other devices and/or to connect with external networks.
- the user interface 308 can include any combination of input and output elements to allow a user to interact with and invoke the functionalities of user device 300.
- the short range antenna 809 may be configured to communicate with external entities through a short range communication medium (e.g., using Bluetooth, Wi-Fi, infrared, NFC, etc.).
- the long range antenna 819 may be configured to communicate with a remote base station and a remote cellular or data network, over the air.
- the system memory 302 can be implemented using any combination of any number of non-volatile memories (e.g., flash memory) and volatile memories (e.g., DRAM, SRAM), or any other non-transitory storage medium, or a combination thereof media.
- the system memory 302 may store computer code, executable by the processor 306, for performing any of the functions described herein.
- the computer readable medium may comprise code, executable by the processor 306 to perform a method comprising: determining, by the first user device comprising the software application, that a transceiver application on the first user device is unable to communicate with a first near field communication (NFC) application programming interface (API) associated with a first NFC hardware in the first user device; forming a data connection between the first user device and a second user device with a second NFC API associated with a second NFC hardware in the second user device; and conducting one or more interactions between the software application and an access device via the second user device and the second NFC API associated with the second NFC hardware, wherein the second user device communicates with the access device via near field communications (NFC).
- NFC near field communication
- API application programming interface
- the computer readable medium may comprise code, executable by the processor 306 to perform a method comprising: forming a data connection between a first user device and a second user device with a second NFC API associated with a second NFC hardware in the second user device, after the first user device determines that an application comprising a transceiver application on the first user device is unable to communicate with a first near field communication (NFC) application programming interface (API) associated with a first NFC hardware in the first user device; and performing one or more NFC interactions with an access device using the second NFC API associated with the second NFC hardware in the second user device while communicating with the application in the first user device.
- NFC near field communication
- API application programming interface
- the system memory 302 may also store a transaction initiation module 302A, an application 302B (e.g., an HCE application comprising an SDK and an NFC transceiver module), an authentication module 302C, credentials/tokens 302D, a communication module 302E, a socket server 302F, an NFC hardware API 302G, and an operating system 302H,
- the transaction initiation module 302A may include instructions or code initiating and conducting a transaction with an external device such as an access device or a processing computer. It may include code, executable by the processor 306, for forming a local connection or otherwise interacting with an external access device.
- the application 302B can allow a user to perform unique functions using the user device 300.
- the application 302B can be the above-described HCE application with the SDK and the NFC transceiver application.
- the authentication module 302C may comprise code, executable by the processor 306, to authenticate a user. This can be performed using user secrets (e.g., passwords) or user biometrics.
- the communication module 302E can comprise code, executable by the processor 306 to perform communication functions.
- the socket server 302F and the NFC hardware API 302G are described above.
- the operating system 302H can include or not include one or more entitlements to use an NFC interface in the user device 300.
- FIG. 4 shows a block diagram showing components in an exemplary access device 400.
- the access device 400 may comprise a processor 402. It may also comprise a computer readable medium 404, a short range communication interface 406, a long range communication interface 414, and a data storage 410 operationally coupled to the processor 402.
- the computer readable medium 404 may store code or instructions for allowing access device 400 to operate in the manner described herein.
- the computer readable medium 404 may further comprises one or more APIs 404A, a transaction authorization module 404B, an authentication module 404C, and a cryptography module 404D.
- the APIs 404A may comprise software which will allow the access device 400 to communicate with an external computer.
- the transaction authorization module may comprise software, executable by the processor 402, to perform authorization processing.
- the authentication module 404C may comprise code, executable by the processor 402, to authenticate users or user devices.
- the cryptography module 404D may comprise code, executable by the processor 402, to perform cryptographic operations.
- any of the software components or functions described in this application may be implemented as software code to be executed by a processor using any suitable computer language such as, for example, Java, C, C++, C#, Objective-C, Swift, or scripting language such as Perl or Python using, for example, conventional or object-oriented techniques.
- the software code may be stored as a series of instructions or commands on a computer readable medium for storage and/or transmission, suitable media include random access memory (RAM), a read only memory (ROM), a magnetic medium such as a hard-drive or a floppy disk, or an optical medium such as a compact disk (CD) or DVD (digital versatile disk), flash memory, and the like.
- RAM random access memory
- ROM read only memory
- magnetic medium such as a hard-drive or a floppy disk
- an optical medium such as a compact disk (CD) or DVD (digital versatile disk), flash memory, and the like.
- the computer readable medium may be any combination of such storage or transmission devices.
- Such programs may also be encoded and transmitted using carrier signals adapted for transmission via wired, optical, and/or wireless networks conforming to a variety of protocols, including the Internet.
- a computer readable medium according to an embodiment of the present invention may be created using a data signal encoded with such programs.
- Computer readable media encoded with the program code may be packaged with a compatible device or provided separately from other devices (e.g., via Internet download). Any such computer readable medium may reside on or within a single computer product (e.g., a hard drive, a CD, or an entire computer system), and may be present on or within different computer products within a system or network.
- a computer system may include a monitor, printer, or other suitable display for providing any of the results mentioned herein to a user.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202463570974P | 2024-03-28 | 2024-03-28 | |
| PCT/US2025/021609 WO2025207809A1 (en) | 2024-03-28 | 2025-03-26 | Access device interaction method using multiple user devices |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP4655677A1 true EP4655677A1 (en) | 2025-12-03 |
| EP4655677A4 EP4655677A4 (en) | 2026-04-08 |
Family
ID=97067579
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP25757138.0A Pending EP4655677A4 (en) | 2024-03-28 | 2025-03-26 | METHOD FOR INTERACTING AN ACCESS DEVICE WITH MULTIPLE USER DEVICES |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4655677A4 (en) |
| CN (1) | CN121039644A (en) |
| WO (1) | WO2025207809A1 (en) |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8244179B2 (en) * | 2005-05-12 | 2012-08-14 | Robin Dua | Wireless inter-device data processing configured through inter-device transmitted data |
| FR2962571B1 (en) * | 2010-07-08 | 2012-08-17 | Inside Contactless | METHOD FOR PERFORMING A SECURE APPLICATION IN AN NFC DEVICE |
| EP2621100B1 (en) * | 2012-01-27 | 2017-05-10 | BlackBerry Limited | Mobile communications device providing enhanced near field communication (NFC) mode switching features and related methods |
| JP5867319B2 (en) * | 2012-07-03 | 2016-02-24 | ブラザー工業株式会社 | Communication device |
| US9635492B2 (en) * | 2014-08-01 | 2017-04-25 | Apple Inc. | Systems and methods for performing radio-frequency testing on near-field communications circuitry |
| GB2575697B (en) * | 2018-07-30 | 2020-08-19 | Support Robotics Ltd | Remote control system |
| WO2021162973A1 (en) * | 2020-02-10 | 2021-08-19 | Visa International Service Association | Network based testing of mobile device kernels system and method |
| US12035214B2 (en) * | 2020-05-20 | 2024-07-09 | Accenture Global Solutions Limited | Controlling and monitoring devices using near field communication |
-
2025
- 2025-03-26 WO PCT/US2025/021609 patent/WO2025207809A1/en active Pending
- 2025-03-26 EP EP25757138.0A patent/EP4655677A4/en active Pending
- 2025-03-26 CN CN202580001565.8A patent/CN121039644A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| CN121039644A (en) | 2025-11-28 |
| WO2025207809A1 (en) | 2025-10-02 |
| EP4655677A4 (en) | 2026-04-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10902421B2 (en) | Provisioning payment credentials to a consumer | |
| US10885509B2 (en) | Bridge device for linking wireless protocols | |
| CN110771119A (en) | Adapter for providing unified transaction interface | |
| CN121961561A (en) | Multi-mode payment system and method | |
| US12079116B2 (en) | Network based testing of mobile device kernels system and method | |
| US11438766B2 (en) | Terminal type identification in interaction processing | |
| CN113287095A (en) | Computer and pipeline for system test | |
| CN114207578B (en) | Method and apparatus for mobile application integration | |
| EP3148158A1 (en) | Monitoring a transaction and apparatus for monitoring a mobile payment transaction | |
| US20190156334A1 (en) | System and method for providing anonymous payments | |
| US11429979B2 (en) | Methods, systems and computer program products for transaction authentication | |
| WO2025207809A1 (en) | Access device interaction method using multiple user devices | |
| CN114981810B (en) | Universal non-contact kernel system and method | |
| US20260080403A1 (en) | Securing access data use with device data | |
| RU2780821C2 (en) | Adapter for providing unified transaction interface | |
| WO2025255250A1 (en) | Interaction messaging using sender and receiver devices | |
| WO2025244630A1 (en) | Browser integration for contactless interactions | |
| WO2026024473A1 (en) | Portable device and communication device interaction process | |
| EP3576035A1 (en) | Improvements relating to tokenisation of payment data | |
| HK40061623A (en) | Terminal type identification in interaction processing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20250829 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| A4 | Supplementary search report drawn up and despatched |
Effective date: 20260311 |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 11/3668 20250101AFI20260305BHEP Ipc: H04B 5/40 20240101ALI20260305BHEP Ipc: H04B 5/77 20240101ALI20260305BHEP Ipc: G06F 11/20 20060101ALI20260305BHEP Ipc: G06F 11/3698 20250101ALI20260305BHEP Ipc: G06F 11/14 20060101ALI20260305BHEP |