Keyboard input emulation
By establishing a wireless communication channel between the computing device and the mobile device, transmitting and editing the dataset identifier, and imitating keyboard keystroke input, the problem of complex operation of traditional computing devices is solved, and the automatic processing and exchange of datasets is realized.
Patent Information
- Application Number
- CN201880066348.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2017-10-11
- Filing Date
- 2018-07-13
- Publication Date
- 2025-10-17
- Estimated Expiration
- 2038-07-13
AI Technical Summary
Traditional computing devices have difficulty exchanging data with NFC-enabled devices and require manually pressing buttons or entering keyboard keystrokes to process different types of data sets, resulting in complex operations.
A wireless communication channel is established between the computing device and the mobile computing device to transmit and receive a dataset identifier, and the dataset is edited to mimic keyboard keystroke input, including prefixes and suffixes, to achieve automatic processing of the dataset.
Data exchange and processing with merchant computing devices can be achieved without changing the computing device hardware, which simplifies the operation process and improves data processing efficiency.
Smart Images

Figure CN111201504B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This patent application claims priority to U.S. Patent Application No. 62 / 570,820, entitled “Keyboard Input Emulation,” filed on October 11, 2017. The entire contents of the above application are incorporated herein by reference in their entirety. Technical Field
[0003] The technology disclosed herein relates to the creation of data input that mimics keyboard input. Background Art
[0004] Near Field Communication ("NFC") is a standards-based wireless communication technology that allows data to be exchanged between devices that are within a predefined proximity of each other. Traditionally, NFC-enabled devices have been pre-configured with special hardware and applications to enable the transfer of sensitive data. However, it is often difficult to modify the manufacturing hardware of certain types of computing devices that may not be NFC-enabled.
[0005] Furthermore, programming these computing devices requires specific keyboard keystroke input to process different types of data sets. Traditionally, computing device operators have been required to manually press a button or enter a set of keyboard keystrokes to signal the start and end of each type of data set entered. Thus, there is a need to be able to exchange data with these computing devices from an NFC-enabled device and emulate manual keyboard input. Summary of the Invention
[0006] The technology herein provides computer-implemented methods to emulate keyboard input. In an example, a computing device establishes a wireless communication channel with a mobile computing device. The computing device transmits an identifier to the mobile computing device and receives a response from the mobile computing device that includes one or more data sets corresponding to the identifier. The computing device identifies a first data set identifier in the response that signals a start of a first data set. The computing device edits the first data set to include (1) a first keyboard keystroke input prefix that is understood by a second computing device to define the first data set as a first particular type of data and (2) a keyboard keystroke input suffix that is understood by the second computing device to define an end of the first data set. The computing device identifies a second data set identifier in the response that signals a start of a second data set and edits the second data set to include (1) a second keyboard keystroke input prefix that is understood by the second computing device to define the second data set as a second particular type of data and (2) a keyboard keystroke input suffix that is understood by the second computing device to define an end of the second data set. The computing device transmits the edited first data set and the edited second data set to the second computing device, where the second computing device (1) processes the first data set based on the first keyboard keystroke input prefix, (2) identifies an end of the first data set based on the keyboard keystroke input suffix, (3) processes the second data set based on the second keyboard keystroke input prefix, and (4) identifies an end of the second data set based on the keyboard keystroke input suffix.
[0007] In certain other example aspects described herein, systems and computer program products to emulate keyboard input are provided.
[0008] These and other aspects, objects, features, and advantages of the examples will become apparent to those of ordinary skill in the art upon consideration of the following detailed description with reference to the drawings. BRIEF DESCRIPTION OF DRAWINGS
[0009] Figure 1 is a block diagram depicting a system to emulate keyboard input according to certain examples.
[0010] Figure 2 is a flow diagram depicting a method to emulate keyboard input according to certain examples.
[0011] Figure 3 is a flow diagram depicting a method to process APDU identifier response data according to certain examples.
[0012] Figure 4 is a block diagram depicting a computer machine and modules according to certain examples. DETAILED DESCRIPTION
[0013] SUMMARY
[0014] Examples described herein provide computer-implemented techniques for keyboard emulation. In examples, a reader computing device is communicatively connected to a merchant computing device. The example reader computing device is capable of transmitting one or more of loyalty information, offers, gift card account information, payment information, and other transaction-related information received from a user computing device to the merchant computing device. In examples, the reader computing device processes data received from the user computing device to extract data sets and convert the extracted data into data that is understood by the merchant computing device. The example conversion process includes the input of keyboard codes that emulate keyboard keystrokes entered by a cashier or merchant system operator into the merchant computing device.
[0015] In examples, a user computing device is placed within a predetermined threshold distance of a reader computing device and a wireless communication channel is established through which application protocol data unit ("APDU") commands and responses are exchanged. In examples, the reader computing device transmits an APDU command to the user computing device over the communication channel. The example APDU command includes a compatibility code. The user computing device receives the APDU compatibility code command and sends an APDU compatibility response to the reader computing device. In examples, the APDU compatibility command-response pair confirms that the user computing device is capable of communicating with the reader computing device. In examples, the reader computing device receives the APDU compatibility response and transmits an APDU identifier command to the user computing device.
[0016] In examples, the user computing device receives the APDU identifier command and identifies loyalty information, offers, gift card account information, or other merchant-related information corresponding to an identifier included in the APDU identifier command. In examples, the user computing device prepares an APDU identifier response that includes the identified information. The example APDU identifier response includes the loyalty information, offers, gift card account information, or other merchant-related information corresponding to the identifier included in the APDU identifier command. In examples, the user computing device transmits the APDU identifier response to the reader computing device. In examples, the reader computing device receives the APDU identifier response and removes the user computing device from the predetermined threshold distance of the reader computing device. In examples, the reader computing device processes the received APDU identifier response. For example, the reader computing device parses the received data to identify one or more data sets. In examples, the reader computing device identifies data sets by evaluating the manner in which the data is formatted. In examples, the reader computing device reads the APDU identifier response and extracts each of the identified data sets.
[0017] In an example, the reader computing device emulates the input of the keyboard keystrokes by editing the extracted data set to include the required prefix before each type of data. The input of the edited keyboard keystrokes signals to the merchant computing device that the data following the prefix is of the corresponding type.
[0018] In an example, the reader computing device identifies each type of the extracted data set and determines the keyboard code required by the merchant computing device to process data of the corresponding type. The reader computing device emulates the input of the keyboard keystrokes (e.g., the pressing of a key or button by a cashier or merchant operator) by editing the data set to include the required prefix before each type of data. The input of the edited keyboard keystrokes signals to the merchant computing device that the data following the prefix is of the corresponding type.
[0019] In an example, the merchant computing device requires a specified keyboard keystroke to signal the completion of the data set. For example, after entering the data directly into the merchant computing device, the cashier or merchant operator is required to press a key or button on the merchant computing device to indicate the completion of the entry of the loyalty account information. Once the cashier or merchant operator presses the key or button, the merchant computing device will understand that the complete data set has been entered. In an example, the reader computing device emulates the input of the keyboard keystrokes (e.g., the pressing of a key or button by a cashier or merchant operator) by entering the keyboard keystroke after the edited member account information.
[0020] In an example, the reader computing device extracts more than one type of data set. In this example, the methods are repeated for each different type of data set. Once each data set has been edited, the reader computing device prepares a transmission to the merchant computing device that includes a list of the edited identifier response data sets. In this example, the transmission includes different loyalty account identifiers, offer identifiers, gift card account identifiers, gift card account passwords or PINs, or other transaction related information sets identified from the APDU identifier responses and edited to include the keyboard emulated keystrokes so the data sets can be recognized by the merchant computing device.
[0021] In an example, the reader computing device is communicatively coupled to the merchant computing device and transmits the list of edited identifier response data sets to the merchant computing device over a wired or wireless communication channel. The merchant computing device understands the emulated keyboard keystrokes and can process the data sets without requiring additional buttons or keys to be entered by the cashier, user, or merchant operator.
[0022] By using and relying on the methods and systems described herein, the keyboard emulation system can be used as a hardware add-on device that communicates with a user computing device in order to receive and edit data in a manner that can be understood by a merchant computing device without requiring a change in the processing capabilities of the merchant computing device. Traditionally, merchant computing devices such as point of sale devices are manufactured with standard processing capabilities. Given the widespread use of point of sale devices and the stringent ISO guidelines surrounding payment processing, it is difficult to change the standard processing functions to communicate with a user computing device. As such, the systems and methods described herein can be used to allow for processing of data from a user computing device without compromising the structure and function of the point of sale device and without requiring a change in the hardware manufactured on the user computing device. Thus, providing a plug-in hardware device that operates in conjunction with a point of sale device to edit data received from a user computing device in a manner that emulates keystrokes traditionally entered by a cashier improves the functionality of computer and payment systems.
[0023] In the following description, various examples will be explained in connection with the drawings, which illustrate procedures by way of example.
[0024] Turning now to the drawings, where like numbers on all figures designate like (but not necessarily identical) elements, examples will be described in detail.
[0025] Example System Architecture
[0026] Figure 1 is a block diagram depicting a system that emulates keyboard input according to certain examples. As Figure 1 depicted in FIG. 1, example operating environment 100 includes systems 110, 120, and 130 configured to communicate with each other via one or more networks or via communication channels 140 of the computing devices. In another example, two or more of the systems (including systems 110, 120, and 130) are integrated into the same system. In some examples, a user associated with a device must install an application and / or make a feature selection to obtain the benefits of the technology described herein.
[0027] Each communication channel 140 includes a wired or wireless telecommunication mechanism by which the systems (including systems 110, 120, and 130) can communicate and exchange data. For example, each communication channel 140 can be implemented as Bluetooth, Bluetooth Low Energy (BLE), a near field communication network (NFC), any form of standardized radio frequency, infrared, sound (e.g., audible sounds, melodies, and ultrasound), other short-range communication channels, or any combination thereof or any other suitable architecture or system that facilitates the communication of signals, data, and / or messages (collectively, data), or can be part thereof. Throughout the specification, it should be understood that the terms "data" and "information" are used interchangeably herein to refer to text, images, audio, video, or any other form of information that can exist in a computer-based environment.
[0028] In examples, each system (including systems 110, 120, and 130) includes a device having a communication module capable of transmitting and receiving data over network 140. For example, each network system (including systems 110, 120, and 130) can include a server, a personal computer, a mobile device (e.g., a notebook computer, a tablet computer, a netbook computer, a personal digital assistant (PDA), a video game device, a GPS locator device, a cellular phone, a smartphone, or other mobile device), a television having one or more processors embedded therein and / or coupled thereto, or other suitable technology including or coupled to a web browser or other application for communicating via communication channel 140. In Figure 1 In the example depicted in FIG. 1, the systems (including systems 110, 120, and 130) are operated by users and merchants, respectively.
[0029] The merchant computing system includes at least one merchant computing device 130. An example merchant computing device 133 includes a user interface 131, an application 133, and a data storage unit 139.
[0030] In examples, merchant computing device 130 is a point-of-sale (POS) terminal, such as a cash register, capable of processing a purchase transaction initiated by a user. In examples, the merchant operates a commercial store and the user indicates a desire to make a purchase by presenting a form of payment on the POS terminal. In another example, merchant computing device 130 can be a personal computer, a mobile device (e.g., a notebook computer, a tablet computer, a netbook computer, a personal digital assistant (PDA), a video game device, a GPS locator device, a cellular phone, a smartphone, or other mobile device), a television, a wearable computing device (e.g., a watch, a ring, or glasses), or other suitable technology including or coupled to a web server (or other suitable application for interacting with web files) or including or coupled to application 133.
[0031] A merchant can process a purchase transaction using the merchant computing device 130 via the user interface 131 and the application 133. For example, the user interface 131 includes a touch screen, a voice-based interface, or any other interface that allows the merchant to provide input and receive output from the application 133. In an example, the merchant interacts with the application 133 via the user interface 131.
[0032] The application 133 is a program, function, routine, applet, or similar entity that resides on and executes its operations on the merchant computing device 130. For example, the application 133 can be one or more of a shopping application, a merchant computing system application, an Internet browser, a digital wallet application, a loyalty card application, another value-added application, a user interface 131 application, or other suitable application operating on the merchant computing device 130. In some examples, the merchant must install the application 133 and / or make feature selections on the merchant computing device 130 to obtain the benefits of the technology described herein.
[0033] In an example, the data storage unit 139 can be a separate memory unit that resides on the merchant computing device 130. The example data storage unit 139 enables storage of sales data, offer data, loyalty information, and purchase data. In an example, the data storage unit 139 can include any local or remote data storage structure accessible to the merchant computing device 130 suitable for storing information. In an example, the data storage unit 139 stores encrypted information, such as HTML5 local storage.
[0034] In an example, the merchant computing device 130 is capable of communicating with the reader computing device 120 via the application 133. According to alternative examples, the application 133 can be an integral part of the merchant computing device 130 or can be a separate hardware device (not shown).
[0035] In an example, the merchant computing system includes the reader computing device 120 capable of communicating with the user computing device 110 and the merchant computing device 130 via the application 123. The example reader computing device 120 includes an additional hardware device that operates in conjunction with the merchant computing device 130. In an example, the reader computing device can be a personal computer, a mobile device (e.g., a notebook computer, a tablet computer, a netbook computer, a personal digital assistant (PDA), a video game device, a GPS locator device, a cellular phone, a smartphone, or other mobile device), a television, a wearable computing device (e.g., a watch, a ring, or glasses), or other suitable technology that includes or is coupled to a web server (or other suitable application for interacting with web page files) or the application 123. In an example, the reader computing device 120 plugs into the merchant computing device via a wired or wireless communication channel. In an example, data is communicated from the reader computing device 120 to the merchant computing device 130 via the wired or wireless communication channel.
[0036] In an example, the reader computing device 120 is capable of communicating with the user computing device 110 using an NFC communication method. In another example, the reader computing device 120 is capable of communicating with the user computing device 110 using a Bluetooth communication method. In yet another example, the reader computing device 120 is capable of communicating with the user computing device 110 using a Wi-Fi communication method.
[0037] The example application 123 is a program, function, routine, applet, or similar entity that exists on and executes its operations on the reader computing device 120. For example, the application 123 can be one or more of a shopping application, a merchant computing system application, a digital wallet application, a loyalty card application, another value-added application, or other suitable application that operates on the reader computing device 120.
[0038] In an example, the data storage unit 129 can be a separate memory unit that resides on the reader computing device 120. The example data storage unit 129 enables the storage of sales data, offer data, loyalty information, and purchase data. In an example, the data storage unit 129 can include any local or remote data storage structure accessible to the reader computing device 120 suitable for storing information. In an example, the data storage unit 129 stores encrypted information, such as HTML5 local storage.
[0039] In an example, the user requests a purchase, exchanges loyalty data, exchanges offer data, or exchanges gift card data from the merchant computing system. In an example, the exchange with the reader computing device 120 is initiated by a wireless "tap" of the user computing device 110. In an example, a communication channel 140 is established between the reader computing device 120 and the user computing device 110. Data can then be exchanged through the established communication channel 140.
[0040] In an example, the data received from the user computing device 110 is processed by the application 123 on the reader computing device 120. In an example, the data is processed and at least a portion of the data is converted into data understood by the merchant computing device 130. Example converted data includes the entry of a keyboard code.
[0041] The example user computing device 110 includes a user interface 111, an application 113, a data storage unit 119, a controller 115, and an antenna 117. In an example, the user computing device 110 can be a personal computer, a mobile device (e.g., a notebook computer, a tablet computer, a netbook computer, a personal digital assistant (PDA), a video game device, a GPS locator device, a cellular telephone, a smartphone, or other mobile device), a television, a wearable computing device (e.g., a watch, a ring, or glasses), or other suitable technology including or coupled to a web server (or other suitable application for interacting with web files) or including or coupled to the application 113.
[0042] A user can use the user computing device 110 to communicate with the reader computing device 120 and exchange data via the user interface 111 and the application 113. For example, the user interface 111 includes a touchscreen, a voice-based interface, or any other interface that allows the user to provide input and receive output from the application 113. In an example, the user interacts with the application 113 via the user interface 111.
[0043] The application 113 is a program, function, routine, applet, or similar entity that exists on and performs its operations on the user computing device 110. For example, the application 113 can be one or more of a shopping application, a merchant computing system application, an Internet browser, a digital wallet application, a loyalty card application, another value-added application, a user interface 111 application, or other suitable application operating on the user computing device 110. In some examples, the user must install the application 113 and / or make a feature selection on the user computing device 110 to obtain the benefits of the technology described herein.
[0044] In an example, the data storage unit 119 and the application 113 can be implemented in a secure element or other secure memory (not shown) on the user computing device 110. In another example, the data storage unit 119 can be a separate memory unit that resides on the user computing device 110. The example data storage unit 119 enables the storage of loyalty data, offers, gift card data, and payment data. In an example, the data storage unit 119 can include any local or remote data storage structure accessible to the user computing device 110 suitable for storing information. In an example, the data storage unit 119 stores encrypted information, such as HTML5 local storage.
[0045] In an example, the controller 115 is capable of transmitting and receiving data, performing authentication and encryption functions, and directing the user computing device 110 how to listen for transmissions from the merchant computing device 120 or configuring the user computing device 110 into various power saving modes. In another example, the user computing device 110 includes a Bluetooth controller, a Bluetooth Low Energy ("BLE") controller, or an NFC controller capable of performing similar functions. The example controller 115 communicates with the application 113 and is capable of transmitting and receiving data over the wireless communication channel 140. In another example, the controller 115 includes a Bluetooth controller, a BLE controller, a Wi-Fi controller, or an NFC controller that performs similar functions using Bluetooth, BLE, Wi-Fi, or NFC protocols.
[0046] In an example, the controller 115 activates the antenna 117 to create the wireless communication channel 140 between the user computing device 110 and the reader computing device 120. For example, the user computing device 110 communicates with the reader computing device 120 via the antenna 117. In an example, when the user computing device 110 has been activated, the controller 115 polls through the antenna 117 for radio signals, or listens for radio signals from the reader computing device 120.
[0047] In an example, the antenna 117 is the means of communication between the user computing device 110 and the reader computing device 120. In an example, the controller 115 outputs radio signals through the antenna 117, or listens for radio signals from the reader computing device 120.
[0048] The example user computing device 110 includes a secure element or secure memory (not shown) that can be present in a removable smart chip or can be embedded within a fixed chip on the user computing device 110 in a secure digital (SD) card, or implemented as a secure compartment of a security-enhanced operating system. In certain examples, a subscriber identity module (SIM) card can be capable of hosting a secure element, such as an NFC SIM card. The secure element allows software applications that reside on the user computing device 110 and are accessible by the device user to securely interact with certain functions within the secure element, while protecting information stored within the secure element. In another example, as an optional implementation, the secure element is configured to include a non-EMV type of contactless smart card. The secure element communicates with the application 113 in the user computing device 110. In an example, the secure element is capable of storing encrypted user information and only allowing trusted applications to access the stored information. In an example, the controller 115 interacts with the application encrypted with a secure key for decryption and installation in the secure element.
[0049] In another example, a host card emulation ("HCE") is used instead of or in conjunction with a secure element. In an example, the HCE enables the application 113 to use cryptographic processing to provide secure access and processing (e.g., payment accounts and loyalty accounts) access without a physical secure element. Using the HCE, data can be securely exchanged between the NFC-enabled reader computing device 120 and the application 113 on the user computing device 110. In an example, this exchange is configured to act or pretend to emulate the functional responses of a secure element. In an example, data requests received from the reader computing device 120 are routed to the host operating system (not shown) of the user computing device 110 instead of being routed to a local hardware-based secure element.
[0050] In an example, the network computing devices and any other computers associated with the technology presented herein can be any type of computer, such as but not limited to those discussed in more detail with respect to Figure 4 any of the computers discussed herein or any other functionality associated with the technology presented herein (e.g., scripts, web content, software, firmware, hardware, or modules), can be any of the components discussed in more detail with respect to Figure 4 any of the computers discussed herein or any other functionality associated with the technology presented herein (e.g., scripts, web content, software, firmware, hardware, or modules), can be any of the components discussed in more detail with respect to Figure 4 any of the computers discussed herein or any other functionality associated with the technology presented herein (e.g., scripts, web content, software, firmware, hardware, or modules), can be any of the components discussed in more detail with respect to
[0051] Example processes
[0052] In the following, components of the example operating environment 100 will be described with reference to the example method shown in Figures 2-3 Figures 2-3 The example method of Figures 2-3 The operations described with respect to any of the computers can be implemented as instructions stored in a computer or machine-readable non-transitory tangible storage medium (e.g., floppy disk, hard disk, ROM, EEPROM, nonvolatile RAM, CD-ROM, etc.) that are executable by a processor circuit implemented using one or more integrated circuits; the operations described herein can also be implemented as executable logic encoded in one or more non-transitory tangible media (e.g., programmable logic arrays or devices, field programmable gate arrays, programmable array logic, application specific integrated circuits, etc.) for execution by a processor circuit.
[0053] Figure 2 is a block flow diagram depicting a method 200 of emulating keyboard input according to certain examples. The method 200 is described with reference to Figure 1 The components illustrated in FIG. 1 are described in more detail in FIG. 2. In an example, the reader computing device 120 is communicatively connected to the merchant computing device 130. The example reader computing device 120 is capable of transmitting one or more of loyalty information, offers, gift card account information, payment information, and other transaction related information received from the user computing device 110 to the merchant computing device 130. In an example, the reader computing device 120 processes data received from the user computing device 110 to extract data sets and convert the extracted data into data that is understood by the merchant computing device 130. Example conversion processes include inputting keyboard codes that mimic key strokes entered by a cashier or merchant system operator into the keyboard of the merchant computing device 130.
[0054] In block 205, the user computing device 110 is placed within a predefined distance of the reader computing device 120. In an example, placing the user computing device 110 within a predefined threshold distance of the reader computing device 120 includes a wireless "tap." Example predefined threshold distances include physical contact with the reader computing device 120 at an indicated location. In another example, the predefined threshold distance includes a distance of less than a few inches, for example less than 4 inches, from an indicated location on the reader computing device 120. The example wireless tap establishes a wireless communication channel 140 through which application protocol data unit ("APDU") commands and responses are exchanged. In an example, the user computing device 110 remains within the predefined distance of the reader computing device 120 during the exchange of APDU command-response pairs. Example APDU command-response pair structures are defined according to ISO standards.
[0055] In block 210, the reader computing device 120 transmits an APDU command to the user computing device 110 over the communication channel 140. An example APDU command includes a compatibility code.
[0056] In block 215, the user computing device 110 receives the APDU compatibility code command. In an example, the user computing device 110 receives the APDU compatibility command and an application 113 operating on the user computing device 110 processes the APDU compatibility command to determine whether the devices (110 and 120) are compatible. In another example, a processor built into the operating system of the user computing device 110 processes the APDU compatibility command and prepares an APDU compatibility response.
[0057] In block 220, the user computing device 110 transmits the APDU compatibility response to the reader computing device 120. In an example, the APDU compatibility command-response pair confirms that the user computing device 110 is able to communicate with the reader computing device 120. In an example, the user computing device 110 transmits the APDU compatibility response to the reader computing device 120 over the communication channel 140 while tapping the user computing device 110.
[0058] In block 225, the reader computing device 120 receives the APDU compatibility response. In an example, the APDU compatibility response confirms that the user computing device 110 is able to communicate with the reader computing device 120.
[0059] In block 230, the reader computing device 120 transmits an APDU identifier command to the user computing device 110. An example APDU identifier command includes an identifier code corresponding to the merchant system, the merchant computing device 130, or other identifier that can be used by the user computing device 110 to identify information corresponding to the merchant.
[0060] In block 235, the user computing device 110 receives the APDU identifier command and routes the command to the core operating system. In an example, a host card emulation ("HCE") is built into the operating system of the user computing device 110 to allow the user computing device 110 to securely process and communicate data without using a secure element. In another example, the user computing device 110 routes the APDU identifier command to a secure element, the application 113, or other secure hardware to allow the user computing device 110 to process data and communicate data with the reader computing device 120.
[0061] In block 240, the user computing device 110 identifies loyalty information, offers, coupons, gift card account information, or other information related to the merchant corresponding to the identifier included in the APDU identifier command. For example, the APDU identifier command includes an identifier for merchant X. In this example, the user computing device 110 retrieves a loyalty account identifier for merchant X, three offers that can be redeemed at merchant X, merchant X gift card account information, and a password or PIN information for a merchant X gift card.
[0062] In another example, the APDU identifier command directs the user computing device 110 to identify one or more data sets to use in a purchase transaction. In yet another example, the APDU identifier command directs the user computing device 110 to identify one or more data sets to use in an offer redemption or loyalty transaction.
[0063] In an example, the user computing device 110 prepares an APDU identifier response including the identified information. An example APDU identifier response includes loyalty information, offers, gift card account information, or other merchant-related information corresponding to the identifier included in the APDU identifier command.
[0064] Continuing the preceding example, the APDU identifier response includes a loyalty account identifier for merchant X, three offers that can be redeemed at merchant X, merchant X gift card account information, and merchant X gift card password or PIN information.
[0065] In block 245, the user computing device 110 transmits the APDU identifier response to the reader computing device 120. In an example, the APDU identifier response is transmitted to the reader computing device 120 via the communication channel 140 while the user computing device 110 is tapped.
[0066] In block 250, the reader computing device 120 receives the APDU identifier response. In an example, the exchange of the APDU identifier response completes the data exchange between the reader computing device 120 and the user computing device 110. In an example, the reader computing device 120 will display an indicator to signal completion of the exchange, e.g., a green light. In another example, the user computing device 110 will display an indicator to signal completion of the data exchange. In an example, the user computing device 110 can be removed from a predefined threshold distance of the reader computing device 120 after the data exchange is completed.
[0067] In block 260, the reader computing device 120 begins processing the APDU identifier response by parsing the received data to identify one or more data sets. In an example, each data set corresponds to a different loyalty account identifier, offer identifier, gift card account identifier, gift card account password or PIN, or other transaction-related information.
[0068] In block 270, the reader computing device 120 identifies one or more data sets. In an example, the reader computing device 120 identifies the data sets by evaluating the way the data is formatted. For example, the reader computing device 120 identifies a fixed value, a predefined prefix, a repeating value, a predefined data value length, or other indicators that signal the beginning or end of a data set.
[0069] In block 275, the reader computing device 120 extracts each identified data set. In an example, each extracted data set includes a different loyalty account identifier, offer identifier, gift card account identifier, gift card account password or PIN, or other transaction-related information set.
[0070] In block 280, the reader computing device 120 edits the extracted data set. The method for editing the extracted APDU identifier response data set is described in more detail below with reference to the method described in Figure 3 In block 280, the reader computing device 120 edits the extracted data set. The method for editing the extracted APDU identifier response data set is described in more detail below with reference to the method described in
[0071] Figure 3 is a block flow diagram describing a method 280 for processing APDU identifier response data according to certain examples, as referenced in block 280. The method 280 is described with reference to the components shown in Figure 1
[0072] In block 305, the reader computing device 120 reviews the first extracted data set and determines whether the first extracted data set includes loyalty account information. In examples, the reader computing device 120 determines whether the first extracted data set includes loyalty account information by determining whether the data set includes a predefined amount or list of numbers.
[0073] If the first data set includes loyalty account information, the method 280 proceeds to block 310. In block 310, the reader computing device 120 determines the keyboard code required by the merchant computing device 130 to process the loyalty account information. In examples, the merchant computing device 130 requires one or more keyboard keystrokes to be entered to identify the data as loyalty account information. For example, during the normal entry of the loyalty account information directly into the merchant computing device 130, the cashier or merchant operator is required to press a key or button on the merchant computing device 130 that adds a specific prefix before the loyalty account information. Once the cashier or merchant operator presses the key or button, the merchant computing device 130 identifies the scanned bar code or entered input after the key or button is pressed as corresponding to a loyalty account.
[0074] In block 320, the reader computing device 120 mimics the input of the keystrokes (e.g., the cashier's or merchant's presses of keys or buttons) by editing the data set to include the required prefix before the loyalty account information. For example, the reader computing device 120 identifies the loyalty account identifier 1234567890 and extracts the data set 1234567890. Continuing with this example, the reader computing device 120 enters the keystrokes LYL before the loyalty account identifier 1234567890. In this example, the edited loyalty account identifier becomes LYL1234567890. Entering the LYL keystrokes before the loyalty account identifier signals to the merchant computing device 130 that the data following the LYL prefix is the loyalty account identifier.
[0075] In block 325, the merchant computing device 130 requires the specified keystrokes to signal completion of the data set. For example, after the loyalty account information is entered directly into the merchant computing device 130 as normal, the cashier or merchant operator is required to press a key or button on the merchant computing device 130 to signal completion of the entry of the loyalty account information. Once the cashier or merchant operator presses the key or button, the merchant computing device 130 will have entered the complete loyalty account information. In an example, the reader computing device 120 mimics the input of the keystrokes (e.g., the cashier's or merchant's presses of keys or buttons) by entering the keystrokes after the edited loyalty account information.
[0076] In an example, the required key or button includes a hard return. Continuing with the previous example, the reader computing device 120 edits the loyalty account information LYL1234567890 to include [ENTER]. In this example, the edited loyalty account identifier becomes LYL1234567890[ENTER].
[0077] In another example, the required key or button includes a suffix value, such as " / r", a carriage return, a hard return, or a semicolon. Continuing with the previous example, the reader computing device 120 edits the loyalty account information LYL1234567890 to include a semicolon. In this example, the edited loyalty account identifier becomes LYL1234567890;.
[0078] If the first data set does not include the loyalty account information, the method 280 proceeds to block 330. In other examples, the reader computing device 120 extracts more than one data set. In this example, the reader computing device 120 identifies a second type of data set that is extracted.
[0079] In block 330, the reader computing device 120 reviews the extracted data set and determines whether the extracted data set includes offer information. In an example, the reader computing device 120 determines whether the extracted data set includes offer information by determining whether the data set includes a predefined prefix or a predefined list of amounts or numbers.
[0080] If the data set includes offer information, the method 280 proceeds to block 340. In block 340, the reader computing device 120 determines the keyboard code required by the merchant computing device 130 to process the offer information. In an example, the merchant computing device 130 requires one or more keyboard keystrokes to be entered to recognize the data as offer information. For example, during normal entry of the offer information directly into the merchant computing device 130, the cashier or merchant operator is required to press a key or button on the merchant computing device 130 that adds a specific prefix before each offer. Once the cashier or merchant operator presses the key or button, the merchant computing device 130 recognizes the scanned barcode or entered input after the key or button is pressed as corresponding to an offer.
[0081] In block 345, the reader computing device 120 emulates the entry of the keyboard keystrokes (e.g., the pressing of the key or button by the cashier or merchant operator) by editing the data set to include the required prefix before the offer. For example, the reader computing device 120 identifies the offer AABBCC and extracts the data set AABBCC. Continuing with this example, the reader computing device 120 will enter the keyboard keystroke OFF before the offer AABBCC. In this example, the edited offer becomes OFFAABBCC. The entry of the OFF keyboard keystroke before the offer signals to the merchant computing device 130 that the data after the OFF prefix is an offer.
[0082] In block 350, the merchant computing device 130 requires a specified keyboard keystroke to signal completion of the data set. For example, after normal entry of the offer directly into the merchant computing device 130, the cashier or merchant operator is required to press a key or button on the merchant computing device 130 to signal completion of the entry of the offer. Once the cashier or merchant operator presses the key or button, the merchant computing device 130 will have entered the complete offer. In an example, the reader computing device 120 emulates the entry of the keyboard keystrokes (e.g., the pressing of the key or button by the cashier or merchant operator) by entering the keyboard keystroke after the edited offer information. In an example, the required key or button includes a hard carriage return. Continuing with the previous example, the reader computing device 120 edits the offer OFFAABBCC to include [ENTER]. In this example, the edited loyalty account identifier becomes OFFAABBCC [ENTER].
[0083] In an example, the reader computing device 120 identifies more than one offer. In this example, the reader computing device 120 edits each offer. For example, the reader computing device 120 identifies the offer AAXXZZ and extracts the data set AAXXZZ. Continuing with this example, the reader computing device 120 enters the keyboard keystroke OFF before the offer AAXXZZ. In this example, the edited offer becomes OFFAAXXZZ. The reader computing device 120 edits the offer OFFAAXXZZ to include [ENTER]. In this example, the edited offer becomes OFFAAXXZZ [ENTER].
[0084] If the data set does not include an offer, the method 280 proceeds to block 360. In other examples, the reader computing device 120 extracts more than one data set. In this example, the reader computing device 120 identifies a second or third type of data set extracted.
[0085] In block 360, the reader computing device 120 identifies a third type of data set extracted. In an example, the reader computing device 120 examines the extracted data set and determines whether the extracted data set includes gift card information. In an example, the reader computing device 120 determines whether the extracted data set includes gift card information by determining whether the data set includes a predefined prefix or a predefined list of numbers or digits.
[0086] If the data set includes gift card information, the method 280 proceeds to block 370. In block 370, the reader computing device 120 determines the keyboard code required by the merchant computing device 130 to process the gift card information. In an example, the merchant computing device 130 requires one or more keyboard keystrokes to be entered to identify the data as a gift card account number and a gift card PIN. For example, during the normal entry of gift card information into the merchant computing device 130, the cashier or merchant operator is required to press a key or button on the merchant computing device that adds a specific prefix before the gift card account information. Once the cashier or merchant operator presses the key or button, the merchant computing device 130 identifies the scanned barcode or keyed entry after the key or button is pressed as corresponding to the gift card account information.
[0087] In block 375, the reader computing device 120 mimics the input of the keyboard keystrokes (e.g., the cashier or merchant operator’s presses of the keys or buttons) by prefixing the data set with the prefix required before the information. For example, the reader computing device 120 recognizes the gift card account identifier as 11110987654321 and extracts the data set 11110987654321. Continuing with this example, the reader computing device 120 enters the keyboard keystroke PAY before the gift card account identifier 11110987654321. In this example, the edited gift card account identifier is PAY 11110987654321. Entering the PAY keyboard keystroke before the gift card account identifier signals to the merchant computing device 130 that the data following the PAY prefix is a payment option.
[0088] In another example, during the normal entry of the PIN information directly to the merchant computing device 130, the cashier, user, or merchant operator is asked to press a key or button on the merchant computing device 130 that adds a specific prefix before the gift card PIN information. Once the cashier or merchant operator presses the key or button, the merchant computing device 130 recognizes the input entered after the key or button is pressed as corresponding to the gift card account PIN. In an example, the reader computing device 120 mimics the input of the keyboard keystrokes (e.g., the cashier or merchant operator’s presses of the keys or buttons) by prefixing the data set with the required prefix before the information.
[0089] For example, the reader computing device 120 recognizes the gift card account PIN as 5678 and extracts the data set 5678. Continuing with this example, the reader computing device 120 enters the keyboard keystroke PIN before the gift card account PIN 5678. In this example, the edited gift card account identifier becomes PIN 5678. Entering the PIN keyboard keystroke before the gift card account PIN signals to the merchant computing device 130 that the data following the PIN prefix is a payment account PIN.
[0090] In block 380, the merchant computing device 130 requires a specified keyboard keystroke to signal completion of the data set. For example, after the payment option is normally entered directly into the merchant computing device 130, the cashier, user, or merchant operator is required to press a key or button on the merchant computing device to signal completion of the offer entry. Once the cashier, user, or merchant operator presses the key or button, the merchant computing device 130 will have entered the complete payment information. In the example, the reader computing device 120 emulates the entry of the keyboard keystroke (e.g., the pressing of the key or button by the cashier or merchant operator) by entering the keyboard keystroke after the edited gift card information. In the example, the required key or button includes a hard carriage return. Continuing the previous example, the reader computing device 120 edits the gift card information PAY 1 1 1 1 0 9 8 7 6 5 4 3 2 1 PIN 5 6 7 8 to include [ENTER]. In this example, the edited gift card identifier becomes PAY 1 1 1 1 0 9 8 7 6 5 4 3 2 1 PIN 5 6 7 8 [ENTER].
[0091] If the data set does not include a gift card, the method 280 proceeds to block 290 in Figure 2 .
[0092] Returning to Figure 2 , in block 290, the reader computing device 120 prepares a transmission to the merchant computing device 130 that includes the list of edited identifier response data sets. In this example, the transmission includes the different loyalty account identifier, the offer identifier, the gift card account identifier, the gift card account password or PIN, and / or other transaction-related information sets identified from the APDU identifier response and edited to include the keyboard emulation keystroke so that the data sets can be recognized by the merchant computing device 130. Continuing the previous example, the transmission includes:
[0093] LYL 1 2 3 4 5 6 7 8 9 0 [ENTER]
[0094] OFF A A B B C C [ENTER]
[0095] OFF A A X X Z Z [ENTER]
[0096] PAY 1 1 1 1 0 9 8 7 6 5 4 3 2 1 PIN 5 6 7 8 [ENTER]
[0097] In this example, the "[ENTER]" indicates a hard carriage return entry on the merchant computing device 130. In the example, the reader computing device 120 is communicatively coupled to the merchant computing device 130 and transmits the list of edited identifier response data sets to the merchant computing device 130 over a wired or wireless communication channel.
[0098] In an example, the merchant computing device 130 understands the emulated keyboard keystrokes and can process the data sets without requiring the cashier, user, or merchant operator to enter additional buttons or keys. Continuing the previous example, the merchant computing device 130 recognizes that the transmitted data includes a loyalty account identifier, two offers, and a gift card with a PIN.
[0099] In other examples, the merchant computing device 130 does not recognize each data set. For example, the reader computing device 120 transmits a loyalty account identifier, a first offer code, a second offer code, and a gift card code with a PIN. In this example, the merchant computing device 130 recognizes the first loyalty account identifier and the first offer code, but does not recognize the second offer code. In this example, the merchant computing device 130 continues by entering the keyboard emulation for the gift card code with a PIN and recognizes the gift card code with a PIN.
[0100] Other Examples
[0101] Figure 4 A computer machine 2000 and modules 2050 in accordance with certain examples are depicted. The computer machine 2000 can correspond to any of the various computers, servers, mobile devices, embedded systems, or computing systems given. The modules 2050 can include one or more hardware or software elements configured to facilitate the computer machine 2000 performing the various methods and processing functions presented herein. The computer machine 2000 can include various internal or attached components such as a processor 2010, system bus 2020, system memory 2030, storage media 2040, input / output interface 2060, and a network interface 2070 for communicating with a network 2080.
[0102] The computer machine 2000 can be implemented as a conventional computer system, an embedded controller, a laptop, a server, a mobile device, a smart phone, a set-top box, a kiosk, a router or other network node, a vehicle information system, one or more processors associated with a television, a customized machine, any other hardware platform, or any combination or multiplicity thereof. The computer machine 2000 can be a distributed system configured to function using multiple computer machines interconnected via a data network or bus system.
[0103] The processor 2010 can be configured to execute code or instructions to perform the operations and functionality described herein, manage requests to resources, and perform calculations and generate commands. The processor 2010 can be configured to monitor and control the operation of the components of the computing machine 2000. The processor 2010 can be a general-purpose processor, a processor core, a multiprocessor, a reconfigurable processor, a microcontroller, a digital signal processor (“DSP”), an application-specific integrated circuit (“ASIC”), a graphics processing unit (“GPU”), a field-programmable gate array (“FPGA”), a programmable logic device (“PLD”), a controller, a state machine, gated logic, discrete hardware components, any other processing unit, or any combination or variety of
[0104] The system memory 2030 can include non-volatile memory, such as read-only memory (“ROM”), programmable read-only memory (“PROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), or any other device capable of storing program instructions or data in a non-volatile memory without applying a power. The system memory 2030 can also include volatile memory, such as random access memory (“RAM”), static random access memory (“SRAM”), dynamic random access memory (“DRAM”), and synchronous dynamic random access memory (“SDRAM”). Other types of RAM can be used in implementing the system memory 2030. The system memory 2030 can be implemented using a single memory module or multiple memory modules. While the system memory 2030 is depicted as being a part of the computing machine 2000, those skilled in the art will recognize that the system memory 2030 can be separate from the computing machine 2000 without departing from the scope of the technology. It will also be appreciated that the system memory 2030 can include or operate in conjunction with a non-volatile storage device, such as the storage media 2040.
[0105] The storage media 2040 can include a hard disk, a floppy disk, a Compact Disc Read Only Memory ("CD-ROM"), a Digital Versatile Disc ("DVD"), a Blu-ray disc, a magnetic tape, a flash memory, other non-volatile memory device, a Solid State Drive ("SSD"), any magnetic storage device, any optical storage device, any electrical storage device, any semiconductor storage device, any physical-based storage device, any other data storage device, or any combination or multiplicity thereof. The storage media 2040 can store one or more operating systems, application programs and program modules, such as the modules 2050, data, or any other information. The storage media 2040 can be part of, or connected to, the computing machine 2000. The storage media 2040 can also be part of one or more other computing machines (such as a server, a database server, a cloud storage device, a network attached storage device, etc.) that is in communication with the computing machine 2000.
[0106] The modules 2050 can include one or more hardware or software elements configured to facilitate the computing machine 2000 to perform various methods and processing functions outlined herein. The modules 2050 can include one or more instruction sequences
[0107] Input / output ("I / O") interface 2060 can be configured to couple to one or more external devices, to receive data from the one or more external devices, and to send data to the one or more external devices. Such external devices can also be known as peripheral devices. I / O interface 2060 can include both electrical and physical connections for operably coupling the various peripheral devices to computer 2000 or processor 2010. I / O interface 2060 can be configured to transmit and receive data, addresses, and control signals among the peripheral devices, computer 2000, or processor 2010. I / O interface 2060 can be configured to implement any standard interface, such as small computer system interface ("SCSI"), serial-attached SCSI ("SAS"), Fibre Channel, peripheral component interconnect ("PCI"), PCI Express (PCIe), serial bus, parallel bus, advanced technology attached ("ATA"), serial ATA ("SATA"), universal serial bus ("USB"), Thunderbolt, FireWire, various video buses, etc. I / O interface 2060 can be configured to implement only one interface or bus technology. Alternatively, I / O interface 2060 can be configured to implement multiple interface or bus technologies. I / O interface 2060 can be configured as, fully or partially, a part of system bus 2020, operate in conjunction with system bus 2020, or operate independently of system bus 2020. I / O interface 2060 can include one or more buffers for buffering transmissions between one or more external devices, internal devices, computer 2000, or processor 2010.
[0108] I / O interface 2060 can couple computer 2000 to various input devices including a mouse, touchscreen, scanner, electronic digitizer, sensor, receiver, touchpad, trackball, camera, microphone, keyboard, any other pointing device, or any combination thereof. I / O interface 2060 can couple computer 2000 to various output devices including a video display, speakers, printer, projector, tactile feedback device, automation control, robotic component, actuator, motor, fan, solenoid, valve, pump, transducer, signal emitter, light, etc.
[0109] The computing machine 2000 can operate in a networked environment using logical connections to one or more other systems or computing machines across a network 2080 through a network interface 2070. The network 2080 can include wide area networks (WAN), local area networks (LAN), intranets, the Internet, wireless access networks, wired networks, mobile networks, telephone networks, optical networks, or combinations thereof. The network 2080 can be packet switched, circuit switched, of any topology, and can use any communication protocol. Communication links within the network 2080 can involve various digital or an analog communication media, such as fiber optic cables, free-space optics, waveguides, electrical conductors, wireless links, antennas, radio-frequency communications, and so forth.
[0110] The processor 2010 can be connected to the other elements of the computing machine 2000 or various peripheral devices discussed herein through a system bus 2020. It will be appreciated that the system bus 2020 can be within, outside, or both the processor 2010. According to certain examples, any of the processor 2010, other elements of the computing machine 2000, or various peripheral devices discussed herein can be integrated into a single device, such as a system on a chip (“SOC”), system on a package (“SOP”), or ASIC device.
[0111] In situations in which the systems discussed here collect personal information about users, or can make use of personal information, users can be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user’s social network, social actions or activities, profession, a user’s preferences, or a user’s current location), or to control whether and / or how to receive content from the content server that can be more relevant to the user. In addition, certain data can be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user’s identity can be treated so that no personally identifiable information can be determined for the user, or a user’s geographic location can be generalized where location information is obtained (such as to a city, postal code, or state level), so that a particular location of a user cannot be determined. Therefore, users can have control over how information is collected about them and used by a content server.
[0112] Examples may include computer programs that embody the functions described and illustrated herein, wherein the computer programs are implemented in a computer system comprising instructions stored in a machine-readable medium and a processor that executes the instructions. However, it should be apparent that there are many different ways to implement examples in computer programming, and these examples should not be interpreted as being limited to any one computer program instruction set. In addition, a skilled programmer will be able to write such computer programs based on the accompanying flow charts and related descriptions in the application text to implement examples of the disclosed examples. Therefore, the disclosure of a specific program code instruction set is not considered necessary to fully understand how to make and use the examples. In addition, those skilled in the art will recognize that one or more aspects of the examples described herein can be performed by hardware, software, or a combination thereof, as can be implemented in one or more computing systems. Moreover, any reference to an action performed by a computer should not be interpreted as being performed by a single computer, as more than one computer can perform the action.
[0113] The examples described herein can be used with computer hardware and software that perform the methods and processing functions described herein. The systems, methods, and processes described herein can be implemented in a programmable computer, computer-executable software, or digital circuitry. The software can be stored on a computer-readable medium. For example, a computer-readable medium can include a floppy disk, RAM, ROM, hard disk, removable media, flash memory, memory stick, optical media, magneto-optical media, CD-ROM, etc. The digital circuitry can include integrated circuits, gate arrays, building block logic, field programmable gate arrays (FPGAs), etc.
[0114] The example systems, methods, and actions described in the examples previously given are illustrative, and in alternative examples, certain actions may be performed in a different order, in parallel with each other, omitted entirely, and / or combined between different examples, and / or certain additional actions may be performed without departing from the scope and spirit of the various examples. Accordingly, such alternative examples are included within the scope of the appended claims, the scope of which should be accorded the broadest interpretation to encompass such alternative examples.
[0115] Although specific examples have been described in detail above, this description is for illustrative purposes only. Therefore, it should be recognized that many of the above aspects are not intended to be required or essential elements unless otherwise expressly stated. In addition to the above aspects, without departing from the spirit and scope of the examples defined in the following claims, those of ordinary skill in the art who have the benefit of this disclosure may also modify the disclosed aspects of the examples and equivalent components or actions corresponding to the disclosed aspects of the examples, and the scope of this disclosure is to be interpreted in the broadest possible manner to cover such modifications and equivalent structures.
Claims
1. A computer-implemented method for simulating keyboard input, comprising: transmitting, by the computing device, the identifier to the mobile computing device; receiving, by the computing device and from the mobile computing device, a response comprising two or more data sets corresponding to the identifier; identifying, by the computing device, a first data set identifier in the response, the first data set identifier signaling a start of a first data set; editing, by the computing device, the first data set to include: (1) a first keyboard keystroke input prefix understood by a second computing device as defining the first data set as data of a first specific type, and (2) a keyboard keystroke input suffix understood by the second computing device as defining an end of the first data set; identifying, by the computing device, a second data set identifier in the response, the second data set identifier signaling the beginning of a second data set; editing, by the computing device, the second data set to include: (1) a second keyboard keystroke input prefix understood by the second computing device to define the second data set as data of a second specific type, and (2) a keyboard keystroke input suffix understood by the second computing device to define an end of the second data set; and An edited first data set and an edited second data set are transmitted by the computing device to the second computing device, wherein the second computing device (1) processes the first data set based on the first keyboard keystroke input prefix, (2) identifies the end of the first data set based on the keyboard keystroke input suffix, (3) processes the second data set based on the second keyboard keystroke input prefix, and (4) identifies the end of the second data set based on the keyboard keystroke input suffix. 2 . The computer-implemented method of claim 1 , further comprising extracting, by the computing device, the first data set from the response. 3 . The computer-implemented method of claim 1 , further comprising extracting, by the computing device, the second data set from the response.
4. The computer-implemented method of claim 1 , further comprising: identifying, by the computing device, a third data set identifier in the response, the third data set identifier signaling the beginning of a third data set; as well as The third data set is edited by the computing device to include: (1) a third keyboard keystroke input prefix understood by the second computing device to define the third data set as a second specific type of data, and (2) a keyboard keystroke input suffix understood by the second computing device to define the end of the third data set. 5 . The computer-implemented method of claim 4 , wherein transmitting the edited first data set and the edited second data set to the second computing device further comprises transmitting an edited third data set.
6. A computer-implemented method as described in claim 5, wherein the second computing device (5) processes the third data set based on the third keyboard keystroke input prefix, and (6) identifies the end of the third data set based on the keyboard keystroke input suffix.
7. The computer-implemented method of claim 1 , further comprising establishing a wireless communication channel between the computing device and the mobile computing device, wherein the identifier is transmitted to the mobile computing device, and the response is received from the mobile computing device over the established wireless computing channel.
8. A system for simulating keyboard input, comprising: Storage devices; as well as a processor communicatively coupled to the memory device, wherein the processor executes application code instructions stored in the memory device to cause the system to: transmitting the identifier to the mobile computing device; receiving a response from the mobile computing device including two or more data sets corresponding to the identifier; identifying a first data set identifier in the response, the first data set identifier signaling a start of a first data set; editing the first data set to include: (1) a first keyboard keystroke input prefix understood by a second computing device to define the first data set as a first specific type of data, and (2) a keyboard keystroke input suffix understood by the second computing device to define an end of the first data set; identifying a second data set identifier in the response, the second data set identifier signaling a start of a second data set; editing the second data set to include: (1) a second keyboard keystroke prefix understood by the second computing device to define the second data set as a second specific type of data, and (2) a keyboard keystroke suffix understood by the second computing device to define the end of the second data set; and transmitting an edited first data set and an edited second data set to a second computing device, wherein the second computing device (1) processes the first data set based on the first keyboard keystroke input prefix, (2) identifies the end of the first data set based on the keyboard keystroke input suffix, (3) processes the second data set based on the second keyboard keystroke input prefix, and (4) identifies the end of the second data set based on the keyboard keystroke input suffix.
9. The system of claim 8, wherein the processor is further configured to execute application code instructions stored in the storage device to cause the system to extract the first data set from the response.
10. The system of claim 8, wherein the processor is further configured to execute application code instructions stored in the storage device to cause the system to extract the second data set from the response.
11. The system of claim 8, wherein the processor is further configured to execute application code instructions stored in the storage device to cause the system to: identifying a third data set identifier in the response, the third data set identifier signaling the start of a third data set; and The third data set is edited to include: (1) a third keyboard keystroke prefix understood by the second computing device as defining the third data set as a second specific type of data, and (2) a keyboard keystroke suffix understood by the second computing device as defining the end of the third data set. 12 . The system of claim 11 , wherein transmitting the edited first data set and the edited second data set to the second computing device further comprises transmitting an edited third data set.
13. The system of claim 12, wherein the second computing device (5) processes the third data set based on the third keyboard keystroke input prefix, and (6) identifies the end of the third data set based on the keyboard keystroke input suffix.
14. A non-transitory computer-readable storage medium having computer-executable program instructions stored thereon, wherein the computer-executable program instructions, when executed by a computer, cause the computer to simulate keyboard input, the computer-readable program instructions comprising: computer-readable program instructions for transmitting an identifier to a mobile computing device; computer-readable program instructions for receiving a response from the mobile computing device comprising two or more data sets corresponding to the identifier; computer-readable program instructions for identifying a first data set identifier in the response, the first data set identifier signaling the beginning of a first data set; Computer-readable program instructions for editing the first data set to include: (1) a first keyboard keystroke input prefix understood by a second computing device as defining the first data set as a first specific type of data, and (2) a keyboard keystroke input suffix understood by the second computing device as defining the end of the first data set; computer-readable program instructions for identifying a second data set identifier in the response, the second data set identifier signaling the beginning of a second data set; Computer-readable program instructions for editing the second data set to include: (1) a second keyboard keystroke input prefix understood by the second computing device as defining the second data set as a second specific type of data, and (2) a keyboard keystroke input suffix understood by the second computing device as defining the end of the second data set; and Computer-readable program instructions for transmitting the edited first data set and the edited second data set to the second computing device, wherein the second computing device (1) processes the first data set based on the first keyboard keystroke input prefix, (2) identifies the end of the first data set based on the keyboard keystroke input suffix, (3) processes the second data set based on the second keyboard keystroke input prefix, and (4) identifies the end of the second data set based on the keyboard keystroke input suffix.
15. The non-transitory computer-readable storage medium of claim 14, further comprising computer-readable program instructions for extracting the first data set from the response.
16. The non-transitory computer-readable storage medium of claim 14, further comprising computer-readable program instructions for extracting the second data set from the response.
17. The non-transitory computer-readable storage medium of claim 14, further comprising: computer-readable program instructions for identifying a third data set identifier in the response, the third data set identifier signaling the beginning of a third data set; as well as Computer-readable program instructions for editing the third data set to include: (1) a third keyboard keystroke input prefix understood by the second computing device to define the third data set as a second specific type of data, and (2) a keyboard keystroke input suffix understood by the second computing device to define the end of the third data set. 18 . The non-transitory computer-readable storage medium of claim 17 , wherein transmitting the edited first data set and the edited second data set to the second computing device further comprises transmitting an edited third data set.
19. The non-transitory computer-readable storage medium of claim 18, wherein the second computing device (5) processes the third data set based on the third keyboard keystroke input prefix, and (6) identifies the end of the third data set based on the keyboard keystroke input suffix.
20. The non-transitory computer-readable storage medium of claim 14, further comprising computer-readable program instructions for establishing a wireless communication channel between the computing device and the mobile computing device, wherein The identifier is transmitted to the mobile computing device, and the response is received from the mobile computing device over the established wireless computing channel.
Citation Information
Patent Citations
Lottery printing method for carrying out automatic detection during issuing the lottery
CN102729661A
Auxiliary system, device and method of note printing
CN103116481A
Data input method, apparatus, and system
CN104933547A
Electronic invoice title information processing method, invoicing client, and correlative equipment
CN106504042A
Merchant-specific functionality services
US20170017940A1