SYSTEMS AND METHODS FOR NETWORK CONFIGURATIONS OF PIN PADS
20220147964 · 2022-05-12
Inventors
Cpc classification
G06Q20/206
PHYSICS
International classification
Abstract
A method of network configuration of personal identification number (PIN) pads includes obtaining a PIN pad configuration hash value for a current configuration of the PIN pad, comparing the obtained PIN pad configuration hash to a locally stored PIN pad configuration hash, upon determining that the obtained PIN pad configuration hash and the locally stored PIN pad configuration hash do not match, performing additional operations, which include requesting a new PIN pad configuration, receiving the new PIN pad configuration, receiving a new PIN pad configuration hash, and storing the PIN pad configuration hash.
Claims
1-20. (canceled)
21. A method of network configuration of personal identification number (PIN) pads, the method comprising: generating, using a hardware processor, a current PIN pad configuration hash of one or more of a merchant connection configuration setting and an authentication configuration setting; comparing, using the hardware processor, the current PIN pad configuration hash to a locally stored PIN pad configuration hash; upon determining that the current PIN pad configuration hash and the locally stored PIN pad configuration hash do not match, performing additional operations, comprising: receiving a new PIN pad configuration; and storing a PIN pad configuration hash for the received new PIN pad configuration.
22. The method of claim 21, further comprising: setting the state of the PIN pad as ready.
23. The method of claim 21, further comprising: upon determining that the current PIN pad configuration hash and the locally stored PIN pad configuration hash match, setting a state of the PIN pad as ready.
24. The method of claim 21, further comprising: configuring the PIN pad according to the received new PIN pad configuration.
25. The method of claim 21, wherein the new PIN pad configuration is received from a configuration service.
26. The method of claim 21, wherein the PIN pad configuration hash value for a current configuration of the PIN pad is obtained from a configuration service.
27. A method of network configuration of personal identification number (PIN) pads, the method comprising: upon receiving a request for a new PIN pad configuration of configuration settings controlling operation of the PIN pad from the PIN pad, comprising: generating, using at least one hardware processor, the new PIN pad configuration for the PIN pad; transmitting the new PIN pad configuration to the PIN pad; and generating a new hash of the new PIN pad configuration the current PIN pad configuration hash; and upon receiving a request for an initial configuration from the PIN pad, performing additional operations, comprising: generating a PIN pad configuration; setting PIN pad registration information in a database; generating a hash of the generated PIN pad configuration as the current PIN pad configuration hash; and storing the current PIN pad configuration hash in the database.
28. The method of claim 27, further comprising: upon receiving, from the PIN pad, a notification that the PIN pad is ready, setting a state of the PIN pad as ready.
29. The method of claim 27, further comprising: upon receiving the request for an initial configuration from the PIN pad, performing additional operations, comprising: transmitting the PIN pad configuration to the PIN pad; transmitting the current PIN pad configuration hash to the PIN pad; and setting a current state of the PIN pad as ready.
30. The method of claim 29, wherein the PIN pad registration information is stored in a PIN pad database by a PIN pad registry.
31. The method of claim 27, wherein the new PIN pad configuration and the current PIN pad configuration hash are transmitted to the PIN pad by way of a PIN pad actor.
32. The method of claim 27, wherein the new hash of the generated PIN pad configuration is generated by applying a hash function to a configuration file associated with the new PIN pad configuration.
33. A computer system for network configuration of personal identification number (PIN) pads, the system comprising: a PIN pad, comprising a first hardware processor, configured to: upon determining that a current PIN pad configuration hash and a locally stored PIN pad configuration hash do not match, perform additional operations, comprising: receive a new PIN pad configuration; store a PIN pad configuration hash for the received new PIN pad configuration; and a configuration service, comprising a second hardware processor, configured to: set PIN pad registration information in a database; generate, using the second hardware processor, the new PIN pad configuration for the PIN pad; transmit the new PIN pad configuration to the PIN pad; generate a new hash of the generated PIN pad configuration as the current PIN pad configuration hash; and store the current PIN pad configuration hash in the database.
34. The computer system of claim 33, wherein the PIN pad is further configured to: upon determining that the current PIN pad configuration hash and the locally stored PIN pad configuration hash match, set a state of the PIN pad as ready.
35. The computer system of claim 33, wherein the PIN pad is further configured to: configure the PIN pad according to the received new PIN pad configuration.
36. The computer system of claim 33, wherein the configuration service is further configured to: upon receiving, from the PIN pad, a notification that the PIN pad is ready, set a state of the PIN pad as ready.
37. The computer system of claim 33, wherein the configuration service is further configured to: upon receiving a request for an initial configuration from the PIN pad, perform additional operations, comprising: generate a PIN pad configuration; transmit the PIN pad configuration to the PIN pad; generate a hash of the generated PIN pad configuration as a current PIN pad configuration hash; transmit the current PIN pad configuration hash to the PIN pad; and set a current state of the PIN pad as ready.
38. The computer system of claim 37, wherein the PIN pad registration information is stored in a PIN pad database by a PIN pad registry.
39. The computer system of claim 33, wherein the new PIN pad configuration and the current PIN pad configuration hash are transmitted to the PIN pad by way of a PIN pad actor.
40. The computer system of claim 33, wherein the new hash of the generated PIN pad configuration is generated by applying a hash function to a configuration file associated with the new PIN pad configuration.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various exemplary embodiments and together with the description, serve to explain the principles of the disclosed embodiments.
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
DETAILED DESCRIPTION OF EMBODIMENTS
[0017] Various embodiments of the present disclosure relate generally to electronic payment infrastructure and to managing the configuration of personal identification number (PIN) pad terminals associated with a merchant point of sale (POS) environment.
[0018] The terminology used below may be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the present disclosure. Indeed, certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.
[0019] Turning to
[0020] Merchant 110 may provide an infrastructure for processing electronic payment requests.
[0021] As shown in
[0022] According to one or more embodiments, the components of infrastructure 200 may be connected by a computer network 260, such as, for example a local area network (LAN) or a wireless network, such as, for example, a WiFi network. However, other network connections among the components of infrastructure 200 may be used, such as, for example, a wide area network (WAN), the internet, or the cloud. According to one or more embodiments, the components of infrastructure 200 may operate to maintain a configuration of PIN pads 114. Methods of configuring PIN pads 114 according to one or more embodiments will be discussed with respect to
[0023] Any suitable system infrastructure may be put into place for network configuration of PIN pads.
[0024] Aspects of the present disclosure may be embodied in a special purpose computer and/or data processor that is specifically programmed, configured, and/or constructed to perform one or more of the computer-executable instructions explained in detail herein. While aspects of the present disclosure, such as certain functions, are described as being performed exclusively on a single device, the present disclosure may also be practiced in distributed environments where functions or modules are shared among disparate processing devices, which are linked through a communications network, such as a Local Area Network (“LAN”), Wide Area Network (“WAN”), and/or the Internet. Similarly, techniques presented herein as involving multiple devices may be implemented in a single device. In a distributed computing environment, program modules may be located in both local and/or remote memory storage devices.
[0025] Aspects of the present disclosure may be stored and/or distributed on non-transitory computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media. Alternatively, computer implemented instructions, data structures, screen displays, and other data under aspects of the present disclosure may be distributed over the Internet and/or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time, and/or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme).
[0026]
[0027]
[0028] In initial configuration phase 470, at operation 402, the PIN pad may initiate a connection to the socket gateway. At operation 403, the socket gateway may request that the PIN pad to identify itself. Such identification may be accomplished, for example, by retrieving a model and serial number from the PIN pad by transmitting a command to the PIN pad. Alternatively, identification may be made on the basis of a pre-registered token or key, or any other suitable mechanism to identify the unique pieces of hardware in the PIN pad. Such identification of the PIN pad may allow a determination of whether the PIN pad is registered in the PIN pad registry, and therefore, what account/merchant the PIN pad is associated with. At operation 404, the PIN pad transmit a model number and a serial number of the PIN pad to the socket gateway. The socket gateway may then, at operation 406, request a new configuration from the configuration service. At operation 408, the configuration service may generate a configuration for the PIN pad. At operation 410, the configuration service may set PIN pad registration information at the PIN pad registry, and at operation 412, the PIN pad registry may send PIN pad information back to the configuration service. At operation 414, the configuration service may generate a new current configuration for the PIN pad and transmit the configuration to the PIN pad actor. The PIN pad actor may then, at operation 416, transmit the configuration to the PIN pad by way of the socket gateway (operation 418) so that the configuration may be applied to the PIN pad. At operation 420, the configuration service may generate an updated hash of the current PIN pad configuration. At operation 422, the configuration service may transmit the updated hash to PIN pad to the PIN pad actor. The PIN pad actor may then, at operation 424, transmit the updated hash to the PIN pad by way of the socket gateway (operation 426) so that the updated hash may be stored at the PIN pad. At operation 428, the configuration service set the status of the PIN pad as “ready.”
[0029] At some time after the initial configuration 470 has been completed, the PIN pad may go offline (operation 430) and, subsequently, may come back online (operation 432). After coming back online, the PIN pad may check its current configuration in the configuration checking phase 475. At operation 434, the PIN pad may request the hash of the current configuration from the configuration service by way of the socket gateway (operation 436). At operation 438, the configuration service may transmit the hash of the current configuration to the PIN pad by way of the socket gateway (operation 440). At operation 442, the PIN pad may compare a locally stored configuration hash to the received hash of the current configuration. Subsequent operations may be performed in the configuration recovery phase 480 or the configuration confirmation phase 485 depending on the result of the comparison.
[0030] If the locally stored configuration hash and the received hash of the current configuration do not match, then the PIN pad may enter the configuration recovery phase 480 at operation 444 by requesting a new configuration from the configuration service by way of the socket gateway (operation 446). At operation 448, the configuration service may generate a new current configuration for the PIN pad and, at operation 450, transmit the configuration to the PIN pad actor. The PIN pad actor may then, at operation 452, transmit the configuration to the PIN pad by way of the socket gateway (operation 454) so that the configuration may be applied to the PIN pad. At operation 456, the configuration service may generate an updated hash of the current PIN pad configuration. At operation 458, the configuration service may transmit the updated hash to PIN pad to the PIN pad actor. The PIN pad actor may then, at operation 460, transmit the updated hash to the PIN pad by way of the socket gateway (operation 462) so that the updated hash may be stored at the PIN pad. At operation 468, the configuration service set the status of the PIN pad as “ready.”
[0031] If the locally stored configuration hash and the received hash of the current configuration do match, then the PIN pad may enter the configuration confirmation phase 485 at operation 464, by notifying the configuration service by way of the socket gateway (operation 466) that the PIN pad is online. At operation 468, the configuration service set the status of the PIN pad as “ready.”
[0032]
[0033] At operation 517, the configuration service may receive a request for the current PIN pad configuration hash from the PIN pad. If a request for the current PIN pad configuration hash is not received from the PIN pad, then the method may continue with step 520. If a request for the current PIN pad configuration hash is received from the PIN pad, then at operation 518, the configuration service may transmit the current PIN pad configuration hash to the PIN pad.
[0034] At operation 520, the configuration service may receive a request for a new PIN pad configuration from the PIN pad. Alternatively, a request for a new PIN pad configuration may be inferred by the configuration service based on a new connection initiated by the PIN pad and a determination that the PIN pad configuration hash stored for the PIN pad does not match the current PIN pad configuration hash for the PIN pad. If a request for a new PIN pad configuration is not received from the PIN pad, then the method may continue with step 530. If a request for a new PIN pad configuration is received from the PIN pad, then at operation 522, the configuration service may generate a new PIN pad configuration. At operation 524, the configuration service may send the new PIN pad configuration to the PIN pad, possibly by way of the PIN pad actor and/or the socket gateway. At operation 526, the configuration service may generate a new hash of the new PIN pad configuration as the current PIN pad configuration hash. At operation 528, the configuration service may send the current PIN pad configuration hash to the PIN pad, possibly by way of the PIN pad actor and/or the socket gateway. Alternatively, the current PIN pad configuration hash may be stored in a memory, database or other storage provided by infrastructure 200 (not shown).
[0035] At operation 530, the configuration service may receive a notification that the PIN pad is ready from the PIN pad. Alternatively, the configuration service may infer that the PIN pad is ready based on a new connection initiated by the PIN pad. In addition, the Configuration Service may send the PIN pad a series of configuration commands. The PIN pad may respond to each command with an acknowledgement. The configuration service may infer that the PIN pad is ready when the last configuration command is acknowledged by the PIN pad. If a notification that the PIN pad is ready is not received from the PIN pad, then the method may end. If a notification that the PIN pad is ready is received from the PIN pad, then at operation 532, the configuration service may set a current status of the PIN pad as “ready.”
[0036] The systems and processes described above may be performed on or between one or more computing devices.
[0037] The computing device 600 includes a processor 602 that may be any suitable type of processing unit, for example a general-purpose central processing unit (CPU), a reduced instruction set computer (RISC), a processor that has a pipeline or multiple processing capability including having multiple cores, a complex instruction set computer (CISC), a digital signal processor (DSP), application specific integrated circuits (ASIC), a programmable logic devices (PLD), and a field programmable gate array (FPGA), among others. The computing resources may also include distributed computing devices, cloud computing resources, and virtual computing resources in general.
[0038] The computing device 600 also includes one or more memories 606, for example read-only memory (ROM), random access memory (RAM), cache memory associated with the processor 602, or other memory such as dynamic RAM (DRAM), static RAM (SRAM), programmable ROM (PROM), electrically erasable PROM (EEPROM), flash memory, a removable memory card or disc, a solid-state drive, and so forth. The computing device 600 also includes storage media such as a storage device that may be configured to have multiple modules, such as magnetic disk drives, floppy drives, tape drives, hard drives, optical drives and media, magneto-optical drives and media, compact disk drives, Compact Disc Read Only Memory (CD- ROM), compact disc recordable (CD-R), Compact Disk Rewritable (CD-RW), a suitable type of Digital Versatile Disc (DVD) or BluRay disc, and so forth. Storage media such as flash drives, solid-state hard drives, redundant array of individual discs (RAID), virtual drives, networked drives and other memory means including storage media on the processor 602, or memories 606 are also contemplated as storage devices. It may be appreciated that such memory may be internal or external with respect to operation of the disclosed embodiments. It may be appreciated that certain portions of the processes described herein may be performed using instructions stored on a computer readable medium or media that direct computer system to perform the process steps. Non-transitory computable-readable media, as used herein, comprises all computer-readable media except for transitory, propagating signals.
[0039] Networking communication interfaces 608 may be configured to transmit to, or receive data from, other computing devices 600 across a network 612. The network and communication interfaces 608 may be an Ethernet interface, a radio interface, a Universal Serial Bus (USB) interface, or any other suitable communications interface and may include receivers, transmitter, and transceivers. For purposes of clarity, a transceiver may be referred to as a receiver or a transmitter when referring to only the input or only the output functionality of the transceiver. Example communication interfaces 608 may include wire data transmission links such as Ethernet and TCP/IP. The communication interfaces 608 may include wireless protocols for interfacing with private or public networks 612. For example, the network and communication interfaces 608 and protocols may include interfaces for communicating with private wireless networks such as Wi-Fi network, one of the IEEE 802.11x family of networks, or another suitable wireless network. The network and communication interfaces 608 may include interfaces and protocols for communicating with public wireless networks 608, using for example wireless protocols used by cellular network providers, including Code Division Multiple Access (CDMA) and Global System for Mobile Communications (GSM). A computing device 600 may use network and communication interfaces 608 to communicate with hardware modules such as a database or data store, or one or more servers or other networked computing resources. Data may be encrypted or protected from unauthorized access.
[0040] In various configurations, the computing device 600 may include a system bus 610 for interconnecting the various components of the computing device 600, or the computing device 600 may be integrated into one or more chips such as programmable logic device or application specific integrated circuit (ASIC). The system bus 610 may include a memory controller, a local bus, or a peripheral bus for supporting input and output devices 604, and communication interfaces 608. Example input and output devices 604 include keyboards, keypads, gesture or graphical input devices, motion input devices, touchscreen interfaces, one or more displays, audio units, voice recognition units, vibratory devices, computer mice, and any other suitable user interface.
[0041] The processor 602 and memory 606 may include nonvolatile memory for storing computable-readable instructions, data, data structures, program modules, code, microcode, and other software components for storing the computer-readable instructions in non-transitory computable-readable mediums in connection with the other hardware components for carrying out the methodologies described herein. Software components may include source code, compiled code, interpreted code, executable code, static code, dynamic code, encrypted code, or any other suitable type of code or computer instructions implemented using any suitable high-level, low-level, object-oriented, visual, compiled, or interpreted programming language.
[0042] Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention being indicated by the following claims.