Multipart Code System

The multi-part code system addresses fraud in optically scannable codes by requiring alignment of individual parts to form a complete code, enhancing security and user authentication in data exchanges.

JP7680052B2Active Publication Date: 2025-05-20フレクサ インク
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022568441
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-11
Filing Date
2021-05-07
Publication Date
2025-05-20
Estimated Expiration
2041-05-07

AI Technical Summary

Technical Problem

Optically scannable codes, such as QR codes, are vulnerable to theft and fraud due to their ability to carry sensitive consumer data, and existing security measures like encryption and facial recognition are inadequate to prevent unauthorized access and duplication.

Method used

A multi-part code system where individual parts of the code are unusable on their own, requiring alignment to form a complete, readable code, combined with networked computing devices and alignment functions to ensure secure data exchange.

Benefits of technology

Reduces fraud by ensuring that a complete code must be intentionally created through alignment, thereby authenticating user intent and securing data transactions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007680052000001
    Figure 0007680052000001
  • Figure 0007680052000002
    Figure 0007680052000002
  • Figure 0007680052000003
    Figure 0007680052000003
Patent Text Reader

Abstract

The method includes receiving, by a network computing device of a multi-part code system, from one or more of a first and a second computing device, interaction information regarding an interaction between the first computing device and the second computing device. The method further includes generating first and second portions of a code, each of which individually does not contain meaningful information. A code representing the interaction information is optically created by aligning the first and second portions of the code. One or more of the first and second computing devices is operable to capture the optically created code. The method further includes transmitting the first and second portions of the code to one or more of the first and second computing devices. When the optically created code is captured, the method further includes completing the interaction by an interaction completion module of the network computing device.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] [CROSS REFERENCE TO RELATED APPLICATIONS] Not applicable.

[0002] [STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT] Not applicable.

[0003] [INCORPORATION-BY-REFERENCE OF MATERIAL SUBMITTED ON A COMPACT DISC] Not applicable. [Background technology]

[0004] The present invention relates generally to code generation for data exchange, and more particularly to multi-part code systems for interaction where parts of the multi-part code cannot be used individually.

[0005] [Description of Related Art] A code converts information from one form to another form or representation. The process of encoding converts information into symbols for communication or storage. Encryption is a type of security that converts data, programs, images, or other information into unreadable codes. An encryption key is typically a random string of bits generated using an algorithm to ensure that each key is unique and unpredictable. An encryption key is used to encrypt, decrypt, or perform both functions, depending on the type of encryption software used. For example, asymmetric encryption uses an encryption key pair consisting of a public encryption key to encrypt data and a private encryption key to decrypt data. A passphrase is typically required to use the private encryption key.

[0006] Graphically coded data representations are used to convey data by optical scanning technology. Optical scanning technology uses light or camera imaging to detect the graphically coded representation of data. Optical scanning technology often includes a decoder circuit to decode the graphically coded representation of data and transmit the decoded data to an output port or additional processing circuitry. A barcode is a type of graphically coded data representation. Linear codes, or one-dimensional (1D) barcodes, consist of parallel lines and spaces of various widths to represent textual information.

[0007] Two-dimensional (2D) barcodes consist of horizontal and vertical patterns and can contain more information than 1D barcodes, such as price, quantity, web addresses, images, etc. Quick Response (QR) codes are a type of 2D barcode used in many applications. For example, a consumer generates a QR code to complete a store purchase, where the QR code contains the consumer's payment information (e.g., prepaid account, debit or credit account, etc.). Ephemeral QR codes can be used for one-time verification codes or other time-varying data. As another example, QR codes can provide product marketing information, such as website links. As another example, QR codes are used to send and receive various cryptocurrencies.

[0008] Optically scannable codes, such as QR codes, are vulnerable to theft and fraud because they may carry sensitive consumer data, such as payment information and personal account data. For example, a data thief may upload a screenshot of a QR code from an airline boarding pass to an online reader and obtain personal information, such as frequent flyer numbers, loyalty program information, flight confirmation numbers, and personal data associated with airline accounts. Additionally, codes associated with event tickets can be duplicated and resold multiple times.

[0009] To prevent fraud associated with optically scanned codes, the codes can be tied to specific users via devices, encrypted, and / or updated every few seconds. Additionally, facial recognition and blockchain technology can help link the codes to the proper users and maintain a secure chain of custody of the codes. [Brief description of the drawings]

[0010] [Figure 1A] FIG. 1 is a schematic block diagram of an example of a one-dimensional barcode. [Figure 1B] FIG. 1 is a schematic block diagram of an example of a one-dimensional barcode. [Figure 1C] FIG. 1 is a schematic block diagram of an example of a one-dimensional barcode.

[0011] [Figure 2A] FIG. 1 is a schematic block diagram of an example of a two-dimensional barcode. [Figure 2B] FIG. 1 is a schematic block diagram of an example of a two-dimensional barcode. [Figure 2C] FIG. 1 is a schematic block diagram of an example of a two-dimensional barcode. [Figure 2D] FIG. 1 is a schematic block diagram of an example of a two-dimensional barcode.

[0012] [Diagram 3] FIG. 1 is a schematic block diagram of one embodiment of a multi-part code system in accordance with the present invention.

[0013] [Figure 4A] This is an example of a multipart code where the individual parts do not contain meaningful data. [Figure 4B] This is an example of a multipart code where the individual parts do not contain meaningful data. [Figure 4C] This is an example of a multipart code where the individual parts do not contain meaningful data. [Figure 4D] This is an example of a multipart code where the individual parts do not contain meaningful data.

[0014] [Figure 5A] 1 is an example of a multi-part code containing data that is unreadable in the individual parts according to the present invention. [Figure 5B] 1 is an example of a multi-part code containing data that is unreadable in the individual parts according to the present invention. [Figure 5C] 1 is an example of a multi-part code containing data that is unreadable in the individual parts according to the present invention. [Figure 5D] 1 is an example of a multi-part code containing data that is unreadable in the individual parts according to the present invention.

[0015] [Figure 6A] 1 is a schematic block diagram of an embodiment of a multi-part code system in accordance with the present invention; [Figure 6B] 1 is a schematic block diagram of an embodiment of a multi-part code system in accordance with the present invention; [Figure 6C] 1 is a schematic block diagram of an embodiment of a multi-part code system in accordance with the present invention;

[0016] [Figure 7] 4 is a flow chart of an example of a method for execution by a network computing device of a multi-part code system in accordance with the present invention.

[0017] [Figure 8A] FIG. 2 is a schematic block diagram of an example of a drag-and-drop alignment feature of a multi-part code system in accordance with the present invention; [Figure 8B] FIG. 2 is a schematic block diagram of an example of a drag-and-drop alignment feature of a multi-part code system in accordance with the present invention;

[0018] [Figure 9A] FIG. 11 is a schematic block diagram of another example of a drag-and-drop alignment feature of a multi-part code system in accordance with the present invention. [Figure 9B]FIG. 11 is a schematic block diagram of another example of a drag-and-drop alignment feature of a multi-part code system in accordance with the present invention. [Figure 9C] FIG. 11 is a schematic block diagram of another example of a drag-and-drop alignment feature of a multi-part code system in accordance with the present invention.

[0019] [Figure 10A] FIG. 11 is a schematic block diagram of another example of a drag-and-drop alignment feature of a multi-part code system in accordance with the present invention. [Figure 10B] FIG. 11 is a schematic block diagram of another example of a drag-and-drop alignment feature of a multi-part code system in accordance with the present invention.

[0020] [Figure 11A] FIG. 1 is a schematic block diagram of an example of a drag-and-drop alignment feature with biometric scanning in accordance with the present invention. [Figure 11B] FIG. 1 is a schematic block diagram of an example of a drag-and-drop alignment feature with biometric scanning in accordance with the present invention.

[0021] [Figure 12] 4 is a flow chart of an example method for drag-and-drop alignment functionality of a multi-part code system in accordance with the present invention.

[0022] [Figure 13A] FIG. 2 is a schematic block diagram of an example of a move to align feature of a multi-part code system in accordance with the present invention. [Figure 13B] FIG. 2 is a schematic block diagram of an example of a move to align feature of a multi-part code system in accordance with the present invention.

[0023] [Figure 14A] FIG. 2 is a schematic block diagram of an example of a moving alignment and scaling function of a multi-part code system in accordance with the present invention; [Figure 14B] FIG. 2 is a schematic block diagram of an example of a moving alignment and scaling function of a multi-part code system in accordance with the present invention;

[0024] [Figure 15] 1 is a flow chart of an example method for move and align functionality of a multi-part code system in accordance with the present invention.

[0025] [Figure 16] FIG. 2 is a schematic block diagram of an example of a moving and aligning function of a multi-part code system in accordance with the present invention.

[0026] [Figure 17] FIG. 2 is a schematic block diagram of an example of a moving alignment and scaling function of a multi-part code system in accordance with the present invention;

[0027] [Figure 18] 1 is a flow chart of an example method for move and align functionality of a multi-part code system in accordance with the present invention.

[0028] [Figure 19A] FIG. 2 is a schematic diagram of an example of selecting code portion options for interaction according to the present invention; [Figure 19B] FIG. 2 is a schematic diagram of an example of selecting code portion options for interaction according to the present invention; [Figure 19C] FIG. 2 is a schematic diagram of an example of selecting code portion options for interaction according to the present invention;

[0029] [Figure 20] 1 is a flow chart of an example method for selecting code portion options for interaction according to the present invention.

[0030] [Figure 21A]FIG. 2 is a schematic diagram of an example of selecting one code portion option of a plurality of code portion options for interaction according to the present invention; [Figure 21B] FIG. 2 is a schematic diagram of an example of selecting one code portion option of a plurality of code portion options for interaction according to the present invention;

[0031] [Figure 22] FIG. 2 is a schematic diagram of another example of selecting one code portion option of a plurality of code portion options for interaction according to the present invention;

[0032] [Diagram 23] 4 is a flow chart of an example method for selecting one code portion option of a plurality of code portion options for interaction according to the present invention.

[0033] [Figure 24] 1 is a schematic block diagram of one embodiment of a multi-source, multi-part code system in accordance with the present invention;

[0034] [Figure 24A] FIG. 2 is a schematic block diagram of an example of a multi-source, multi-part code in accordance with the present invention; [Figure 24B] FIG. 2 is a schematic block diagram of an example of a multi-source, multi-part code in accordance with the present invention; [Figure 24C] FIG. 2 is a schematic block diagram of an example of a multi-source, multi-part code in accordance with the present invention; [Figure 24D] FIG. 2 is a schematic block diagram of an example of a multi-source, multi-part code in accordance with the present invention; [Figure 24E] FIG. 2 is a schematic block diagram of an example of a multi-source, multi-part code in accordance with the present invention;

[0035] [Figure 25A] 1 is a schematic block diagram of one embodiment of a multi-source, multi-part code system in accordance with the present invention; [Figure 25B] 1 is a schematic block diagram of one embodiment of a multi-source, multi-part code system in accordance with the present invention; [Figure 25C] 1 is a schematic block diagram of one embodiment of a multi-source, multi-part code system in accordance with the present invention; [Figure 25D] 1 is a schematic block diagram of one embodiment of a multi-source, multi-part code system in accordance with the present invention; [Figure 25E] 1 is a schematic block diagram of one embodiment of a multi-source, multi-part code system in accordance with the present invention;

[0036] [Figure 26A] FIG. 2 is a schematic block diagram of an example of a split cost option for a multi-source, multi-part code system in accordance with the present invention. [Figure 26B] FIG. 2 is a schematic block diagram of an example of a split cost option for a multi-source, multi-part code system in accordance with the present invention. [Figure 26C] FIG. 2 is a schematic block diagram of an example of a split cost option for a multi-source, multi-part code system in accordance with the present invention. [Figure 26D] FIG. 2 is a schematic block diagram of an example of a split cost option for a multi-source, multi-part code system in accordance with the present invention.

[0037] [Figure 27A] FIG. 2 is a schematic block diagram of an example of a split cost option for a multi-source, multi-part code system in accordance with the present invention. [Figure 27B] FIG. 2 is a schematic block diagram of an example of a split cost option for a multi-source, multi-part code system in accordance with the present invention.

[0038] [Figure 28A] FIG. 1 is a schematic block diagram of an example of a split error in a multi-source, multi-part code system in accordance with the present invention; [Figure 28B] FIG. 1 is a schematic block diagram of an example of a split error in a multi-source, multi-part code system in accordance with the present invention;

[0039] [Figure 29A] FIG. 2 is a schematic block diagram of an example of an error resolution method for a multi-source, multi-part code system according to the present invention; [Figure 29B] FIG. 2 is a schematic block diagram of an example of an error resolution method for a multi-source, multi-part code system according to the present invention; [Figure 29C] FIG. 2 is a schematic block diagram of an example of an error resolution method for a multi-source, multi-part code system according to the present invention;

[0040] [Diagram 30] 4 is a flow chart of an example of a method for execution by a network computing device of multi-source, multi-part code in accordance with the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0041] 1A-1C are schematic block diagrams of an example one-dimensional barcode 10. A linear or one-dimensional (1D) barcode is made up of parallel lines and spaces of various widths to represent textual information (e.g., numbers, letters, etc.). As shown in FIG. 1A, a typical 1D barcode 10 includes a start symbol 12, followed by data symbols 14, and ends with a stop symbol 16. Symbols 12-16 are made up of parallel lines ("bars") and spaces 18. A barcode reader reads the 1D barcode 10 horizontally and identifies when to read the data symbols 14 based on the location of the start symbol 12 and the stop symbol 16.

[0042] 1B-1C are examples of a universal product code-A (UPC-A) barcode 20. The UPC-A barcode 20 is a 1D barcode that represents 12 numeric digits. Each digit is represented by a unique pattern of two bars and two spaces of variable width. Width variations include one, two, three, and four module widths, with each digit containing a total of seven modules. In FIG. 1B, the UPC-A code 20 includes a start symbol (S), six left digits (L), a middle symbol (M), six right digits (R), and an end symbol (E). Each digit and symbol contains a pattern of bars and spaces 18. The start (S), middle (M), and end (E) are guard patterns that are the same in all UPC-A codes. The "L" and "R" sections represent the 12 digit code, and the guard pattern separates the two groups and establishes the timing. The first "L" digit indicates the primary number system used by the digits that follow it. The final "R" digit is an error-detecting check digit.

[0043] Figure 1C includes an exemplary encoding table 22 for the UPC-A barcode 20 of Figure 1B. The black parallel lines are bars and the white parallel lines are spaces. The quiet zones are blank spaces that help separate the code from its surroundings. The "L" section digits have odd parity (e.g., the total bar width is an odd number of modules) and the "R" section digits have even parity (e.g., the total space width is an odd number of modules).

[0044] For example, a zero in the left section is represented by a 3 module wide space, a 2 module wide bar, a 1 module wide space, and a 1 module bar (i.e., a total space width of 4 modules and a total bar width of 3 modules). A zero in the right section has a 3 module wide bar, a 2 module wide space, a 1 module wide bar, and a 1 module wide space (i.e., a total space width of 3 modules and a total bar width of 4 modules). UPC barcode scanners determine whether to scan left-to-right or right-to-left (i.e., upside down) based on the difference in parity of the sections.

[0045] 2A-2D are schematic block diagrams of an example of a two-dimensional barcode 24. As shown in FIG. 2A, a two-dimensional (2D) barcode 24 contains information encoded based on a vertical and horizontal arrangement of patterns (dots, pixels, bars, honeycomb structures, multi-row barcodes, etc.) that allow it to contain much more information than a 1D barcode, such as price, quantity, web address, image, etc. The horizontal and vertical arrangement of patterns includes data symbols 14 that represent the actual data and error correction keys, orientation symbols 26, and various non-data information symbols 28 (e.g., version information, format information, etc.).

[0046] 2B-2D are examples of a Quick Response (QR) code 30. A QR code 30 is a type of 2D barcode used in many applications. FIG. 2B shows a complete QR code 30, while FIGS. 2C-2D show an incomplete version of the QR code 30 to highlight different components of the QR code 30. FIG. 2C includes an orientation symbol 26 and a non-data information symbol 28 of the QR code 30.

[0047] The orientation symbols 26 and non-data information symbols 28 of the QR Code® 30 include positioning marks 32, timing patterns 34, version information 36, alignment marks 38, format information 40, and quiet zones 42. The positioning marks 32 (in three corners) indicate the direction the code will be printed. The timing patterns 34 (shown as white squares) help the scanner determine how large the QR Code® is.

[0048] Version information 36 (shown as a collection of black rectangles) specifies the QR version being used (e.g., there are over 40 different QR versions). Alignment marks 38 provide additional orientation information for the scanner. Alignment marks 38 are useful when scanning large QR codes. Format information 40 (shown as dark gray marks) includes information regarding fault tolerance and data mask patterns. Quiet zone 42 is a blank border that distinguishes the QR code from its surroundings.

[0049] Figure 2D shows the remainder of the QR Code pattern not included in Figure 2C, which includes data symbols 14. Data symbols 14 are encoded data representing the actual data and error correction keys. Data symbols 14 represent up to 7089 digits or 4296 characters, including special characters. Data symbols 14 contain redundancy, which allows up to 30% of the QR Code to be discarded and still be readable.

[0050] 3 is a schematic block diagram of one embodiment of a multi-part code system 44 including a network computing device 46, a first computing device 48, a second computing device 50, and an interface means 52. The multi-part code system 44 facilitates the use of a multi-part code to complete an interaction 60 between two or more parties.

[0051] A multi-part code is any type of optically readable code that consists of at least two parts that are individually unusable. Unusable means that the parts cannot be optically read by an optical reader / scanner or the information obtained from an optical reader is incomplete and / or does not contain meaningful information. Optically readable codes include one or more of the following: one-dimensional (1D) barcodes, two-dimensional (2D) barcodes, numeric codes, alphanumeric codes, images, and any graphical pattern representing data such that scanning, decoding, and processing the optically readable code yields information.

[0052] Network computing device 46, first computing device 48, and second computing device 50 may be portable and / or fixed computing devices. A portable computing device may be a social networking device, a gaming device, a mobile phone, a smartphone, a digital assistant, a digital music player, a digital video player, a laptop computer, a handheld computer, a tablet, a video game controller, a portable merchant point of sale (POS) device (e.g., a mobile device with POS functionality), and / or any other portable device that includes a computing core. A fixed computing device may be a computer (PC), a computer server, a cable set-top box, a satellite receiver, a television set, a printer, a fax machine, a home entertainment appliance, a video game console, a fixed merchant point of sale (POS) device (e.g., a cash register), and / or any type of home or office computing appliance.

[0053] The first computing device 48 and the second computing device 50 include one or more optical scanners 68 operable to optically scan / detect / read graphically encoded representations of data and / or image data. The optical scanners 68 detect the graphically encoded representations of data using light and / or camera imaging, and may include one or more of a wand reader, a laser scanner, an omnidirectional barcode scanner, a charge-coupled device (CCD) reader, a camera-based reader, and a wide field of view reader.

[0054] A pen reader consists of a light source and a photodiode placed adjacent to each other at the tip of a pen-like device. To read a code, the pen is moved across the code, causing the photodiode to measure the intensity of light reflected back from the light source as the tip passes over the coded information. For example, in a barcode, the dark bars absorb light and the white spaces reflect light. The photodiode generates a waveform (e.g., a voltage waveform) as a representation of the bar and space pattern.

[0055] Laser scanners operate similarly to wand readers, except that they use a laser beam as the light source, typically scanning the laser back and forth across the code using either a reciprocating mirror or a rotating prism. A photodiode is used to measure the light intensity reflected from the code and generate a waveform that represents the pattern. Omnidirectional code scanners use a series of straight or curved scan lines (e.g., lasers) in various directions to project onto the image, so that all areas of the image are scanned regardless of orientation or angle.

[0056] CCD readers (or Light Emitting Diode (LED) scanners) use an array of hundreds of tiny photosensors lined up in a row at the front of the reader. In contrast to pen and laser scanners, each sensor measures the ambient light emitted from the code to produce a digital image of the graphical code.

[0057] Camera-based readers use image processing and decoding algorithms to locate the graphical code within a captured image and decode the information within the detected code. As an example, many smartphones include code scanning applications that rely on the smartphone's camera to capture an image of the graphical code. Autofocus technology improves the accuracy of the smartphone camera's optical scanning.

[0058] Video camera readers implement the same CCD technology as CCD readers, using a small video camera, except that the video camera has hundreds of rows of sensors arranged in a two-dimensional area to produce an image. Wide-field readers use high-resolution industrial cameras to capture multiple codes simultaneously. All codes that appear in the image are decoded either instantly or by using a plug-in.

[0059] The first computing device 48 and the second computing device 50 each include a network application ("app") 54 that associates the respective device with the network computing device 46. The network computing device 46 includes a multi-part code generation module 56 and an interaction completion module 58. The network application 54 includes an image processing module 45 that includes image processing and encoding / decoding circuitry for analyzing image data that has been optically scanned (e.g., via an optical scanner 68) and saved (e.g., a screenshot of the code, the code stored in memory) or otherwise detected, such as a graphically coded representation of the data.

[0060] The first computing device 48 and the second computing device 50 engage in an interaction 60 via the interface means 52. The interaction 60 is an exchange of data. For example, the interaction 60 is a digital payment transaction between the first computing device 48 and the second computing device 50. As another example, the interaction 60 is an agreement (e.g., signing a contract) between the first computing device 48 and the second computing device 50. As another example, the interaction 60 is an identity verification (e.g., a security checkpoint interaction) between the first computing device 48 and the second computing device 50. As another example, the interaction 60 is a ticket verification for entry to an event between the first computing device 48 and the second computing device 50. As another example, the interaction 60 is a sharing of confidential information between the first computing device 48 and the second computing device 50.

[0061] The interface means 52 includes one or more of an optical scanner 68, a direct link (e.g., near field communication (NFC)), and a network connection to one or more of the first or second computing devices. The network connection includes one or more local area networks (LANs) and / or one or more wide area networks (WANs), which may be public and / or private networks. The LANs may be wireless LANs (e.g., Wi-Fi access points, Bluetooth, ZigBee, etc.) and / or wired LANs (e.g., Firewire, Ethernet, etc.). The WANs may be wired and / or wireless WANs. For example, the LANs may be personal home wireless networks or corporate wireless networks, and the WANs may be the Internet, cellular infrastructure, and / or satellite communications infrastructure.

[0062] As one example, the first computing device 48 is a smartphone, the second computing device 50 is a fixed merchant POS device (e.g., a POS register), and the interface means 52 is the fixed merchant POS device's optical scanner 68. As another example, the first computing device 48 is a smartphone, the second computing device 50 is a fixed merchant POS device (e.g., a POS register), and the interface means 52 is the first computing device's 48 optical scanner 68 in the form of a smartphone camera.

[0063] As another example, the first computing device 48 is a smartphone, the second computing device 50 is an e-commerce platform, and the interface means 52 is a network connection. For example, the smartphone uses an internet browser application (via a cellular or wireless internet connection) to access the e-commerce platform. As another example, the first computing device 48 is a smartphone, the second computing device 50 is a smartphone, and the interface means 52 is a Bluetooth connection.

[0064] In one example of operation, the network computing device 46 receives interaction information ("information") 62 from one or more of the first computing device 48 and the second computing device 50. The interaction information 62 relates to an interaction 60 between the first computing device 48 and the second computing device 50. The interaction information 62 includes one or more of a first computing device identifier (ID), a second computing device identifier (ID), a payment amount, a data file, a signature page, event information, a desired payment method, payment account information, discount information, promotion information, loyalty account information, and personal information (e.g., email, phone number, address, social security number, etc.).

[0065] As an example, the interaction 60 is a digital payment transaction from a first computing device 48 to a second computing device 50. The first computing device 48 sends to the network computing device 46 (e.g., via the network app 54, where the network app 54 is a digital wallet application downloaded to the first computing device 48) interaction information 62 relating to the payment transaction associated with the first computing device 48, such as the first computing device 48 identifier (ID), the payment amount, the desired currency and / or payment method to be used, customer loyalty information, promotional codes, billing address, personal information, data files, etc.

[0066] The second computing device 50 sends to the network computing device 46 (e.g., via the network app 54, where the network app 54 is payment software associated with the network computing device 46 installed on the second computing device 50 (e.g., a POS device)) interaction information 62 regarding the payment transaction associated with the second computing device 50, such as the second computing device 50 identifier (e.g., merchant ID), payment amount, form of desired payment method, discount offered, etc.

[0067] A multi-part code generation module 56 of the network computing device 46 generates the first portion 64 of the code and the second portion 66 of the code such that the first portion 64 of the code and the second portion 66 of the code are not individually usable. By aligning the first portion 64 of the code and the second portion 66 of the code, a code representative of the interaction information 62 is optically created. An image processing module 45 of the network application 54 of one or more of the first computing device 48 and the second computing device 50 is operable to detect, capture, and process the optically created code.

[0068] In this example, the network computing device 46 transmits a first portion 64 of the code to the first computing device 48 and a second portion 66 of the code to the second computing device 50. The first portion 64 and the second portion 66 of the code must be aligned through an alignment function of the network application 54 (e.g., a manual action of one or more of the first computing device 48 and the second computing device 50) so that a complete code is optically created. With conventional optically readable codes, the code may be scanned incorrectly or may be fraudulently duplicated. Requiring an alignment function to create a complete code indicates the user's intent to complete the interaction 60, reducing fraudulent use. The alignment function is discussed in more detail with reference to FIGS. 8A-18.

[0069] Once the optically created code is captured (e.g., via image processing module 45 of network application 54), network application 54 communicates with interaction completion module 58 of network computing device 46 to complete interaction 60. For example, the complete captured and decoded code contains information instructing interaction completion module 58 to transfer an amount from an account associated with the first computing device 48 to an account associated with the second computing device 50.

[0070] If the optically created code is not captured (e.g., after a period of time has elapsed before the alignment function is completed, due to an error, etc.), the network computing device 46 may implement one or more solutions. For example, the network computing device 46 generates and distributes new first and second portions of the code after a period of time has elapsed before proper alignment (e.g., new first and second portions of the code are generated and distributed every 30 seconds to 1 minute before alignment).

[0071] As another example, the network computing device 46 notifies one or more of the first computing device 48 and the second computing device 50 regarding the alignment (e.g., a notification to retry the alignment is sent, a query is sent regarding whether to regenerate new code, a notification of an error associated with one or more of the first and second portions of the code is sent, etc.).

[0072] 4A-4D are examples of multi-part codes where the individual parts do not contain meaningful data. FIG. 4A includes a multi-part code where a first part 64 of the code and a second part 66 of the code contain incomplete data for a Quick Response (QR) code 30. These parts can be read by a QR scanner (e.g., orientation marks and non-data information are present in both parts), but the actual data readout does not carry any meaningful information. When the first part 64 and the second part 66 of the code are aligned (e.g., placed one on top of the other), a complete QR code 30 is created and meaningful data can be read.

[0073] 4B includes a multi-part code in which a first portion 64 of the code and a second portion 66 of the code contain incomplete data of the UPC-A barcode 20. Although these portions can be read by a barcode scanner (e.g., a barrier symbol is present), the actual data is incomplete and insignificant. When the first portion 64 and second portion 66 of the code are aligned (e.g., placed one on top of the other), a complete UPC-A barcode 20 is created and the data can be optically read.

[0074] 4C shows a multi-part code in which a first part 64 of the code and a second part 66 of the code contain incomplete data of an alphanumeric code, such as an encryption key. The first part 64 and the second part 66 of the code do not contain enough data for the code to have meaning according to the encryption key type used, and gaps between the codes may cause optical reading errors. When the first part 64 and the second part 66 of the code are aligned (e.g., placed one on top of the other), a complete alphanumeric code 70 is created and the data can be read accurately.

[0075] Figure 4D is an example illustrating that any graphical pattern can be used to represent data. The code 70 of Figure 4D includes a first portion 64 of the code and a second portion 66 of the code, each of which is a missing portion of a complete graphical code. The first portion 64 of the code and the second portion 66 of the code do not contain enough data for these portions of the code to be meaningful. When the first portion 64 and the second portion 66 of the code are aligned (e.g., placed one on top of the other), a complete graphical code 70 is created and the data can be optically read.

[0076] 5A-5D are examples of multi-part codes where portions contain unreadable data. FIG. 5A includes a multi-part code where a first portion 64 of the code and a second portion 66 of the code contain unreadable data for a Quick Response (QR) code 30. These portions have orientation information spilled over them, so a QR scanner cannot accurately read the individual portions. When the first portion 64 and second portion 66 of the code are aligned (e.g., placed next to each other), a complete QR code 30 with the correct orientation symbols is created and the data can be accurately read.

[0077] 5B includes a multi-part code in which a first portion 64 of the code and a second portion 66 of the code contain unreadable data for a UPC-A barcode 20. These portions have the barrier symbol spilled over them, corrupting the entire symbol so that a barcode scanner cannot accurately read the individual portions. When the first portion 64 and second portion 66 of the code are aligned (e.g., placed next to each other), a UPC-A barcode 20 is created and the data can be accurately read.

[0078] Figures 5C and 5D are examples showing that any graphical pattern can be used to represent data, and that any partitioning is possible to create unreadable portions of the code. Figure 5C includes a multi-part code in which a first portion 64 of the code and a second portion 66 of the code contain unreadable data in a graphically coded data representation similar to a dual barcode. The first portion 64 of the code is missing an inner region, and the second portion of the code is missing a peripheral region, so that a scanner cannot accurately read the individual portions. When the first portion 64 and the second portion 66 of the code are aligned (e.g., by positioning one on top of the other), a complete code 70 is created and the data can be accurately read optically.

[0079] In Figure 5D, a first portion 64 of the code contains holes where data is missing, and a second portion 66 of the code contains holes that are missing from the first portion. When a scanner is looking for a particular shape of the code, such as a rectangle to scan, the first portion 64 and the second portion 66 of the code will not be read because there is no discernible rectangular boundary on either. When the first portion 64 and the second portion 66 of the code are aligned, a complete graphical code 70 of the required shape is created, allowing the data to be read accurately.

[0080] 6A-6C are schematic block diagrams of an embodiment of a multi-part code system 44 including a network computing device 46, a first computing device 48, a second computing device 50, and an interface means 52. Figures 6A-6C illustrate an example of distributing a portion of a code to one or more of the first computing device 48 and the second computing device 50.

[0081] 6A, the first computing device 48 and the second computing device 50 have a network application 54 for connecting to the network computing device 46 and an optical scanner 68. The network application 54 includes an image processing module 45. In steps 1a and / or 1b, one or more of the first computing device 48 and the second computing device 50 initiate an interaction 60 via an interface means 52 or other means.

[0082] As an example, the interaction 60 is a payment transaction in which a first computing device 48 is paying a second computing device 50 for goods or services, the interface means 52 is a network connection, the second computing device is a merchant e-commerce platform device, and the first computing device 48 is a smartphone. To initiate the interaction 60 in step 1a, the first computing device 48 uses the interface means 52 (e.g., a network connection) to access an e-commerce website using an internet browser application. A user of the first computing device 48 selects goods for purchase from the e-commerce website and places the goods in an online cart for checkout. The checkout process triggers the next steps of the diagram.

[0083] As another example, the interaction 60 is signing a contract, the interface means 52 is a network connection, and the first computing device 48 and the second computing device 50 are smartphones. To initiate the interaction 60, in step 1a, the first computing device 48 shares the contract with the second computing device 50 via the interface means 52 (e.g., via email). Alternatively, in step 1b, the second computing device 50 shares the contract with the first computing device 48 via the interface means 52 (e.g., via email). Sharing the contract triggers the next step in the diagram.

[0084] In step 2a, the first computing device 48 sends first interaction information 62-1 regarding the interaction 60 to the network computing device 46 via the network application 54 of the first computing device 48. In step 2b, the second computing device 50 sends second interaction information 62-2 regarding the interaction 60 to the network computing device 46 via the network application 54 of the second computing device 50. Steps 2a and 2b may occur simultaneously or at different times.

[0085] Continuing with the above example where interaction 60 is a payment transaction, in step 2a, when a user of first computing device 48 selects a checkout option on an e-commerce website to facilitate payment using network application 54, network application 54 (e.g., a digital wallet application) of first computing device 48 opens. First interaction information 62-1 is transmitted to network computing device 46 via network application 54. First interaction information 62-1 pertains to information of first computing device 48 related to the payment, such as first computing device 48 identifier (ID), payment amount, desired currency and / or payment method to use, customer loyalty information, promotional codes, billing address, etc.

[0086] Similarly, in step 2b, when the user of the first computing device 48 selects the checkout option to use his / her network application 54, the second computing device 50 accesses the network computing device 46 via its network application 54 (e.g., software installed on an e-commerce platform), and second interaction information 62-2 is sent to the network computing device 46 via the network application 54 of the second computing device 50. The second interaction information 62-2 relates to information of the second computing device 50 regarding receipt of the payment, such as the second computing device 50 identifier (e.g., merchant ID), payment amount, bank routing information, form of payment method desired, discounts offered, etc.

[0087] Continuing with the above example where the interaction 60 is signing a contract, in steps 2a and / or 2b, the first computing device 48 and / or the second computing device 50 send the first and second interaction information to the network computing device 46 via their respective network applications 54. For example, one or more of the first computing device 48 and the second computing device 50 upload a complete copy of the contract to their network applications 54. Alternatively, the first computing device 48 and / or the second computing device 50 may provide one or more of a contract summary, personal information (e.g., address, email, social security number, etc.), signature information (e.g., signature copy, digital signature, etc.), selected terms, selected clauses, signature page, and security information (e.g., private key, encrypted information, etc.) as the first and second interaction information.

[0088] In steps 3a-3b, the multi-part code generation module 56 of the network computing device 46 generates a first part 64 and a second part 66 of the code. For example, the multi-part code generation module 56 generates a code 70 representing the first interaction information 62-1 and the second interaction information 62-2 received from the first computing device 48 and the second computing device 50 in step 3a. The code 70 may include some or all of the first interaction information 62-1 and the second interaction information 62-2. Alternatively, the code 70 may be randomly generated (e.g., a temporary alphanumeric code) to represent the information received by the network computing device 46 such that the code 70 does not include any of the first interaction information 62-1 and the second interaction information 62-2.

[0089] In step 3b, the multi-part code generation module 56 generates the first part 64 of the code and the second part 66 of the code such that the first part 64 of the code and the second part 66 of the code are individually unusable. As discussed in Figures 4A-5D, unusable means that the parts do not contain meaningful data, contain incomplete data, and / or cannot be properly read by an optical scanner.

[0090] As an alternative, in step 3a, the multi-part code generation module 56 of the network computing device 46 generates a first part 64 of the code based on the first interaction information 62-1, and in step 3b, generates a second part 64 of the code based on the second interaction information 62-2 and the first part 64 of the code (e.g., the second part is generated to align with the shape of the first part).

[0091] In step 4a, the network computing device 46 transmits the first portion of the code 64 to the first computing device 48. In step 4b, the network computing device 46 transmits the second portion of the code 66 to the second computing device 50.

[0092] The first and second portions 64, 66 of the code are aligned in step 5 via an alignment function of the network application 54 (e.g., a manual action by one or more of the first and second computing devices 48, 50) such that the network application of one or more of the first and second computing devices 48, 50 is operable to capture the optically created code 70 to indicate intent by the parties to complete the interaction 60. The alignment function is discussed in more detail with reference to Figures 8A-18.

[0093] Once the first and second portions 64, 66 of the code are aligned in step 5, the image processing module 45 of the network application 54 of one or more of the first computing device 48 and second computing device 50 detects, captures and processes the optically produced code 70 and in steps 6a-6b communicates with the network computing device 46 to complete the interaction 60. An interaction completion module 58 of the network computing device 46 completes the interaction 60.

[0094] For example, if the interaction 60 is a payment, the interaction completion module 58 transfers an amount from an account associated with the first computing device 48 to an account associated with the second computing device 50. As another example, if the interaction 60 is the signing of a contract, the interaction completion module 58 generates and sends a signed contract to the first computing device 48 and the second computing device 50.

[0095] Figure 6B operates similarly to Figure 6A, except that only one device (e.g., first computing device 48) includes a network application 54 for connecting to network computing device 46 and capturing the optically created code. First computing device 48 and second computing device 50 initiate interaction 60 via interface means 52 or other means (e.g., at steps 1a and 1b).

[0096] As an example, the interaction 60 is a payment transaction where the first computing device 48 is paying the second computing device 50, the interface means 52 is Bluetooth, and the first computing device 48 and the second computing device 50 are smartphones. In step 1a or 1b, to initiate the interaction 60, the first computing device 48 or the second computing device 50 uses the interface means 52 (e.g., Bluetooth connection) to initiate the payment. For example, the second computing device 50 sends an invoice to the first computing device 48, where the invoice includes a link to an account for payment, the amount to be paid, etc.

[0097] As another example, the interaction 60 is an exchange of sensitive data from a first computing device to a second computing device 50, the interface means 52 is a network connection, and the first computing device 48 and the second computing device 50 are smartphones. To initiate the interaction 60, in step 1a, the first computing device 48 shares a data exchange request with the second computing device 50 via the interface means 52 (e.g., via email). Alternatively, in step 1b, the second computing device 50 shares a data exchange request with the first computing device 48 via the interface means 52 (e.g., via text message).

[0098] In step 2, the first computing device 48 sends interaction information 62 regarding the interaction 60 to the network computing device 46 via a network application 54 (e.g., a digital wallet application) of the first computing device 48. For example, if the interaction is a payment from the first computing device 48 to a second computing device 50, the first computing device 48 receives from the second computing device 50 via the interface means 52 any information necessary to proceed with the payment.

[0099] The interaction information 62 includes information regarding the payment, such as the first computing device 48 identifier (ID), the payment amount, the desired currency and / or payment method to be used, customer loyalty information, promotional codes, billing address, the second computing device 50 identifier (e.g., merchant ID), the payment amount, bank routing information, the form of the desired payment method, any discounts offered, etc.

[0100] Continuing with the above example where interaction 60 is the sharing of sensitive information, in step 2, first computing device 48, via its network application 54, sends interaction information 62 to network computing device 46. For example, interaction information 62 may include the sensitive data that the first computing device would like to share with the second computing device, a summary of the sensitive information, identifying information associated with the first and / or second computing device, where to send the information (e.g., email address of the second computing device, online cloud storage, etc.), security information, etc.

[0101] In steps 3a-3b, the multi-part code generation module 56 of the network computing device 46 generates a first portion 64 and a second portion 66 of the code. For example, the multi-part code generation module 56 generates a code 70 that represents the interaction information 62 received from the first computing device 48 in step 3a. The code 70 may include some or all of the interaction information 62. Alternatively, the code 70 may be randomly generated (e.g., a temporary alphanumeric code) to represent the information received by the network computing device 46 such that the code 70 does not encompass any of the interaction information 62.

[0102] In step 3b, the multi-part code generation module 56 generates the first part 64 of the code and the second part 66 of the code such that the first part 64 of the code and the second part 66 of the code are individually unusable. As discussed in Figures 4A-5D, unusable means that the parts do not contain meaningful data, contain incomplete data, and / or cannot be properly read by an optical scanner.

[0103] As an alternative, in step 3a, the multi-part code generation module 56 of the network computing device 46 generates a first portion 64 of the code based on the interaction information 62, and in step 3b, generates a second portion 64 of the code based on the interaction information 62 and the first portion 64 of the code (e.g., the second portion is generated to align with the shape of the first portion).

[0104] In step 4, the network computing device 46 transmits the first portion 64 and the second portion 66 of the code to the first computing device 48. In this example, the second computing device 50 is not associated with the network computing device 46, so the intent to complete the interaction 60 relies solely on the first computing device 48.

[0105] The first and second portions 64, 66 of the code are aligned in step 5 via an alignment function of the network application 54 (e.g., a manual action by the first computing device 48) such that the image processing module 45 of the network application 54 of the first computing device 48 is operable to detect, capture, and process the optically created code 70 to manifest the intent of the party to complete the interaction 60. The alignment function is discussed in more detail with reference to Figures 8A-18.

[0106] Once the first and second portions 64, 66 of the code are aligned in step 5, the network application image processing module 45 of the first computing device 48 detects, captures and processes the optically produced code 70 and communicates the information captured on the code to the network computing device 46 in step 6 to complete the interaction 60. An interaction completion module 58 of the network computing device 46 completes the interaction 60.

[0107] For example, if the interaction 60 is a payment, the interaction completion module 58 transfers an amount (as indicated in the interaction information) from an account associated with the first computing device 48 to an account associated with the second computing device 50. As another example, if the interaction 60 is a sharing of information, the interaction completion module 58 sends (and optionally encrypts) the information to a location specified in the interaction information 62 (e.g., to the email address of the second computing device 50).

[0108] Figure 6C operates similarly to Figure 6A, except that the multi-part generation module 56 of the network computing device 46 generates the parts 64-66 of the code separately and at different times. The first computing device 48 and the second computing device 50 include a network application 54 for connecting to the network computing device 46 and capturing the optically created code. In steps 1a and / or 1b, one or more of the first computing device 48 and the second computing device 50 initiate an interaction 60 via the interface means 52 or other means (e.g., steps 1a and 1b).

[0109] As an example, the interaction 60 is a payment transaction in which the first computing device 48 is receiving payment from the second computing device 50 for goods or services, the first computing device being a merchant point-of-sale (POS) device (e.g., a register), the second computing device 50 being a smartphone, and the interface means 52 being a direct link (e.g., NFC, Bluetooth, etc.). To initiate the interaction 60 in steps 1a and / or 1b, the first computing device 48 and / or the second computing device 50 begin a checkout process. For example, a user of the second computing device 48 initiates checkout via the NFC link.

[0110] In step 2, the first computing device 48 sends first interaction information 62-1 regarding the interaction 60 to the network computing device 46 via the network application 54 of the first computing device 48. For example, if the interaction 60 is a payment from the second computing device 50, the first interaction information 62-1 may include the first computing device 48 (e.g., merchant) identifier (ID), the item selected for purchase, the amount due, payment account information, the form of the desired payment method, any discounts offered, etc.

[0111] In step 3, the multi-part code generation module 56 of the network computing device 46 generates a first portion 64 of the code representing the first interaction information 62-1 received from the first computing device 48. The first portion 64 of the code may include some or all of the first interaction information 62-1. Alternatively, the first portion 64 of the code may be randomly generated (e.g., a temporary alphanumeric code) to represent the first interaction information 62-1 such that the first portion 64 of the code does not encompass any of the first interaction information 62-1.

[0112] In step 4, the network computing device 46 transmits the first portion 64 of the code to the first computing device 48. In step 5, the first computing device 48 displays the first portion 64 of the code on the second computing device 50. For example, the first portion 64 of the code is displayed on a digital display of the first computing device 48. As another example, the first computing device 48 prints the first portion 64 of the code on a piece of paper (e.g., a receipt) for presentation to the second computing device 50. As another example, the first computing device 48 delivers the first portion 64 of the code to the second computing device 50 via the interface means 52 (e.g., a network connection (e.g., sending to email), a Bluetooth connection, an SMS text message, etc.).

[0113] In step 6, the second computing device 50 captures the first portion 64 of the code via an optical scanner 68 (e.g., a smartphone camera), where the code 64 is analyzed by the image processing module 45 of the network application 54. As another example, if the second computing device does not scan the first portion 64 of the code (e.g., received via email, text message, etc.), the second computing device 50 manually or automatically saves / uploads the first portion 64 of the code to the image processing module 45 of the network application 54. The image processing module 45 of the network application 54 is operable to analyze information from stored or downloaded images (e.g., not just those directly from the optical scanner 68) using image detection and decoding techniques.

[0114] Based on the information obtained from the first portion of the code 64, in step 7, the second computing device 50 transmits second interaction information 62-2 to the network computing device 46 via the network application 54. The second interaction information 62-2 may include the first portion of the code 64, the desired currency and / or payment method to be used, customer loyalty information, promotional codes, a billing address, etc.

[0115] In step 8, the multi-part code generation module 56 of the network computing device 46 generates a second part of the code 66 representing the second interaction information 62-2 received from the second computing device 50 and based on the first part of the code 64. The second part of the code 66 may include some or all of the second interaction information 62-2. Alternatively, the second part of the code 66 may be randomly generated (e.g., a temporary alphanumeric code) to represent the second interaction information 62-2, such that the second part of the code 66 does not encompass any of the second interaction information 62-2.

[0116] The multi-part code generation module 56 generates the first part 64 of the code and the second part 66 of the code such that the first part 64 of the code and the second part 66 of the code are individually unusable. As discussed in Figures 4A-5D, unusable means that the parts do not contain actual data, contain incomplete data, and / or cannot be properly read by an optical scanner.

[0117] In step 9, the network computing device 46 transmits the second portion 66 of the code to the second computing device 50. The first and second portions 64, 66 of the code are aligned in step 5 via an alignment function of the network application 54 (e.g., a manual action by one or more of the first computing device 48 and the second computing device 50) such that an image processing module 45 of the network application of one or more of the first computing device 48 and the second computing device 50 is operable to capture the optically created code 70 to indicate the intent of the parties to complete the interaction 60. The alignment function is discussed in more detail with reference to FIGS. 8A-18.

[0118] Once the first and second portions 64, 66 of the code are aligned in step 10, an image processing module 45 of the network application of one or more of the first and second computing devices 48, 50 captures the optically generated code 70 and communicates with the network computing device 46 to complete the interaction 60 in steps 11a-11b. An interaction completion module 58 of the network computing device 46 completes the interaction 60.

[0119] For example, if the interaction 60 is a payment, the interaction completion module 58 transfers an amount from an account associated with the second computing device 50 to an account associated with the first computing device 48 .

[0120] FIG. 7 is a flow chart of an example method for execution by a network computing device of a multi-part code system. The network computing device facilitates the use of multi-part codes to complete an interaction between two or more parties. A multi-part code is any type of optically readable code that consists of at least two parts that are individually unusable. Unusable means that the parts cannot be optically read by an optical reader / scanner or the information obtained from the optical reader is incomplete and / or does not contain meaningful information. Optically readable codes include one or more of one-dimensional (1D) bar codes, two-dimensional (2D) bar codes, numeric codes, alphanumeric codes, images, and any graphical pattern representing data such that scanning, decoding, and processing the optically readable code yields information.

[0121] The method begins at step 72, where a network computing device receives interaction information from one or more of a first computing device and a second computing device of a multi-part code system. One or more of the first and second computing devices includes a network application that associates the one or more of the first and second computing devices with the network computing device. The network application includes an image processing module that includes image processing and encoding / decoding circuitry for analyzing image data (e.g., a graphically coded representation of data) that has been optically scanned (e.g., via an optical scanner in one or more of the first and second computing devices), saved (e.g., a screenshot of a code, a code stored in memory in one or more of the first and second computing devices), or otherwise detected.

[0122] An interaction is an exchange of data. For example, an interaction is a payment transaction between a first computing device and a second computing device. As another example, an interaction is an agreement (e.g., a contract) between a first computing device and a second computing device. As another example, an interaction is an identity verification between a first computing device and a second computing device. As another example, an interaction is a ticket verification for admission to an event between a first computing device and a second computing device. As another example, an interaction is a sharing of confidential information between a first computing device and a second computing device.

[0123] The interaction occurs through an interface means, which may include one or more of an optical scanner, a direct link (e.g., near field communication (NFC)), and a network connection of one or more of the first or second computing devices (e.g., a smartphone camera). The network connection includes one or more local area networks (LANs) and / or one or more wide area networks (WANs), which may be public and / or private networks. The LANs may be wireless LANs (e.g., Wi-Fi access points, Bluetooth, ZigBee, etc.) and / or wired LANs (e.g., Firewire, Ethernet, etc.). The WANs may be wired and / or wireless WANs. For example, the LANs may be personal home wireless networks or corporate wireless networks, and the WANs may be the Internet, cellular infrastructure, and / or satellite communications infrastructure.

[0124] The interaction information includes one or more of a first computing device identifier (ID), a second computing device identifier (ID), a payment amount, a data file, a signature page, event information, a desired payment method, payment account information, discount information, promotional information, loyalty account information, and personal information (e.g., email, phone number, address, social security number, etc.).

[0125] The method continues at step 74, where the multi-part code generation module of the network computing device generates the first part of the code and the second part of the code such that the first and second parts of the code are individually unusable, meaning that the parts cannot be optically read by an optical reader / scanner or the information obtained from the optical reader is incomplete or does not result in meaningful data. By aligning the first and second parts of the code, a code representing the interaction information is optically created. An image processing module of one or more of the network applications of the first and second computing devices is operable to detect, capture and process the optically created code.

[0126] In an example of multi-part code generation, the multi-part code generation module generates a code representing interaction information and then splits the code into a first and a second portion of the code (e.g., the code is physically split into two portions and information is removed from these portions, etc.). As another example, the multi-part code generation module generates a first portion of the code based on first interaction information of the interaction information received from a first computing device. The multi-part code generation module then generates a second portion of the code based on second interaction information of the interaction information received from a second computing device and the first portion of the code (e.g., the second portion of the code is generated to align with the shape of the first portion of the code).

[0127] The method continues at step 76, where the network computing device transmits the first and second portions of the code to one or more of the first and second computing devices. For example, the network computing device transmits the first portion of the code to the first computing device and transmits the second portion of the code to the second computing device. As another example, the network computing device transmits the first and second portions of the code to the first computing device. As another example, the network computing device generates and transmits the first portion of the code to the first computing device. The first portion of the code is provided to the second computing device (e.g., the second computing device scans the first portion of the code with an optical scanner), and the second computing device generates and transmits second interaction information based on the first portion of the code to the network computing device. The network computing device generates and transmits the second portion of the code based on the second interaction information to the second computing device.

[0128] The first and second portions of the code must be aligned through an alignment function of one or more network applications of the first and second computing devices such that a complete code indicating the intent to complete the interaction is optically created, the alignment function being discussed in more detail with reference to Figures 8A-18.

[0129] If, at step 78, an optically created code has been captured (e.g., via an image processing module of one or more of the network applications of the first and second computing devices), the method continues to step 80, where the network computing devices complete the interaction. For example, the one or more of the network applications of the first and second computing devices communicate the captured code information to an interaction completion module of the network computing device to complete the interaction. As an example, the captured and decoded code contains information instructing the interaction completion module to transfer an amount from an account associated with the first computing device to an account associated with the second computing device.

[0130] If the optically generated code is not captured in step 78 (e.g., after a period of time has elapsed, due to an error of the first or second computing device, etc.), the network computing device implements one or more solutions in step 82. For example, the network computing device generates and distributes new first and second portions of the code after a period of time has elapsed, before the optically generated code is not captured. As another example, the network computing device queries one or more of the first and second computing devices regarding whether to generate one or more new first and second portions of the code. As another example, the network computing device notifies one or more of the first and second computing devices regarding the alignment (e.g., a notification is sent to retry the alignment, a notification to correct an error related to the alignment, etc.).

[0131] 8A-8B are schematic block diagrams of an example of a drag-and-drop alignment function of a multi-part code system including a first computing device 48 and a second computing device 50. The first computing device 48 and the second computing device 50 include a network application ("app") 54 and one or more optical scanners 88-90. The network application 54 associates the respective devices with the network computing devices. The network application 54 includes an image processing module that includes image processing and encoding / decoding circuitry for analyzing image data that has been optically scanned (e.g., via the optical scanner 68) and saved (e.g., a screenshot of the code, the code stored in memory), or otherwise detected, such as a graphically coded representation of the data.

[0132] When opened on a device, the network application 54 displays an interactive display area featuring a code display area 86 and a viewfinder / display area 84. In this example, the interactive display areas of the first computing device 48 and the second computing device 50 are touch screen displays. The code display area 86 displays code portions generated by the network computing device and is for private use by the user of the device. The viewfinder / display area 84 displays images captured by the optical scanners 88-90, images selected from the code display area 86 for display, and images selected for upload from device storage and / or other device applications (e.g., screenshots from websites, images stored in device memory (e.g., camera roll or photo album), images from saved emails, etc.). The viewfinder / display area 84 is operable to recognize, capture, and detect optically created codes aligned within the viewfinder / display area 84 through the image processing and encoding / decoding circuitry of the network application 54.

[0133] 8A, the first computing device 48 receives a first portion of the code 64 from a networked computing device. The first portion of the code 64 is displayed in a code display area 86 of the first computing device 48. The user of the first computing device 48 selects an option to display the first portion of the code 64 in the viewfinder / display area 84 of the first computing device 48, allowing a user of the second computing device 50 to scan the first portion of the code 64.

[0134] The second computing device 50 receives the second portion 66 of the code from the networked computing device. The second portion 66 of the code is displayed in a code display area 86 of the second computing device 50. A user of the second computing device 50 selects a scan option and scans the viewfinder / display area 84 of the first computing device 48 using a rear optical scanner 88 of the second computing device 50 (e.g., a smartphone camera application).

[0135] The viewfinder / display area 84 of the first computing device 48 is scanned by the rear optical scanner 88 of the second computing device 50 and the first portion 64 of the code is displayed in the viewfinder / display area 84 of the second computing device 50.

[0136] In FIG. 8B, the user of the second computing device 50 drags the second portion of the code 66 into the viewfinder / display area 84 to align it with the first portion of the code 64. Once aligned, the user "drops" the second portion of the code 66 (e.g., releases the touch) into the viewfinder / display area 84, creating the complete code. The viewfinder / display area 84 is operable to capture the complete code when correctly aligned and communicate the successful alignment and the complete code to the networked computing device. The networked computing device then completes the interaction. Upon successful alignment and completion of the interaction, a message appears notifying the user of the second computing device 50 that the interaction is complete.

[0137] 9A-9C are schematic block diagrams of another example of a drag-and-drop alignment feature of a multi-part code system including a first computing device 48 and a second computing device 50. FIGS. 9A-9C are a continuation of the example of FIGS. 8A-8B. In FIGS. 8A-8B, a user of the second computing device aligns a second portion of the code with a first portion of the code in the viewfinder / display area 84 of the second computing device 50 to complete an interaction with the first computing device 48. In FIGS. 9A-9C, a user of the first computing device must also align the portions of the code to complete the interaction.

[0138] Figure 9A is a continuation of the example of Figure 8B, except that instead of receiving a message that the interaction is complete, the user of the second computing device 50 receives a request to display the second portion 66 of the code for scanning by the first computing device 48. In Figure 9B, the user of the second computing device 50 displays the second portion 66 of the code in the viewfinder / display area 84 of the second computing device 50.

[0139] A user of the first computing device 48 selects a scan option in the viewfinder / display area 84 of the first computing device 48 to scan the viewfinder / display area 84 of the second computing device 50 using the rear optical scanner 88 of the first computing device 48 (e.g., a smartphone camera application).

[0140] The viewfinder / display area 84 of the second computing device 50 is scanned by the rear optical scanner 88 of the first computing device 48 and the second portion 66 of the code is displayed in the viewfinder / display area 84 of the first computing device 48.

[0141] In FIG. 9C, the user of the first computing device 48 drags the first portion 64 of the code into the viewfinder / display area 84 to align it with the second portion 66 of the code. Once aligned, the user "drops" the first portion 64 of the code into the viewfinder / display area 84 (e.g., releases the touch), creating the complete code. The viewfinder / display area 84 is operable to capture the complete code when correctly aligned and communicate the successful alignment and the complete code to the network computing device. The network computing device then completes the interaction. Upon successful alignment and completion of the interaction, a message appears notifying the users of the first computing device 48 and the second computing device 50 that the interaction is complete.

[0142] Figures 10A-10B are schematic block diagrams of another example of a drag-and-drop alignment feature of a multi-part code system including a first computing device 48. Figures 10A-10B are similar to the example of Figures 8A-9C, except that Figures 10A-10B show an example in which the first computing device 48 connects with a second computing device 50 via a network connection (e.g., WiFi, cellular, etc.) and the second computing device 50 is not physically near the first computing device 48.

[0143] 10A, for example, the second computing device 50 is an e-commerce platform device and the first computing device 48 is a smartphone. A user of the first computing device 48 opens an e-commerce website 94 associated with the second computing device 50 via an internet browser application 92 and a network connection. After initiating an interaction (e.g., adding an item to an online cart), a checkout area of ​​the website displays a second portion of code 66 generated by the network computing device based on the interaction.

[0144] As another example, a user of the first computing device 48, via an Internet browser application 92 and a network connection, opens a website 94 to access an email. The email displays a second portion of code 66 that was generated by the network computing device based on the interaction with the second computing device 50.

[0145] The image processing module of the network application 54 may automatically detect the portion of the code displayed in another application of the first computing device 48 and automatically open the network application 54 of the first computing device to show the detected portion of the code in the viewfinder / display area 84. Alternatively, the user of the first computing device 48 may screenshot or otherwise copy the second portion 66 of the code and save it in memory of the first computing device 48 (e.g., photo storage, network application memory, etc.), where the user may later upload the saved portion to the network application as desired. As another option, when a portion of the code is detected via the image processing module of the network application 54, the user of the first computing device 48 may be queried as to whether to copy / upload the detected portion of the code to the network application 54 of the device (as shown).

[0146] When the second portion of code 66 is uploaded, the network application 54 is opened (e.g., automatically or manually) and the second portion of code 66 is created in a viewfinder / display area 84 of the first computing device 48. The first computing device 48 receives the first portion of code 64 from the network computing device, which represents an interaction with the second computing device 50. The first portion of code 64 is displayed in a code display area 86 of the first computing device 48.

[0147] 10B, a user of the first computing device 48 drags a first portion 64 of the code into the viewfinder / display area 84 to align it with a second portion 66 of the code. Once aligned, the user "drops" (e.g., releases) the first portion 64 of the code into the viewfinder / display area 84, creating the complete code. The viewfinder / display area 84 is operable to capture the complete code when correctly aligned and communicate the successful alignment and the complete code to the networked computing device.

[0148] The network computing device then completes the interaction (e.g., connects with the second computing device to complete the payment). Once the alignment is successful and the interaction is completed, a message appears notifying the user of the first computing device 48 that the interaction is complete. Additional options or messages, such as a "Return to Website" option, may be displayed in the code display area 86. The "Return to Website" option exits the network application 54 and returns to the last visited website page.

[0149] 11A-11B are schematic block diagrams of an example of a drag-and-drop alignment feature with biometric scanning. FIGs. 11A-11B operate similarly to FIGs. 8A-8B, except that additional security, such as a biometric scan to verify identity, is requested by one or more of the first and second computing devices based on the type of interaction between the first and second computing devices. For example, the interaction is an event or airline ticket that requires ID to pass through a security checkpoint.

[0150] 11A , the first computing device 48 displays a first portion 64 of the code in a viewfinder / display area 84 of the first computing device 48. The second computing device 50 scans the viewfinder / display area 84 of the first computing device 48 using a rear optical scanner 88 (e.g., a smartphone camera application) of the second computing device 50. The first portion 64 of the code is displayed in the viewfinder / display area 84 of the second computing device 50.

[0151] The second computing device 50 receives the second portion of the code 66 from the network computing device. The second portion of the code 66 is displayed in a code display area 86 of the second computing device 50. Based on the information in the first portion of the code 64 detected by an image processing module of the network application or a message received from the network computing device regarding the interaction, the second portion of the code 66 is locked to a user of the second computing device 50. In order to unlock the second portion of the code 66 for use, the user of the second computing device must verify their identity by performing a biometric scan.

[0152] The biometric scan may include a fingerprint scan (e.g., using the front optical scanner 90 of the second computing device 50), a retina and / or facial identification scan, and / or any other identifying characteristic scan. The network application 54 stores the identity of the user of the second computing device (e.g., a user who performs a biometric scan as part of the setup of the network application 54), such that when the identifying characteristic is recognized, the user's identity is confirmed.

[0153] 11B shows an example where the biometric scan is a facial identification (ID) scan using the front optical scanner 90 of the second computing device 50. The user is asked to center their face in the viewfinder / display area 84 to complete the scan. If confirmed, the second portion 66 of the code is unlocked and the user of the second computing device 50 can drag and drop the second portion 66 of the code into the viewfinder / display area 84 to align it with the first portion 64 of the code and complete the interaction as described in the previous figures.

[0154] 12 is a flow chart of an example of a method for drag-and-drop alignment functionality of a multi-part code system. The method begins at step 96, where a first computing device of the multi-part code system obtains a second portion of a code associated with a second computing device of the multi-part code system. For example, the first computing device scans a display of the second computing device via an optical scanner and retrieves a scanned image of the second portion of the code. As another example, the first computing device takes a screenshot and / or saves the second portion of the code from a website or email opened on an internet browser application of the first computing device.

[0155] The method continues at step 98, where the first computing device displays the second portion of the code in a viewfinder / display area of ​​the interactive display of the network application. For example, a user of the first computing device scans the second portion of the code while the network application is open, and the network application displays the second portion of the code in the viewfinder / display area. As another example, a user of the first computing device selects the second portion of the code from storage or another application for uploading and displaying in the viewfinder / display area of ​​the network application. As another example, when the second portion of the code is detected in storage or another application (e.g., the network application accesses photo storage of the first computing device so that a screenshot of the code or portion of the code can be detected for immediate use), the network application automatically opens and displays the second portion of the code in the viewfinder / display area.

[0156] The network application associates the first computing device with a network computing device of the multi-part code system. The network application includes an image processing module including image processing and encoding / decoding circuitry for analyzing image data that has been optically scanned (e.g., via an optical scanner) and stored (e.g., a screenshot of the code, the code stored in memory) or otherwise detected, such as a graphically coded representation of the data.

[0157] The method continues at step 100, where the first computing device receives a first portion of code for display in a code display area of ​​the interactive display. The network computing device generated the first and second portions of code for interaction between the first computing device and the second computing device. For example, the network computing device generated the code based on interaction information from one or more of the first and second computing devices and divided the code to create the first and second portions of code. As another example, the network computing device generated the second portion of code based on second interaction information of the interaction information received from the second computing device, and then generated the first portion of code based on the first interaction information of the interaction information received from the first computing device and the second portion of the code scanned by the first computing device.

[0158] The method continues at step 102, where a user of the first computing device drags a first portion of the code from the code display area into the viewfinder / display area to align the first portion of the code with a second portion of the code. The method continues at step 104, where once the first portion of the code is aligned with the second portion of the code, the user drops the first portion of the code into the viewfinder / display area to optically create a complete code.

[0159] The method continues at step 106, where the first computing device sends an interaction completion notification to the network computing device. For example, the viewfinder / display area is operable to capture the complete code when correctly aligned and communicate successful alignment and the complete code to the network computing device.

[0160] 13A-13B are schematic block diagrams of an example of a transfer to alignment function of a multi-part code system including a first computing device 48 and a second computing device 50. The first computing device 48 and the second computing device 50 include a network application ("app") 54 and one or more optical scanners 88-90. The network application 54 associates the respective devices with the network computing devices. The network application 54 includes an image processing module that includes image processing and encoding / decoding circuitry for analyzing image data that has been optically scanned (e.g., via the optical scanners 88-90) and saved (e.g., screenshot of the code, code stored in memory) or otherwise detected, such as a graphically coded representation of the data.

[0161] When opened on a device, the network application 54 displays an interactive display area featuring a code display area 86 and a viewfinder / display area 84. In this example, the interactive display areas of the first computing device 48 and the second computing device 50 are touchscreen displays; however, when using the move and align functionality, a touchscreen display is not required to complete the interaction. The code display area 86 displays code portions generated by the network computing device and is for private use by the user of the device.

[0162] The viewfinder / display area 84 displays images captured by the optical scanners 88-90, images selected from the code display area 86 for display, and images selected for upload from device storage and / or other device applications (e.g., screenshots from websites, images stored in device memory (e.g., camera roll or photo albums), images from saved emails, etc.). The viewfinder / display area 84 is operable, through the image processing and encoding / decoding circuitry of the network application 54, to recognize, capture, and detect optically created codes aligned within the viewfinder / display area 84.

[0163] 13A, the first computing device 48 receives a first portion of the code 64 from a networked computing device. The first portion of the code 64 is displayed in a code display area 86 of the first computing device 48. A user of the first computing device 48 selects an option in the code display area 86 to display the first portion of the code 64 in the viewfinder / display area 84 of the first computing device 48. In embodiments in which the first computing device is not a touchscreen device, the first portion of the code 64 may be displayed automatically.

[0164] The second computing device 50 receives the second portion of the code 66 from the networked computing device. The second portion of the code 66 is displayed in a code display area 86 of the second computing device 50. A user of the second computing device 50 selects an option in the code display area 86 to display the second portion of the code 66 in the viewfinder / display area 84 of the second computing device 50. In embodiments in which the second computing device is not a touchscreen device, the second portion of the code 66 may be displayed automatically.

[0165] FIG. 13B shows an example in which the first computing device 48 is placed near (e.g., above and within a scannable range of) the second computing device 50 so that the rear optical scanner 88 of the first computing device 48 scans the viewfinder / display area 84 of the second computing device 50 to capture the second portion 66 of the code for display in the viewfinder / display area 84 of the first computing device 48.

[0166] While continuing to scan the viewfinder / display area 84 of the second computing device 50 to display the second portion 66 of the code, the user of the first computing device 48 moves the first computing device 48 until the scanned image of the second portion 66 of the code displayed in the viewfinder / display area 84 is aligned with the first portion 64 of the code. For example, the first portion 64 of the code is displayed in a fixed position in the viewfinder / display area 84 of the first computing device 48. Moving the first computing device 48 moves the rear optical scanner 88 of the first computing device 48, which causes the scanned image of the second portion 50 of the code to move on the viewfinder / display area 84 of the first computing device 48.

[0167] The viewfinder / display area 84 of the first computing device 48 is operable to capture the complete code when the portions are correctly aligned and communicate the successful alignment and the complete code to the network computing device. The network computing device then completes the interaction. Upon successful alignment and completion of the interaction, a message appears notifying the user of the first computing device 48 that the interaction is complete.

[0168] 14A-14B are schematic block diagrams of an example of a moving alignment and scaling function of a multi-part code system including a first computing device 48 and a second computing device 50. FIG. 14A is similar to the example of FIGS. 13A-13B, except that the viewfinder / display area 84 of the first computing device 48 includes an alignment window 108, and the viewfinder / display area 84 of the second computing device 50 is smaller than the viewfinder / display area 84 of the first computing device 48. When the rear optical scanner 88 of the first computing device 48 scans the viewfinder / display area 84 of the second computing device 50, the second portion 66 of the code is too small to be properly aligned with the first portion 64 of the code.

[0169] The image processing module of the network application 54 automatically scales the second portion of the code 66 within an alignment window 108 of the viewfinder / display area 84 of the first computing device 48. The size of the alignment window 108 depends on the dimensions of the first portion of the code 64. In another embodiment, a user of the first computing device manually scales the second portion of the code 66 to the size of the alignment window 108 via a touch command (e.g., two-finger touch and zoom).

[0170] With the second portion of the code 66 scaled to the alignment window 108, a user of the first computing device 48 can move the first computing device 48 until the scanned image of the second portion of the code 66 displayed in the alignment window 108 is aligned with the stationary first portion of the code 64. For example, the alignment window 108 moves with the second portion of the code 66 to maintain correct scaling as the first computing device 48 moves.

[0171] Figure 14B is similar to the example of Figure 14A, except that the viewfinder / display area 84 of the second computing device 50 is larger than the viewfinder / display area 84 of the first computing device 48. When the rear optical scanner 88 of the first computing device 48 scans the viewfinder / display area 84 of the second computing device 50, the second portion 66 of the code is too large to be properly aligned with the first portion 64 of the code.

[0172] The image processing module of the network application 54 automatically scales the second portion of the code 66 within the alignment window 108 of the viewfinder / display area 84 of the first computing device 48. In another embodiment, a user of the first computing device manually scales the second portion of the code 66 to the size of the alignment window 108 via a touch command (e.g., two-finger touch and zoom out).

[0173] With the second portion of the code 66 scaled into the alignment window 108, the user of the first computing device 48 can move the first computing device 48 until the scanned image of the second portion of the code 66 displayed in the alignment window 108 is aligned with the stationary first portion of the code 64. The alignment window 108 moves with the second portion of the code 66.

[0174] 15 is a flow chart of an example method for a move and align function of a multi-part code system. The method begins at step 110, where a first computing device of the multi-part code system receives a first portion of a code from a network computing device of the multi-part code system via a network application. The network application associates the first computing device with the network computing device of the multi-part code system.

[0175] The network application includes an image processing module including image processing and encoding / decoding circuitry for analyzing image data that has been optically scanned (e.g., via an optical scanner) and saved (e.g., a screenshot of the code, the code stored in memory), or otherwise detected, such as a graphically coded representation of the data. The network computing device generated a first portion of the code for interaction between the first computing device and the second computing device.

[0176] The method continues at step 112, where the first computing device displays a first portion of the code in a viewfinder / display area of ​​the interactive display of the network application for the move and align function. For example, the first portion of the code is displayed in a code display area of ​​the interactive display of the network application. A user of the first computing device selects the first portion of the code from the code display area for the move and align function, where the selection causes the first portion of the code to be displayed in the viewfinder / display area of ​​the first computing device. As another example, the first portion of the code is automatically displayed in the viewfinder / display area of ​​the first computing device based on the interaction information (e.g., the first portion of the code was generated specifically for the move and align function).

[0177] The method continues at step 114, where the user positions an optical scanner (e.g., a smartphone back camera) of the first computing device near a viewfinder / display area of ​​an interactive display of the network application of the second computing device. The second computing device displays a second portion of the code in the viewfinder / display area. The network computing device has generated the second portion of the code for interaction between the first computing device and the second computing device.

[0178] Positioning the first computing device causes the second portion of the code to be scanned and displayed in a viewfinder / display area of ​​the first computing device. Displaying the second portion of the code may include scaling the second portion of the code into the alignment window such that the first and second portions of the code are properly sized for alignment. The method continues at step 116, where the user positions the first computing device near the second computing device such that the first and second portions of the code are aligned in the viewfinder / display area of ​​the first computing device.

[0179] The method continues at step 118, where the first computing device sends an interaction completion notification to the network computing device. For example, the viewfinder / display area is operable to capture a complete code when the first and second portions are correctly aligned and communicate successful alignment and the complete code to the network computing device.

[0180] Figure 16 is a schematic block diagram of an example of a move to align function of a multi-part code system including a first computing device 48 and a second computing device 50. Figure 16 operates similarly to Figures 13A-15, except that the first computing device 48 uses the viewfinder / display area of ​​the second computing device 50 for alignment reference to complete the move to align function, and the viewfinder / display area of ​​the second computing device 50 captures the complete code.

[0181] In one example of operation, the first computing device 48 receives the first portion of the code 64 from the network computing device. The first portion of the code 64 is displayed in a code display area 86 of the first computing device 48. A user of the first computing device 48 selects an option to display the first portion of the code 64 in the viewfinder / display area 84 of the first computing device 48. In another embodiment, the first portion of the code 64 may be automatically displayed in the viewfinder / display area 84 of the first computing device 48 for move and align functionality.

[0182] The second computing device 50 receives the second portion of the code 66 from the networked computing device. The second portion of the code 66 is displayed in a code display area 86 of the second computing device 50. A user of the second computing device 50 selects an option in the code display area 86 to display the second portion of the code 66 in a viewfinder / display area 84 of the second computing device 50. In another embodiment, the second portion of the code 66 may be automatically displayed in the viewfinder / display area 84 of the second computing device 50 for move and align functionality.

[0183] The first computing device 48 is placed near the second computing device 50 (e.g., above and stopped within a scannable range) and is placed face-down (e.g., with the viewfinder / display area 84 facing the viewfinder / display area 84) so ​​that the front optical scanner 90 of the second computing device 50 scans the viewfinder / display area 84 of the first computing device 50 and the first portion 64 of the scanned code is displayed in the viewfinder / display area 84 of the second computing device 50.

[0184] While continuing to scan the viewfinder / display area 84 of the first computing device 48 to display the scanned first portion 64 of the code, the user of the first computing device 48 moves the first computing device 48 until the scanned image of the first portion 64 of the code is aligned with the second portion 66 of the code (e.g., the user is looking at the viewfinder / display area 84 of the second computing device 50 for reference).

[0185] For example, the second portion 66 of the code is displayed at a fixed location in the viewfinder / display area 84 of the second computing device 50. Moving the first computing device 48 moves the way in which the front optical scanner 90 of the second computing device 50 scans the first portion 64 of the code, which causes the scanned image of the first portion 48 of the code to move on the viewfinder / display area 84 of the second computing device 50.

[0186] The viewfinder / display area 84 of the second computing device 50 is operable to capture the complete code when the portions are correctly aligned and communicate the successful alignment and the complete code to the network computing device. The network computing device then completes the interaction. Upon successful alignment and completion of the interaction, a message appears notifying one or more users of the first computing device 48 and the second computing device 50 that the interaction is complete.

[0187] As one specific example, the first portion of the code 64 is a first portion of the ticket (e.g., airline ticket, concert ticket, sporting event ticket, etc.) and the second portion of the code 66 is a second portion of the ticket. When the first and second portions of the code are aligned, the ticket is validated. The second portion of the code 66 can be general and the first portion of the code 64 can be specific to the ticketing information. For example, the second computing device 50 is a ticket scanning device of a Transportation Security Administration (TSA) agent that generates a new portion of the code for each passenger. The portions of the code are unique with respect to time-varying information (e.g., timestamp, agent identification, etc.) but encompass general information such as the airport, security line, etc. that is presented to each passenger.

[0188] The first part of the code contains unique information that represents the user of the first computing device 48 ticket information. However, the ticket information in the first part of the code cannot be individually scanned and read (e.g., if the first computing device 48 is stolen, the first part of the code will not become readable information). The information can only be read correctly if the two parts of the code are aligned. The smartphone (first computing device 48) is placed face down on the agent's ticket scanning device (second computing device 50) and the smartphone user aligns the parts by shifting the smartphone and by viewing the display of the agent's ticket scanning device to determine exactly when the parts are aligned. Further security features such as biometric scanning may be used before displaying the parts of the code to either party.

[0189] For example, the first computing device 48 is a smartphone and the second computing device 50 is a ticket scanning device of a Transportation Security Administration (TSA) agent. The second computing device 50 requests a biometric scan (e.g., a fingerprint scan, a facial identification scan, etc.) before generating the second part of the code. Information obtained in the biometric scan is used to generate the second part of the code. The user of the first computing device may then be required to perform another biometric scan to unlock the first part of the code, or the first part of the code includes biometric information to align with the second part of the code. In this scenario, the person attempting to align the parts of the code must have a verifiable identity linked to the coded information in order to align the parts.

[0190] Figure 17 is a schematic block diagram of an example of a move and align and scale function of a multi-part code system including a first computing device 48 and a second computing device 50. Figure 17 operates similarly to Figure 16, except that the viewfinder / display area 84 of the second computing device 50 includes an alignment window 108, and the viewfinder / display area 84 of the first computing device 48 is smaller than the viewfinder / display area 84 of the second computing device 50.

[0191] Figure 17 scales the portions of the code similarly to the example of Figure 14A, except that the front optical scanner 90 of the second computing device 50 scans the viewfinder / display area 84 of the first computing device 48. In this example, the first portion 64 of the code is too small to be properly aligned with the second portion 66 of the code.

[0192] The image processing module of the network application 54 automatically scales the first portion of the code 64 within an alignment window 108 of the viewfinder / display area 84 of the second computing device 50. The size of the alignment window 108 depends on the dimensions of the second portion of the code 66. In another embodiment, a user of the first or second computing device manually scales the first portion of the code 64 to the size of the alignment window 108 via a touch command (e.g., two-finger touch and zoom) made on the alignment window of the second computing device 50.

[0193] With the first portion of the code 64 scaled into the alignment window 108, a user of the first computing device 48 can move the first computing device 48 until the scanned image of the first portion of the code 64 displayed in the alignment window 108 is aligned with the stationary second portion of the code 66. The alignment window 108 moves with the first portion of the code 64.

[0194] When the front optical scanner 90 of the second computing device 50 scans the viewfinder / display area 84 of the first computing device 48 and the first portion of the code 64 is too large to properly align with the second portion of the code 66, a similar process occurs to automatically or manually scale the first portion of the code 64 that is too large in the alignment window 108 of the second computing device 50.

[0195] 18 is a flow chart of an example method for a move and align function of a multi-part code system. The method begins at step 122, where a first computing device of the multi-part code system receives a first portion of a code from a network computing device of the multi-part code system via a network application. The network application associates the first computing device with the network computing device of the multi-part code system.

[0196] The network application includes an image processing module including image processing and encoding / decoding circuitry for analyzing image data that has been optically scanned (e.g., via an optical scanner) and saved (e.g., screenshot of a code, code stored in memory) or otherwise detected, such as a graphically coded representation of data. The network computing device generated a first portion of code for interaction between the first computing device and a second computing device. The network computing device generated a first portion of code for interaction between the first computing device and a second computing device.

[0197] The method continues at step 124, where the first computing device displays a first portion of the code in a viewfinder / display area of ​​the interactive display of the network application for the move and align function. For example, the first portion of the code is displayed in a code display area of ​​the interactive display of the network application. A user of the first computing device selects the first portion of the code from the code display area for the move and align function, where the selection causes the first portion of the code to be displayed in the viewfinder / display area of ​​the first computing device. As another example, the first portion of the code is automatically displayed in the viewfinder / display area of ​​the first computing device based on the interaction information (e.g., the first portion of the code was generated specifically for the move and align function).

[0198] The method continues at step 126, where the user positions the viewfinder / display area of ​​the first computing device near the optical scanner of the second computing device. For example, the second computing device includes a front optical scanner (e.g., a camera) on the same surface as the viewfinder / display area of ​​the second computing device. The user of the first computing device flips the first computing device over so that the viewfinder / display area of ​​the first computing device faces the viewfinder / display area and the front optical scanner of the second computing device. The second computing device displays the second portion of the code in the viewfinder / display area of ​​the second computing device. The network computing device has generated the second portion of the code for interaction between the first computing device and the second computing device.

[0199] Positioning the first portion of the code scans and displays the first portion of the code in a viewfinder / display area of ​​the second computing device. Displaying the first portion of the code may include scaling the first portion of the code into an alignment window of the viewfinder / display area of ​​the second computing device such that the first and second portions of the code are correctly sized. The method continues at step 128, where the user positions the first computing device near the second computing device such that the first and second portions of the code are aligned in the viewfinder / display area of ​​the second computing device to create the code.

[0200] The method continues at step 130, where the second computing device sends an interaction completion notification to the network computing device. For example, the viewfinder / display area of ​​the second computing device is operable to capture the complete code when correctly aligned and communicate successful alignment and the complete code to the network computing device.

[0201] 19A-19C are schematic diagrams of an example of selecting a code portion option for interaction. FIGURES 19A-19C operate similarly to the example drag-and-drop alignment functionality of FIGURES 8A-10B, except that in FIGURES 19A-19C, multiple code portion options are presented on second computing device 50 for dragging and dropping with first portion of code 64.

[0202] 19A, a first computing device 48 receives a first portion of the code 64 from a networked computing device. The first portion of the code 64 is displayed in a code display area 86 of the first computing device 48. A user of the first computing device 48 selects an option to display the first portion of the code 64 in a viewfinder / display area 84 of the first computing device 48, allowing a user of the second computing device 50 to scan the first portion of the code 64.

[0203] A user of the second computing device 50 selects a scan option in the viewfinder / display area 84 of the second computing device 50 to scan the viewfinder / display area 84 of the first computing device 48 using the rear optical scanner 88 (e.g., a smartphone camera application) of the second computing device 50. In this example, the viewfinder / display area 84 of the first computing device 48 is scanned by the rear optical scanner 88 of the second computing device 50 and the first portion 64 of the code is displayed in the viewfinder / display area 84 of the second computing device 50.

[0204] The second computing device 50 receives a plurality of options 66-1 to 66-4 in the second portion of the code from the network computing device. The plurality of options 66-1 to 66-4 in the second portion of the code are displayed in a code display area 86 of the second computing device 50. For example, one option is the second portion of the code 66-1 that encompasses sufficient information to complete the interaction (e.g., includes "Interaction Information"). The other options 66-2 to 66-4 include additional personal information that the user of the second computing device 50 may choose to share.

[0205] For example, option 66-2 in the second portion of the code includes an email address, option 66-3 in the second portion of the code includes a phone number, and option 66-4 in the second portion of the code includes loyalty information (e.g., a customer loyalty identifier (ID, frequent flyer number, etc.)). Other examples include a known traveler identifier (ID) (e.g., TSA Pre-Check number), promotional / discount codes, a home address, a business address, security information (e.g., answers to security questions), a social security number, a driver's license number, social media account links, website links, etc. With multiple options, a user can decide how little or how much information they want to share in a particular interaction.

[0206] 19B, the user of the second computing device 50 drags the interaction information option 66-1 for the second portion of the code into the viewfinder / display area 84 to align it with the first portion of the code 64. Once aligned, the user "drops" (e.g., releases) the interaction information option 66-1 for the second portion of the code into the viewfinder / display area 84 to create the complete code. Because multiple options for the second portion of the code are available, the viewfinder / display area 84 displays a confirmation button to the user so that the user can indicate when the code should be captured.

[0207] In Figure 19C, the user of the second computing device 50 drags the royalty information option 66-3 of the second part of the code onto the interaction information option 66-1 of the second part of the code in the viewfinder / display area 84 to align it with the first part of the code 64. Once aligned, the user "drops" (e.g., releases touch) the royalty information option 66-3 of the second part of the code onto the viewfinder / display area 84 to create the complete code. In this example, the user does not want to include any additional information and selects the "Press to confirm" button in the viewfinder / display area 84.

[0208] The viewfinder / display area 84 is operable to capture the complete code when confirmation is received that the portions are correctly aligned and to communicate successful alignment and the complete code to the network computing device. The network application validates that the captured complete code encompasses at least the minimum information to complete the interaction. For example, a user may drag and drop only the email address option 66-2 of the second portion of the code and attempt to validate the complete code. The viewfinder / display area 84 is operable to capture the complete code and recognize that more information is needed. In that scenario, the user would be prompted to drag and drop more options until the complete code with the minimum information is captured.

[0209] Once a complete code with at least the minimum information to complete the interaction has been captured, the networked computing device then completes the interaction. Upon successful alignment and completion of the interaction, a message appears notifying the user of the second computing device 50 that the interaction is complete.

[0210] 20 is a flow chart of an example of a method for selecting a code portion option for interaction. The method begins at step 134, where a first computing device of a multi-part code system obtains a second portion of a code associated with a second computing device of the multi-part code system. For example, the first computing device scans a display of the second computing device via an optical scanner and retrieves a scanned image of the second portion of the code. As another example, the first computing device takes a screenshot and / or saves the second portion of the code from a website or email opened on an internet browser application of the first computing device.

[0211] The method continues at step 136, where the second computing device displays the first portion of the code in a viewfinder / display area of ​​an interactive display of the network application. For example, a user of the first computing device scans the second portion of the code while the network application is open, and the network application displays the second portion of the code in the viewfinder / display area. As another example, a user of the first computing device selects the second portion of the code from storage or another application for uploading and displaying in the viewfinder / display area of ​​the network application. As another example, when the second portion of the code is detected in storage or another application (e.g., the network application accesses photo storage of the first computing device so that a screenshot of the code or portion of the code can be detected for immediate use), the network application automatically opens and displays the second portion of the code in the viewfinder / display area.

[0212] The network application associates a second computing device with the network computing device of the multi-part code system. The network application includes an image processing module including image processing and encoding / decoding circuitry for analyzing image data that has been optically scanned (e.g., via an optical scanner) and saved (e.g., a screenshot of the code, the code stored in memory) or otherwise detected, such as a graphically coded representation of the data.

[0213] The method continues at step 138, where the second computing device receives a plurality of options of the second portion of code for display in the code display area of ​​the interactive display. The network computing device has generated the first portion of code and the plurality of options of the second portion of code for interaction between the first computing device and the second computing device.

[0214] The method continues at step 140, where a user of the second computing device drags a first option of the plurality of options for the second portion of the code from the code display area to the viewfinder / display area to align the first option with the first portion of the code, the first option of the plurality of options for the second portion of the code including the first information.

[0215] The method continues at step 142 where once the first option is aligned with the first portion of the code, the user drops the first option into the viewfinder / display area to create a complete code with a first level of information. Once the desired option has been dragged and dropped, the user confirms at step 144 that a complete code with the desired level of information has been created.

[0216] If the desired option has not been dragged and dropped and at step 144 the user has not confirmed that a complete code with the desired level of information has been created, the method continues at step 146 where the user continues dragging and dropping options. For example, a user of the second computing device drags a second option of the multiple options for the second portion of the code from the code display area to the viewfinder / display area to align the second option with the first portion of the code.

[0217] A second option of the plurality of options in the second portion of the code includes second information. Once the second option is aligned with the first portion of the code, the user drops the second option into the viewfinder / display area to create a complete code with a second level of information. The second level of information includes the first information and the second information. Once the desired amount of options of the plurality of options in the second portion of the code have been dropped and dragged, the user of the second computing device confirms in step 144 that the created code is the last.

[0218] The method continues at step 148 where the network application verifies that there is minimum information in the created code to complete the interaction. If the created code does not have the minimum information present to complete the interaction, the method branches to step 146 where the user is prompted to drag and drop more options. In one embodiment, after sufficient information has been added, the network application may automatically verify that a complete code with sufficient information has been created and therefore may skip steps 144 and 148 and continue to 150 to complete the interaction.

[0219] If the created code has the minimum information present to complete the interaction, the method continues to step 150 where the second computing device sends an interaction completion notification to the network computing device. For example, the viewfinder / display area of ​​the network application is operable to capture the complete code when correctly aligned and communicate successful alignment and the complete code to the network computing device.

[0220] Figures 21A-21B are schematic diagrams of an example of selecting one of a plurality of code portion options for interaction. Figures 21A-21B operate similarly to Figures 19A-19C, except that a user selects a desired one of a plurality of code portion options that encompass various levels of information.

[0221] 21A, the first computing device 48 receives a first portion of the code 64 from a networked computing device. The first portion of the code 64 is displayed in a code display area 86 of the first computing device 48. A user of the first computing device 48 selects an option in the code display area 86 to display the first portion of the code 64 in a viewfinder / display area 84 of the first computing device 48, allowing a user of the second computing device 50 to scan the first portion of the code 64.

[0222] A user of the second computing device 50 selects a scan option in the viewfinder / display area 84 of the second computing device 50 to scan the viewfinder / display area 84 of the first computing device 48 using an optical scanner (e.g., a smartphone camera application) of the second computing device 50. In this example, the viewfinder / display area 84 of the first computing device 48 is scanned by the rear optical scanner 88 of the second computing device 50 and the first portion 64 of the code is displayed in the viewfinder / display area 84 of the second computing device 50.

[0223] The second computing device 50 receives a plurality of options 66-1 and 66-2 of the second portion of the code from the network computing device. The plurality of options 66-1 (i.e., option "A") and 66-2 (i.e., option "B") of the second portion of the code encompass different levels of information. For example, option A is a second portion of the code that encompasses enough information to complete an interaction, and option B includes all of the information in option A plus additional personal information such as an email address. The plurality of options 66-1 and 66-2 of the second portion of the code are displayed in a code display area 86 of the second computing device 50.

[0224] In FIG. 21B, the user of the second computing device 50 selects the second portion of the code 66-2 (i.e., option B, which is the second portion of the code that contains more information than option A) and drags the second portion of the code 66-2 into the viewfinder / display area 84 so that it aligns with the first portion of the code 64. Once aligned, the user "drops" the second portion of the code 66-2 (e.g., releases touch) into the viewfinder / display area 84, creating the complete code. In comparison to the examples of FIGS. 19A-19C, no confirmation step is required to ensure that the desired portion has been selected or to ensure that the created code contains the minimum information to complete an interaction.

[0225] The viewfinder / display area 84 is operable to capture the complete code when the portions are correctly aligned and communicate the successful alignment and the complete code to the networked computing device. The networked computing device then completes the interaction. Upon successful alignment and completion of the interaction, a message appears notifying the user of one or more of the first computing device 48 and the second computing device 50 that the interaction is complete.

[0226] FIG. 22 is a schematic diagram of another example of selecting one code portion option of a plurality of code portion options for interaction. FIG. 22 is similar to FIGS. 21A-21B in that a plurality of code portion options are generated for interaction between a first computing device and a second computing device, and one option is selected for alignment. However, FIG. 22 depicts an example of selecting a desired code portion option for a move and align function, as opposed to the drag and drop alignment function of the preceding figures. The move and align function is discussed in more detail with reference to FIGS. 13A-18.

[0227] In FIG. 22, the first and second computing devices are sent multiple code portion options from the network computing device for interaction between the first computing device 48 and the second computing device 50. In another embodiment, multiple code portion options are sent to either the first or second computing device, and only one portion of the code (i.e., only one option) is sent to the other. In this example, the first computing device receives a first option 64-1 (i.e., option "A") of the multiple options of the first portion of the code and a second option 64-2 (i.e., option "B") of the multiple options of the first portion of the code. The multiple options of the first portion of the code contain different levels of information. For example, option A is a first portion of the code that contains enough information to complete the interaction when aligned with the second portion of the code, and option B contains all of the information of option A plus additional personal information such as an email address.

[0228] A first and second option 64-1 and 64-2 of the plurality of options of the first portion of the code are displayed in a code display area 86 of the first computing device 48. A user of the first computing device 48 selects an option in the code display area 86 for display in the viewfinder / display area 84 of the first computing device 48. For example, the user selects option 64-1 (i.e., option "A") of the first portion of the code for display in the viewfinder / display area 84 of the first computing device 48 and engages a move and align function.

[0229] The second computing device receives a first option 66-1 (i.e., option "A") of the multiple options in the second portion of the code and a second option 66-2 (i.e., option "B") of the multiple options in the second portion of the code. The multiple options in the second portion of the code encompass different levels of information. For example, option A is a second portion of the code that includes enough information to complete an interaction with the first portion of the code, and option B includes all of the information in option A plus additional personal information such as an email address.

[0230] Options 66-1 and 66-2 of the second portion of the code are displayed in the code display area 86 of the second computing device 50. A user of the second computing device 50 selects an option in the code display area 86 for display in the viewfinder / display area 84 of the second computing device 50. For example, the user selects option 66-2 (i.e., option "B") of the second portion of the code for display in the viewfinder / display area 84 of the second computing device 50 and engages a move and align function. The move and align function occurs similarly to the example of either FIG. 13B (where the rear optical scanner of one device scans the viewfinder / display area 84 of the other device) or FIG. 16 (where the front optical scanner of one device scans the viewfinder / display area 84 of the other device).

[0231] 23 is a flow chart of an example method for selecting one code portion option of a plurality of code portion options for interaction. The method begins at step 154, where a first computing device of a multi-part code system receives a plurality of options for a first portion of code for display in a code display area of ​​an interactive display area of ​​a network application of the first computing device.

[0232] A network application associates a first computing device with a network computing device of the multi-part code system. The network application includes an image processing module including image processing and encoding / decoding circuitry for analyzing image data that has been optically scanned (e.g., via an optical scanner) and saved (e.g., screenshot of the code, code stored in memory) or otherwise detected, such as a graphically coded representation of the data. The network computing device has generated multiple options of the first part of the code and the second part of the code for interaction between the first computing device and the second computing device.

[0233] In another embodiment, the network computing device generated a plurality of options for a first portion of code and a plurality of options for a second portion of code for interaction between a first computing device and a second computing device, and the second computing device selected and presented a desired option of the second portion of code to the first computing device.

[0234] The multiple options of the first portion of the code individually include sufficient information to complete an interaction when aligned with the second portion of the code, but different portion options include different levels of additional information. For example, a first option of the multiple options of the first portion of the code includes first information (e.g., the minimum information to complete the interaction) and a second option of the multiple options of the first portion of the code includes second information. The second information includes the first information and additional information (e.g., an email address, customer loyalty information, a phone number, etc.).

[0235] The method continues at step 156, where the user of the first computing device selects a desired option of the multiple options of the first portion of the code from the code display area for an alignment function based on a desired level of information the user wishes to share in the interaction. The alignment function can be a drag-and-drop alignment or a move-and-align function. If the alignment function is a drag-and-drop alignment, the first computing device captures (e.g., via a back optical scanner) the second portion of the code in the viewfinder / display area of ​​the first computing device. If the alignment function is a move-and-align function, the user selects a desired option of the multiple options of the first portion of the code from the code display area for display in the viewfinder / display area of ​​the first computing device.

[0236] The method continues at step 158, where a desired option of the plurality of options of the first portion of the code is aligned with the second portion of the code via an alignment function to create a code having a desired level of information. If the alignment function is a drag-and-drop alignment, the user of the first computing device drags the desired option into the viewfinder / display area to align it with the second portion of the code and drops the desired option within the viewfinder / display area of ​​the first computing device to create a code having a desired level of information.

[0237] If the alignment function is a move and align function, the user of the first computing device positions the first computing device near the second computing device to align the desired option with the second portion of the code, for example, by using the rear optical scanner of the first computing device to scan the viewfinder / display area of ​​the second computing device to capture the second portion of the code, and then the user of the first computing device moves the first computing device to align the displayed desired option with the second portion of the code captured in the viewfinder / display area of ​​the first computing device.

[0238] As another example, after a front optical scanner of the second computing device is used to scan the viewfinder / display area of ​​the first computing device to capture a desired option, a user of the first computing device moves the first computing device to align the desired option captured in the viewfinder / display area of ​​the second computing device with a second portion of the code displayed in the viewfinder / display area of ​​the second computing device.

[0239] The method continues at step 160 where an interaction completion notification is sent to the networked computing device. For example, when the portions are precisely aligned, the device capturing the generated code with the desired level of information (e.g., the first or second computing device, depending on the alignment function) communicates the successful alignment and the generated code to the networked computing device.

[0240] 24 is a schematic block diagram of one embodiment of a multi-source, multi-part code system 162, including a network computing device 46, a plurality of source computing devices 166-1 through 166-n, a destination computing device 164, and an interface means 52. FIG. 24 is similar to the multi-part code system of FIG. 3, except that instead of one device (e.g., a first computing device) interacting with another device (e.g., a second computing device), here multiple source computing devices 166-1 through 166-n are involved in an interaction 60 with the destination computing device 164.

[0241] For example, the plurality of source computing devices 166-1 through 166-n may be consumer smart phones, the destination computing device 164 may be a merchant point-of-sale (POS) device, and the interaction 60 may be a payment installment from the source computing device to the destination computing device. As another example, the plurality of source computing devices 166-1 through 166-n may be smart phones operated by a couple or business partners, the destination computing device 164 may be a computing device operated by an individual or entity, and the interaction 60 may be the signing of a contract.

[0242] In one example of operation, network computing device 46 receives interaction information (“information”) 62 from one or more of source computing devices 166-1-166-n and destination computing devices 164. The interaction information 62 relates to an interaction 60 between source computing devices 166-1-166-n and destination computing device 164.

[0243] For example, interaction 60 may be a payment transaction in which a source computing device 166-1-166-n is paying a destination computing device 164 for goods or services. One or more of source computing devices 166-1-166-n transmits interaction information 62 to network computing device 46 (e.g., via network app 54, where network app 54 is a digital wallet application), such as a source computing device identifier (ID), the payment amount, the desired currency and / or payment method to be used, customer loyalty information, promotional codes, a billing address, etc.

[0244] The destination computing device 164 sends interaction information 62, such as a destination computing device 164 identifier (e.g., merchant ID), payment amount, form of desired payment method, discounts offered, etc., to the network computing device 46 (e.g., via the network app 54). A multi-part code generation module 56 of the network computing device 46 generates multiple source portions 168-1 to 168-n of the code and a destination portion 170 of the code, such that the source and destination portions of the code cannot be used individually.

[0245] By aligning the destination code portion 170 with the multiple source code portions 168-1 to 168-n, a code representative of the interaction information 62 is optically created. An image processing module of one or more of the network applications 54 of the source computing devices 166-1 to 166-n and the destination computing device 164 are operable to detect, capture, and process the optically created code.

[0246] Network computing device 46 transmits source portions of code 168-1 through 168-n to respective source computing devices 166-1 through 166-n and transmits destination portions of code 170 to destination computing device 164. Source portions of code 168-1 through 168-n must be aligned with destination portions of code 170 through an alignment function of network application 54 such that a complete code indicating the intent to complete interaction 60 is optically created.

[0247] The network computing device 46 continues to track the optically created code through an alignment function such that the interaction 60 is incomplete until all source portions 168-1 through 168-n of the code are precisely aligned with the destination portions 170 of the code. Alignment of portions of a code is discussed in more detail with reference to Figures 8A-18 and 24A-24E.

[0248] Alternatively, a source computing device 166-1 may be able to complete a particular portion of an interaction between the source computing device 166-1 and a destination computing device while another source computing device 166-2 is still in the process of completing the interaction between the source computing device 166-2 and the destination computing device. Although the overall interaction is incomplete until all source portions 168-1 to 168-n of the code are precisely aligned with the destination portion 170 of the code, the source computing device 166-1 receives notification that the interaction is complete since it does not need to perform any further action.

[0249] For example, if the interaction is signing a contract, the user of the source computing device 166-1 performs an alignment function to complete the interaction indicating signing the contract. The user of the source computing device 166-1 receives notification that the signing was successful, but the contract is not complete until the user's spouse or business partner also performs an alignment function to complete the interaction indicating signing the contract.

[0250] As another example, if the interaction is a split payment, the user of the source computing device 166-1 performs a align function to complete the interaction indicating paying a portion of the payment. The user of the source computing device 166-1 receives notification that the align function was successful, but the payment is not withdrawn from the user's account until the full payment is confirmed (e.g., the other source computing devices perform a align function to complete the interaction indicating paying their device's portion of the payment). For example, if one or more of the other source computing devices do not perform a align function to complete the interaction indicating paying their device's portion of the payment, the user of the source computing device 166-1 may be notified to make more payments or to cancel the shared payment transaction.

[0251] Once source portions 168-1 through 168-n of the code are precisely aligned with destination portions 170 of the code, the optically created code is captured (e.g., via an image processing module of network application 54), and the code is confirmed to represent all of the information necessary to complete the interaction, interaction completion module 58 of network computing device 46 completes interaction 60. For example, interaction completion module 58 transfers an amount from an account associated with source computing device 166-1 through 166-n to an account associated with destination computing device 164.

[0252] If the optically created code is not captured (e.g., after a period of time has passed before alignment, due to an error, etc.), the network computing device 46 may implement one or more solutions. For example, the network computing device 46 generates and delivers new source and / or destination portions of the code after a period of time has passed before proper alignment (e.g., a new portion of the code is generated and transmitted every 30 seconds to 1 minute before alignment).

[0253] As another example, network computing device 46 notifies one or more of source computing devices 166-1 to 166-n and destination computing devices 164 regarding the alignment (e.g., a notification is sent to retry the alignment, a query as to whether to regenerate new code, a notification of an error associated with one or more of the source and destination portions of the code, a notification to devices that were unable to complete the alignment function to perform the alignment function, etc.).

[0254] 24A-24E are schematic block diagrams of an example of a multi-source, multi-part code. In FIG. 24A, a network computing device 46 receives interaction information 62 from a destination computing device 164 and source computing devices 166-1-166-2 (in this example, there are only two source computing devices 166-1-166-2). A multi-part code generation module 56 of the network computing device 46 generates a code 70 representing the interaction information 62.

[0255] Based on the number of source computing devices involved and the conditions of the interaction information 62, multi-part code generation module 56 divides the code 70 so that each device has a unique piece that fits together to create the complete code 70. Network computing device 46 sends destination portion 170 of the code to destination computing device 164 and sends source portions 168-1 to 168-2 of the code to corresponding source computing devices 166-1 to 166-2.

[0256] FIG. 24B is a continuation of the example of FIG. 24A, where source computing devices 166-1-166-2 perform an alignment function to align source portions 168-1-168-2 of the code with destination portions 170 of the code to create partial codes 182-1-182-2. Image processing techniques of network application 54 capture partial codes 182-1-182-2 and transmit the partial code information to network computing device 46. Interaction completion module 58 of network computing device 46 analyzes the received partial codes 182-1-182-2 to determine whether a complete code 70 is formed by the partial codes. Once a complete code is formed, the interaction is complete.

[0257] FIG. 24C is a continuation of the example of FIG. 24A, where source computing device 166-2 sends source portion 168-2 of its code to source computing device 166-1 (e.g., via email, Bluetooth, text message, optical scanning by source computing device 166-1, etc.). Source computing device 166-1 performs an alignment function to align source portions 168-1-168-2 of code with destination portion 170 of code. Network application 54 of source computing device 166-1 captures the complete created code to complete the interaction.

[0258] Figure 24D is a continuation of the example of Figure 24A, where source computing devices 166-1 and 166-2 perform a move and align function similar to the examples of Figures 16-18. The front optical scanner 90 of the destination computing device 164 scans the source portions 168-1-168-2 of the code from the viewfinder / display areas of the source computing devices 166-1-166-2 (e.g., the source and destination computing devices are placed display-to-display).

[0259] A user of the source computing device 166-1-166-2 moves the source computing device 166-1-166-2 to align the source portion of the code 168-1-168-2 with the destination portion of the code 170 in the viewfinder / display area 84 of the destination computing device 164. The network application 54 of the destination computing device 164 captures the complete created code to complete the interaction.

[0260] FIG. 24E is an example in which multipart code generation module 56 of network computing device 46 generates source portions 168-1 to 168-n of code that do not have a unique shape. For example, multipart code generation module 56 first generates destination portion 170 of code based on interaction information received from destination computing devices. At this point, multipart code generation module 56 does not know the number of source computing devices involved in the interaction. Multipart code generation module 56 generates destination portion 170 of code that has a particular shape that is independent of the number of source portions of the code.

[0261] Once the source computing device obtains the destination portion of the code 170, the source computing device sends further interaction information to the network computing device 46. Based on the further interaction information and the destination portion of the code 170, the multi-part code generation module 56 generates source portions of the code 168-1 to 168-n (e.g., to align with the shape of the destination portion of the code 170).

[0262] 25A-25E are schematic block diagrams of an embodiment of a multi-source, multi-part code system including source computing devices 166-1 and 166-2 and a destination computing device 164. FIGS. 25A-25C demonstrate an example of a split-bill interaction in which source computing devices 166-1-166-2 are payers and destination computing device 164 is a payee. For example, source computing devices 166-1-166-2 are smartphones used by patrons in a restaurant, and the destination computing device is a point-of-sale computing device (e.g., a register, tablet, etc.) used by restaurant employees to generate and settle bills. As another example, source computing devices 166-1-166-2 are smartphones used by consumers in a retail store, and the destination computing device is a point-of-sale computing device (e.g., a register, tablet, e-commerce platform, etc.) used to complete checkout.

[0263] 25A, network computing device 46 generates a destination portion of the code 170 based on the interaction information received from destination computing device 164 (e.g., merchant identifier (ID), desired payment method, amount due, item purchased, discount, etc.) and transmits it to destination computing device 164 via network application 54 of destination computing device 164. Destination computing device 164 displays destination portion of the code 170 on source computing devices 166-1-166-2 (e.g., for acquisition via optical scanning).

[0264] For example, destination computing device 164 displays destination portion 170 of code in viewfinder / display area 84 of destination computing device 164. As another example, destination computing device 164 prints destination portion 170 of code on a scannable surface (e.g., a paper receipt). In another example, destination computing device 164 delivers destination portion 170 of code to source computing devices 166-1-166-2 via an interface means such as a network connection (e.g., via email, text message, etc.).

[0265] In this example, the first source computing device 166-1 scans the destination portion 170 of the code (e.g., directly from the viewfinder / display area 84 of the destination computing device 164, from a receipt, etc.) (e.g., via a front or back optical scanner such as a smartphone camera application), thereby displaying the destination portion 170 of the code in the viewfinder / display area 84 of the first source computing device 166-1.

[0266] The first source computing device 166-1 activates the split the bill application in the network application 54. Once activated, the network application 54 waits for another device to scan or otherwise receive the destination portion 170 of the code.

[0267] 25B, the source computing device 166-2 scans the destination portion 170 of the code (e.g., via a front or back optical scanner such as a smartphone camera application) (e.g., directly from the viewfinder / display area 84 of the destination computing device 164, from a receipt, etc.) and displays the destination portion 170 of the code in the viewfinder / display area 84 of the source computing device 166-2. The source computing device 166-2 enables the Split the Bill application in the network application 54. Once enabled, the network application 54 generates a two devices detected message to the Split the Bill application and asks whether to proceed with splitting the bill.

[0268] The network application 54 is operable to detect devices for the split the bill application based on which device uploaded the destination portion 170 of the code. In this example, both the source computing device 166-1 and the source computing device 166-2 select the option to split the bill between the two devices. Alternatively, the source computing device 166-1 and the source computing device 166-2 wait for additional devices to be detected. If no other devices are detected after a certain time, an error message is sent indicating that the split the bill application is unavailable or to try again after a certain time.

[0269] 25C illustrates an alternative example in which the source computing device 166-2 is receiving the destination portion of the code 170. In this example, the source computing device 166-1 sends the destination portion of the code 170 to the source computing device 166-2 via a connection (e.g., a Bluetooth link, email, SMS text message, etc.). The source computing device 166-2 displays the destination portion of the code 170 in the viewfinder / display area 84 of the source computing device 166-2 (e.g., the source computing device 166-2 saves the destination portion of the code 170 for screenshotting and / or uploading to the network application 54).

[0270] The source computing device 166-2 enables the Split the Bill application in the network application 54. Once enabled, the network application 54 generates a message that two devices have been detected for the Split the Bill application and asks whether to proceed with splitting the bill. In this example, both the first source computing device 166-1 and the second source computing device 166-2 select the option to split the bill between the two devices. Alternatively, the first source computing device 166-1 and the second source computing device 166-2 wait for additional devices to be detected.

[0271] In Figure 25D, the network computing device generates a first source portion 168-1 of the code based on the interaction information and splits a payment to the destination computing device 164 equally with the second source computing device 166-2 based on the destination portion 170 of the code. The network computing device generates a second source portion 168-2 of the code based on the interaction information and splits a payment to the destination computing device 164 equally with the first source computing device 166-1 based on the destination portion 170 of the code. The network computing device transmits the first source portion 168-1 of the code to the first source computing device 166-1 and transmits the second source portion 168-2 of the code to the second source computing device 166-2.

[0272] To complete the interaction, users of the first and second source computing devices complete an alignment function to align the first and second source portions of code 168-1-168-2 with the destination portion of code 170. For example, although a drag-and-drop function is shown here, a move-and-align function is also possible when the source and destination computing devices are physically close to each other.

[0273] FIGURE 25E is a continuation of the example of FIGURE 25D, where users of source computing devices 166-1-166-2 complete an alignment function to align source portions 168-1-168-2 of the code, respectively, with destination portion 170 of the code to complete the interaction. Once the portions are aligned, the complete code is optically created and captured by image processing circuitry of network application 54. Network application 54 communicates with interaction completion module 58 of network computing device 46 to complete interaction 60.

[0274] For example, the network application 54 of the source computing device 166-1 communicates with the interaction completion module 58 of the network computing device 46 regarding the captured code. For example, the captured and decoded code contains information instructing the interaction completion module 58 to transfer an amount from an account associated with the source computing device 166-1 to an account associated with the destination computing device 164. The captured and decoded code also includes information regarding the split bill application (e.g., the total number of source devices, the terms of the split, the total amount due, etc.).

[0275] Once the interaction is complete, the user is notified that the interaction is complete (e.g., the total bill has been paid). The notification may also include options to terminate or modify. For example, a user of the source computing device 166-1 is notified that the total bill has been paid and the user wants to add an additional tip. The user of the source computing device 166-1 would press the modify option to request to add a tip. The network computing device generates a new source portion of code for the modification request. If the modification request causes the amount paid to be less than the amount due, an error notification is sent to one or more of the source and destination devices and the request is rejected.

[0276] 26A-26D are schematic block diagrams of an example of a split bill option of a multi-source, multi-part code system, which includes source computing devices 166-1-166-3 that have scanned (or otherwise uploaded to network application 54) destination portions 170 of a code (e.g., similar to the example of FIG. 25A).

[0277] Network application 54 recognizes that three source computing devices have uploaded destination portions of the code 170 and presents source computing devices 166-1-166-3 with the ability to display different split options. In this example, users of source computing devices 166-1-166-3 select that the split option be displayed. In another embodiment, uploading destination portions of the code 170 by source computing devices 166-1-166-3 participating in the split function automatically generates source portions of the code based on user-agreed or default settings (e.g., the default setting of splitting evenly).

[0278] Figure 26B continues the example of Figure 26A and shows an example of split options displayed in code display area 86 of source computing devices 166-1 through 166-3. In this example, the options include: split evenly (e.g., based on the total number of detected source devices), split evenly a 20% tip (or other tip amount set or defaulted by the parties), enter a custom amount, and enter a custom tip. The split option includes a confirm button.

[0279] FIG. 26C is a continuation of the example of FIG. 26B and illustrates an example in which source computing devices 166-1-166-3 select the split evenly option and the split 20% tip evenly option. The first, second, and third source computing devices 166-1-166-3 then confirm the selections. FIG. 26D is a continuation of the example of FIG. 26C, in which the network computing device generates source portions of code 168-1-168-3 based on the selected split option (e.g., split evenly and split tip evenly) and destination portion of code 170. The network computing device transmits source portions of code 168-1-168-3 to the respective source computing devices 166-1-166-3.

[0280] The users of the source computing devices 166-1-166-3 complete an alignment function to align the source code portions 168-1-168-3 with the destination code portions 170. For example, the users of the source computing devices 166-1-166-3 drag and drop the source code portions 168-1-168-3 into their respective viewfinders / display areas 84 to align them with the destination code portions 170. The interaction is complete when all of the network applications 54 of the source computing devices 166-1-166-3 have captured the optically created code and are communicating with the network computing devices.

[0281] 27A-27B are schematic block diagrams of an example of a split the bill option for a multi-source, multi-part code system, which includes source computing devices 166-1-166-3. Continuing with the example of FIG. 26A, in which users of source computing devices 166-1-166-3 select to have a split the bill option displayed, in another embodiment, the network computing device generates source parts of code representing different split the bill options and transmits the source part options of the code to the source computing device.

[0282] For example, an interaction between source computing devices 166-1 through 166-3 and destination computing device 164 is a payment for three items (e.g., three entrees from a restaurant menu), and the network computing device generates a source portion of a code to represent the payment for the different items and sends options in the source portion of the code to the source computing device.

[0283] In this example, a user of source computing device 166-1 performs an alignment function to align source portion of code 168-1 "Payment for Item 1" with destination portion of code 170. A user of source computing device 166-2 performs an alignment function to align source portion of code 168-2 "Payment for Item 2" with destination portion of code 170. A user of source computing device 166-3 performs an alignment function to align source portion of code 168-3 "Payment for Item 3" with destination portion of code 170. The split bill options section may further include a confirm button and other split bill selection options.

[0284] The alignment function may end the interaction (e.g., as in the example discussed in Figures 21A-21B) or a confirmation may be required to confirm when all desired options in the source portion of the code have been aligned (e.g., as in the example discussed in Figures 19A-19C).

[0285] In this example, confirmation is required to end the interaction. After aligning the source portion of the code indicating the menu item to be paid for, the user of the source computing device 166-1-166-3 selects an option to add a tip. In another embodiment, when the user of the source computing device 166-1-166-3 aligns the respective source portions of the code indicating the menu item to be paid for, the network application automatically displays the source portion of the code representing an additional tip based on the price of the individual item selected. As another example, the source portion of the code may already include a tip.

[0286] In FIG. 27B , when a user of source computing device 166-1 through 166-3 selects the option to add a tip, the network computing device generates a source portion of a code representing a tip payment based on the prices of different items and sends the source portion option of the code to the source computing device.

[0287] In this example, a user of source computing device 166-1 performs an alignment function to align source portion of code 168-1, “Tip Payment for Item 1,” with destination portion of code 170. A user of source computing device 166-2 performs an alignment function to align source portion of code 168-2, “Tip Payment for Item 2,” with destination portion of code 170. A user of source computing device 166-3 performs an alignment function to align source portion of code 168-3, “Tip Payment for Item 3,” with destination portion of code 170.

[0288] The alignment feature may end the interaction (e.g., as in the example discussed in FIGS. 21A-21B) or may require confirmation to confirm when all desired options in the source portion of the code are aligned (e.g., as in the example discussed in FIGS. 19A-19C). As shown here, the user of source computing device 166-1-166-3 selects the option to confirm that all portions are aligned to end the interaction.

[0289] 28A-28B are schematic block diagrams of an example of a split tip error in a multi-source, multi-part code system. FIG. 28A is a continuation of the example described in FIGS. 26A-26C, except that only source computing devices 166-1-166-2 have selected the split evenly option and the split 20% tip evenly option. The user of source computing device 166-3 has not selected any option within a certain time period. FIG. 28B is a continuation of the example described in FIGS. 26A-26C, except that source computing devices 166-1-166-2 have selected the split evenly option and the split 20% tip evenly option, and source computing device 166-3 has selected to enter a custom amount and custom tip. In this example, the entered custom amount and custom tip are less than the amount to split evenly with the other source computing devices and to split the tip evenly.

[0290] Figures 29A-29C are schematic block diagrams of example error resolutions for a multi-source, multi-part code system. In Figure 29A, when an error is detected (such as the errors of Figures 28A and / or 28B), alignment functions and verification attempts to terminate the interaction are not accepted by the network computing devices. An error message is sent to the source computing devices 166-1-166-3 indicating that the minimum payment amount has not been met.

[0291] The network computing device generates a new source portion of the code representing the amount due and transmits the source portion of the code to the source computing devices 166-1 through 166-3 so that any of the source computing devices can resolve the error.

[0292] In FIG. 29B, if an error is detected (e.g., such as the errors of FIG. 28A and / or 28B), the alignment function and confirmation attempt to terminate the interaction are not accepted by the network computing devices. An error message is sent to the source computing devices 166-1-166-3 indicating that the minimum payment amount has not been met. An option to cancel the transaction is displayed. For example, if the source computing device refuses to pay the correct amount, one or more of the source computing device 166-1, source computing device 166-2, source computing device 166-3, and destination computing device 164 can choose to cancel the transaction.

[0293] In FIG. 29C, the network computing device receives a notification that all the pieces are aligned and that the generated code indicates that the minimum payment has been met but the customary tip amount is too low or too high. For example, different geographic regions have different tipping practices. An international traveler may not realize that they are paying more or less than customary. As another example, it is customary to tip for certain services, but tipping is always optional. Some levels of service may dictate a tip outside of the customary amount. As another example, a user of one of the source computing devices 166-1-166-3 may have forgotten to include a tip or made a calculation error.

[0294] When the networked computing device detects that the tip amount is too low or too high based on the current geographic region and service involved, the source computing device 166-1-166-3 is notified that the tip amount is outside of customary range. The notification may include an indication of how much the tip is outside of customary range. The user of the source computing device 166-1-166-3 is presented with the option to confirm or adjust the tip amount.

[0295] To adjust the amount of the tip, the network computing devices may present a recommended source portion of the code that will adjust the tip when aligned with the destination portion of the code. The recommended source portion of the code may include the full amount needed to adjust the tip, or an amount to be divided among the source computing devices.

[0296] 30 is a flow chart of an example of a method for execution by a network computing device of a multi-source, multi-part code. The method begins at step 172, where the network computing device receives interaction information from one or more of the following: a source computing device of two or more source computing devices of a multi-source, multi-part code system, and a destination computing device of the multi-source, multi-part code system. One or more of the source computing device of the two or more source computing devices and the destination computing device include a network application, which associates the source computing device and the destination computing device of the two or more source computing devices with the network computing device. The interaction occurs via an interface means.

[0297] An interaction is an exchange of data. For example, an interaction is a payment transaction between two or more source computing devices and a destination computing device. As another example, an interaction is a contract between two or more source computing devices and a destination computing device. As another example, an interaction is a sharing of confidential information between two or more source computing devices and a destination computing device.

[0298] The interface means include one or more of an optical scanning application, a direct link (e.g., Near Field Communication (NFC)), and a network connection to one or more of the first computing device or the second computing device. The network connection includes one or more local area networks (LANs) and / or one or more wide area networks (WANs), which may be public and / or private networks. The LANs may be wireless LANs (e.g., Wi-Fi access points, Bluetooth, ZigBee, etc.) and / or wired LANs (e.g., Firewire, Ethernet, etc.). The WANs may be wired and / or wireless WANs. For example, the LANs may be personal home wireless networks or enterprise wireless networks, and the WANs may be the Internet, cellular infrastructure, and / or satellite communications infrastructure.

[0299] The method continues at step 174, where the multi-part code generation module of the network computing device generates the destination part of the code representing the interaction information and the two or more source parts of the code representing the interaction information such that the destination part of the code and the two or more source parts of the code are individually unusable. Unusable means that the parts cannot be optically read by an optical reader / scanner or the information obtained from the optical reader is incomplete or does not amount to actual data. The generation of the two or more source parts of the code may be based on the destination part of the code and / or the source code option selection (e.g., split option, etc.) of the two or more source computing devices. Different examples of multi-part code generation for multi-source are discussed in more detail with reference to Figures 24A-24E.

[0300] The method continues at step 176, where the network computing device transmits the destination portion of the code to the destination computing device and transmits the two or more source portions of the code to the corresponding two or more source computing devices. Alternatively, the network computing device transmits the destination portion of the code to the destination computing device, generates the two or more source portions of the code based on the source computing device's interaction with the destination portion of the code, and then transmits the two or more source portions of the code to the corresponding two or more source computing devices.

[0301] The two or more source portions of the code must be aligned with the destination portion of the code via an alignment function (e.g., drag and drop, move and align, etc.) such that a complete code is created that indicates the intent to complete the interaction. Once the two or more source portions of the code are aligned with the destination portion of the code to create a complete and accurate code in step 178, an interaction completion module of the networked computing device completes the interaction in step 180. For example, the interaction completion module transfers an amount from an account associated with the two or more source computing devices to an account associated with the destination computing device when the interaction is a payment from two or more source computing devices to two or more source computing devices.

[0302] If, in step 178, two or more source portions of the code are not aligned with a destination portion of the code that would create a complete code (e.g., not all source portions of the code are aligned), and / or if two or more source portions of the code are aligned with a destination portion of the code that would create an incorrect code (e.g., the created code does not represent interaction information, a user error has occurred, etc.), the network computing device executes one or more solutions in step 182.

[0303] For example, the network computing device generates a new source portion of the code and distributes it to at least one of the two or more source computing devices, or the network computing device generates all new portions of the code and distributes it to the two or more source computing devices and the destination computing device. As another example, the network computing device notifies one or more of the two or more source computing devices and the destination computing device regarding the alignment (e.g., a notification is sent to retry the alignment, a notification to correct errors, a query as to whether to regenerate new code, etc.).

[0304] As may also be used herein, the terms "configured to," "operably coupled to," "coupled to," and / or "couple" include direct couplings between items and / or indirect couplings between items via intervening items (e.g., items including, but not limited to, components, elements, circuits, and / or modules); in examples of indirect couplings, the intervening items do not modify the information of a signal, but may adjust its current level, voltage level, and / or power level. As may also be used herein, inferential couplings (i.e., where one element is coupled to another element by inference) include direct and indirect couplings between two items in the same manner as "coupled to."

[0305] As may be further used herein, the terms "configured to," "operable to," "coupled to," or "operably coupled to" indicate that an item includes one or more of a power connection, input, output, etc., for performing one or more corresponding functions when activated, and may further include an inferential connection to one or more other items. As may be still further used herein, the term "associated with" includes direct and / or indirect coupling of separate items and / or the embedding of one item within another item.

[0306] As may be used herein, the term "compares favorably" indicates that a comparison between two or more items, signals, etc., provides a desired relationship. For example, if the desired relationship is for signal 1 to have a greater magnitude than signal 2, then a favorable comparison may be achieved when the magnitude of signal 1 is greater than the magnitude of signal 2, or when the magnitude of signal 2 is less than the magnitude of signal 1. As may be used herein, the term "compares unfavorably" indicates that a comparison between two or more items, signals, etc., does not provide a desired relationship.

[0307] As may be used herein, one or more claims may include the phrase "at least one of a, b, and c" in a specific form of this general form, or "at least one of a, b, or c" in a specific form of this general form, with respect to more or fewer elements than "a", "b", and "c". In either phrasing, the phrase should be interpreted the same. In particular, "at least one of a, b, and c" is equivalent to "at least one of a, b, or c" and shall mean a, b, and / or c. As an example, it means "a" only, "b" only, "c" only, "a" and "b", "a" and "c", "b" and "c", and / or "a", "b", and "c".

[0308] As may be used herein, the terms "processing module", "processing circuit", "processor", "processing circuitry", and / or "processing unit" may refer to a single processing device or multiple processing devices. Such a processing device may be a microprocessor, a microcontroller, a digital signal processor, a microcomputer, a central processing unit, a field programmable gate array, a programmable logic device, a state machine, a logic circuit, an analog circuit, a digital circuit, and / or any device that manipulates signals (analog and / or digital) based on hard-coded and / or operational instructions in the circuit. A processing module, module, processing circuit, processing circuitry, and / or processing unit may be or may further include memory and / or integrated memory elements, which may be a single memory device, multiple memory devices, and / or embedded circuitry of another processing module, module, processing circuit, processing circuitry, and / or processing unit. Such memory devices may be read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, cache memory, and / or any device that stores digital information. It should be noted that when a processing module, module, processing circuit, processing circuitry, and / or processing unit includes two or more processing devices, the processing devices may be centrally located (e.g., directly coupled together via a wired and / or wireless bus structure) or distributed (e.g., cloud computing via indirect coupling via a local area network and / or wide area network).It should further be noted that where a processing module, module, processing circuit, processing circuitry, and / or processing unit implements one or more of its functions via a state machine, analog circuit, digital circuit, and / or logic circuit, the memory and / or memory element storing the corresponding operational instructions may be embedded within or external to the circuitry including the state machine, analog circuit, digital circuit, and / or logic circuit. It should further be noted that the memory element may store, and the processing module, module, processing circuit, processing circuitry, and / or processing unit execute, hard-coded instructions and / or operational instructions corresponding to at least some of the steps and / or functions illustrated in one or more of the figures. Such a memory device or memory element may be included in an article of manufacture.

[0309] One or more embodiments are described above with the aid of method steps illustrating the performance of specified functions and their relationships. The boundaries and order of these functional building blocks and method steps are arbitrarily defined herein for convenience of description. Alternative boundaries and orders may be defined so long as the specified functions and relationships are properly performed. Thus, any such alternative boundaries or orders are within the scope and spirit of the claims. Furthermore, the boundaries of these functional building blocks are arbitrarily defined herein for convenience of description. Alternative boundaries may be defined so long as certain significant functions are properly performed. Similarly, flow diagram blocks may be arbitrarily defined herein to illustrate certain significant functions.

[0310] To the extent used, the boundaries and order of the flow diagram blocks may be defined differently but still perform certain essential functions. Thus, such alternative definitions and orders of both the functional building blocks and the flow diagram blocks are within the scope and spirit of the claims. Those skilled in the art will also recognize that the functional building blocks, and other example blocks, modules, and components herein, may be implemented as illustrated, or by separate components, application specific integrated circuits, processors executing appropriate software, or the like, or any combination thereof.

[0311] In addition, the flow diagrams may include "start" and / or "continued" designations. The "start" and "continued" designations reflect that the presented steps may optionally be incorporated into or otherwise used in conjunction with one or more other routines. Furthermore, the flow diagrams may include "end" and / or "continued" designations. The "end" and / or "continued" designations reflect that the presented steps may end as described and shown, or may optionally be incorporated into or otherwise used in conjunction with one or more other routines. In this context, "start" indicates the beginning of the first step presented, which may precede other activities not specifically shown. Furthermore, the "continued" designation reflects that the presented steps may be performed multiple times and / or may be succeeded by other activities not specifically shown. Furthermore, while the flow diagrams show a particular order of steps, other orders are possible as well, provided that the principles of causality are maintained.

[0312] One or more embodiments are used herein to illustrate one or more aspects, one or more features, one or more concepts, and / or one or more examples. A physical embodiment of an apparatus, article of manufacture, machine, and / or process may include one or more of the aspects, features, concepts, examples, etc. described with reference to one or more of the embodiments discussed herein. Furthermore, from one figure to another, an embodiment may incorporate the same or similarly named functions, steps, modules, etc., which may use the same or different reference numbers, and thus the functions, steps, modules, etc. may be the same or similar functions, steps, modules, etc., or may be different functions, steps, modules, etc.

[0313] Although the transistors in the above figures are shown as field effect transistors (FETs), as one skilled in the art would understand, the transistors may be implemented using any type of transistor structure, including, but not limited to, bipolar, metal oxide semiconductor field effect transistors (MOSFETs), N-well transistors, P-well transistors, enhancement mode, depletion mode, and zero voltage threshold (VT) transistors.

[0314] Unless stated to the contrary, signals to, from, and / or between elements of any of the figures presented herein may be analog or digital, continuous or discrete time, and single-ended or differential. For example, if a signal path is shown as a single-ended path, that signal path also represents a differential signal path. Similarly, if a signal path is shown as a differential path, that signal path also represents a single-ended signal path. Although one or more particular architectures are described herein, other architectures may be implemented as well, using one or more data buses not explicitly shown, direct connections between elements, and / or indirect couplings between other elements as would be recognized by one of ordinary skill in the art.

[0315] The term "module" is used in the description of one or more of the embodiments. A module may include a memory that stores operating instructions or implements one or more functions via a device, such as a processor or other processing device or other hardware that may operate in association with a memory. A module may operate independently and / or in conjunction with software and / or firmware. As also used herein, a module may include one or more sub-modules, each of which may be one or more modules.

[0316] As may be further used herein, a computer readable memory includes one or more memory elements. A memory element may be a separate memory device, a plurality of memory devices, or a set of memory locations within a memory device. Such a memory device may be a read-only memory, a random access memory, a volatile memory, a non-volatile memory, a static memory, a dynamic memory, a flash memory, a cache memory, and / or any device that stores digital information. A memory device may be in the form of a solid-state memory, a hard drive memory, a cloud memory, a thumb drive, a server memory, a computing device memory, and / or other physical medium for storing digital information.

[0317] Although specific combinations of various features and characteristics of one or more embodiments have been explicitly described herein, other combinations of these features and functions are possible as well, and the present disclosure is not limited to the specific examples disclosed herein, but explicitly incorporates these other combinations.

Claims

1. receiving, by a network computing device of a multi-part code system, from one or more of a first computing device of the multi-part code system and a second computing device of the multi-part code system, interaction information regarding an interaction between the first computing device and the second computing device, where one or more of the first and second computing devices are associated with the network computing device; generating, by a multi-part code generation module of the network computing device, first and second parts of a code, the first and second parts of the code individually not containing meaningful information, the code being optically created by aligning the first and second parts of the code, the optically created code representing the interaction information, and the one or more of the first and second computing devices being operable to capture the optically created code; transmitting, by the network computing device, the first and second portions of the code to one or more of the first and second computing devices; When the optically generated code is captured, and completing the interaction by an interaction completion module of the networked computing device.

2. The interaction includes: Digital payment transactions, Exchange of data, agreement, Ticket confirmation, and The method of claim 1 , further comprising one or more of the following:

3. The interaction information includes: A first computing device identifier (ID); A second computing device identifier (ID); Payment amount, Terms of Agreement, Data files, Signature page, Event information, Your desired payment method, Payment account information, Discount information, Promotional information, Loyalty account information, and The method of claim 1 , further comprising one or more of the following:

4. said interaction occurring via an interface means; The interface means includes: an optical scanner in one or more of the first and second computing devices; Direct links, and The method of claim 1 , comprising one or more of the following network connections:

5. The method of claim 1 , further comprising: the first and second portions of the code not being individually readable by an optical scanner.

6. The generating step of the first and second portions of the code comprises: generating, by the multi-part code generation module, the code representing the interaction information; and dividing, by the multi-part code generation module, the code into the first and second parts of the code.

7. generating, by the multi-part code generation module, the first part of the code representing a first interaction information of the interaction information; transmitting, by the network computing device, the first portion of the code to the first computing device; generating, by the multi-part code generation module, the second part of the code, the second part representing second interaction information of the interaction information and based on the first part of the code; The method of claim 1 , further comprising: transmitting, by the networked computing device, the second portion of the code to the second computing device.

8. When the optically generated code is not captured, by the network computing device one or more new first and second portions of the code to the one or more of the first and second computing devices; and a query to the one or more of the first and second computing devices regarding whether to create the one or more new first and second portions of the code; notifying the one or more of the first and second computing devices to retry the alignment of the first and second portions of the code; and and sending one or more of a notification to the one or more of the first and second computing devices to correct an error associated with the alignment of the first and second portions of the code.

9. the interaction being a payment transaction from the first computing device to the second computing device; and the interaction information includes a first computing device identifier (ID), a second computing device identifier (ID), a payment amount, a desired payment method for receiving the payment, a desired payment method for making the payment, first computing device payment account information, and second computing device payment account information; When the optically generated code is captured, 2. The method of claim 1, further comprising: transferring, by the interaction completion module, the payment amount from a payment account associated with the first computing device to a payment account associated with the second computing device in accordance with the interaction information.

10. receiving, by the network computing device, the interaction information from the first computing device; generating, by the multi-part code generation module, the first and second parts of the code representing the interaction information; 2. The method of claim 1, further comprising: transmitting, by the network computing device, the first and second portions of the code to the first computing device.

11. The computer readable memory includes: a first memory element storing operational instructions that, when executed by a network computing device of a multi-part code system, cause the network computing device to: a first memory element configured to receive, from one or more of a first computing device of the multi-part code system and a second computing device of the multi-part code system, interaction information relating to an interaction between the first computing device and the second computing device, wherein one or more of the first and second computing devices are associated with the network computing device; a second memory element storing operational instructions that, when executed by a multi-part code generation module of the network computing device, cause the multi-part code generation module to: a second memory element operable to generate first and second portions of a code, the first and second portions of the code individually not containing meaningful information, the code being optically created by aligning the first and second portions of the code, the optically created code representing the interaction information, and the one or more of the first and second computing devices operable to capture the optically created code; a third memory element storing operational instructions that, when executed by the network computing device, cause the network computing device to: a third memory element that causes the first and second portions of the code to be transmitted to one or more of the first and second computing devices; When the optically generated code is captured, a fourth memory element storing operational instructions that, when executed by an interaction completion module of the networked computing device, cause the interaction completion module to complete the interaction.

12. The interaction includes: Digital payment transactions, Exchange of data, agreement, Ticket confirmation, and The computer readable memory of claim 11 , further comprising one or more of the following:

13. The interaction information includes: A first computing device identifier (ID); A second computing device identifier (ID); Payment amount, Terms of Agreement, Data files, Signature page, Event information, Your desired payment method, Payment account information, Discount information, Promotional information, Loyalty account information, and The computer readable memory of claim 11 , further comprising one or more of the following personal information:

14. The interaction occurs via an interface means, the interface means comprising: an optical scanner in one or more of the first and second computing devices; Direct links, and The computer readable memory of claim 11 , comprising one or more of the network connections.

15. The computer readable memory of claim 11 , further comprising: the first and second portions of the code not individually readable by an optical scanning application.

16. The second memory device further stores operational instructions, which, when executed by the multi-part code generation module, cause the multi-part code generation module to: generating the code representing the interaction information; 12. The computer readable memory of claim 11, further comprising: generating the first and second portions of the code by: dividing the code into the first and second portions of the code.

17. The second memory device further stores operational instructions, which, when executed by the multi-part code generation module, cause the multi-part code generation module to: generating and storing the first portion of the code representing a first one of the interaction information; The third memory element further stores operational instructions that, when executed by the network computing device, cause the network computing device to: causing the first portion of the code to be transmitted to the first computing device; and storing the first portion of the code. The second memory device further stores operational instructions, which, when executed by the multi-part code generation module, cause the multi-part code generation module to: generating and storing the second portion of the code, the second portion of the code being representative of a second one of the interaction information and based on the first portion of the code; The third memory element further stores operational instructions that, when executed by the network computing device, cause the network computing device to:

12. The computer readable memory of claim 11, further comprising: causing the second portion of the code to be transmitted to the second computing device; and storing the second portion of the code.

18. When the optically generated code is not captured, a fifth memory element storing operational instructions that, when executed by the network computing device, cause the network computing device to: one or more new first and second portions of the code to the one or more of the first and second computing devices; and a query to the one or more of the first and second computing devices regarding whether to create new first and second portions of the code; notifying the one or more of the first and second computing devices to retry the alignment of the first and second portions of the code; and and a notification to the one or more of the first and second computing devices to correct an error associated with the alignment of the first and second portions of the code.

19. the interaction being a payment transaction from the first computing device to the second computing device; and the interaction information includes a first computing device identifier (ID), a second computing device identifier (ID), a payment amount, a desired payment method for receiving the payment, a desired payment method for making the payment, first computing device payment account information, and second computing device payment account information; When the optically generated code is captured, The fourth memory element further stores operational instructions, which, when executed by the interaction completion module, cause the interaction completion module to:

12. The computer readable memory of claim 11, further comprising: causing the payment amount to be transferred from a payment account associated with the first computing device to a payment account associated with the second computing device in accordance with the interaction information.

20. The first memory element further stores operational instructions that, when executed by the network computing device, cause the network computing device to: causing the first computing device to receive the interaction information; and The second memory device further stores operational instructions, which, when executed by the multi-part code generation module, cause the multi-part code generation module to: generating the first and second portions of the code representing the interaction; The third memory element further stores operational instructions that, when executed by the network computing device, cause the network computing device to:

12. The computer readable memory of claim 11, further comprising: causing the first and second portions of the code to be transmitted to the first computing device.

Citation Information

Patent Citations

  • System and method for data transfer through animated barcodes

    EP2431912A1

  • Authentication system using two-dimensional code

    JP2006053851A

  • Authentication system

    JP2006195912A

  • Information code reading system and information code display apparatus

    JP2016062260A