CA2610341A1 - Checking validity of barcodes in mobile devices that display the barcodes for reading by barcode readers - Google Patents
Checking validity of barcodes in mobile devices that display the barcodes for reading by barcode readers Download PDFInfo
- Publication number
- CA2610341A1 CA2610341A1 CA002610341A CA2610341A CA2610341A1 CA 2610341 A1 CA2610341 A1 CA 2610341A1 CA 002610341 A CA002610341 A CA 002610341A CA 2610341 A CA2610341 A CA 2610341A CA 2610341 A1 CA2610341 A1 CA 2610341A1
- Authority
- CA
- Canada
- Prior art keywords
- validity
- coupon
- mobile device
- barcode
- electronic coupon
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000002401 inhibitory effect Effects 0.000 claims abstract description 5
- 238000010200 validation analysis Methods 0.000 abstract description 20
- 238000012360 testing method Methods 0.000 description 27
- 238000012790 confirmation Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000012419 revalidation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/045—Payment circuits using payment protocols involving tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/32—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
- G06Q20/327—Short range or proximity payments by means of M-devices
- G06Q20/3274—Short range or proximity payments by means of M-devices using a pictured code, e.g. barcode or QR-code, being displayed on the M-device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Cash Registers Or Receiving Machines (AREA)
Abstract
Technique for ensuring that a mobile device that contains coupons with barcodes will not provide a barcode belonging to an invalid coupon to a barcode reading system. The technique avoids validation of the coupon at the time the barcode is provided to the barcode reading system. In the technique, the mobile device responds to a validity event that may affect the validity of a given coupon by inhibiting the provision of the given coupon's barcode to the barcode reading system until the coupon has been validated, and then again permitting the provision of the given coupon's barcode to the barcode reading system. In one application of the technique, the coupon may be used n times, the validity event is the provision of the barcode to the barcode reading system, and the validation of the coupon
Description
TITLE
Checking validity of barcodes in mobile devices that display the barcodes for reading by barcode readers CROSS REFERENCE TO RELATED APPLICATIONS
The present patent application claims priority from U.S. provisional patent application 60/684,923, Dan Slavin, Using wireless devices to display barcodes, filed 5/26/2005.
60/684,923 is incorporated into the present patent application by reference for all purposes.
BACKGROUND OF THE INVENTION
Field of the Invention The present invention relates to systems in which transactions are performed by displaying a barcode on a mobile device such as a cellular telephone and using a barcode reader to read the displayed barcode.
Description of Related Art Manufacturers, retailers, event venues, and clubs have long used printed coupons, rebates, tickets, and membership cards with barcode representations to deliver discounts, tickets, and membership information to consumers.
Coupons have typically been delivered by direct mail, or as an insert in a newspaper, or even in-store displays that contain printed coupons for use by customers. More recently, online coupon centers have been established which allow a customer to electronically find coupons (using a computer) and print them for use in the store (or in conjunction with online purchases).
Even more recently, people have begun delivering electronic coupons containing bar codes to mobile devices for a variety of uses, see for example PCT/GB2003/004131, Forbes, Optimized messages containing barcode information for mobile receiving device, published as 2. As employed herein, an electronic coupon may be any collection of information that is identified by a barcode. Electronic coupons offer advantages for both end users and coupon issuers. Because the coupons are electronic, they are much cheaper to issue than paper coupons. Further, the fact that the mobile device can both provide and receive information about the coupon permits kinds of coupons that have no paper coupon equivalents.
For example, an electronic coupon may be an n use coupon, that is, a coupon that can be used a predetermined number of times. For the end user, finally, the end user's mobile device doubles as a coupon carrier.
A major problem with electronic coupons is checking the coupon's validity.
With paper coupons, validity checking is done by the clerk at the point of sale system.
With a standard paper coupon, for example, the clerk at the point of sale checks the coupon to make sure it hasn't expired, passes the coupon's barcode across the barcode reader until the barcode reader confirms that the code has been read, and retains the coupon, thereby ensuring that the coupon is valid when used and used only once. Because the clerk does the validity checking in standard point of sale systems, standard point of sale systems are not set up to deal with invalid coupons. Thus, an important advantage of using mobile devices to display coupons is that the mobile device can do the validity checking. This permits the use of electronic coupons at clerkless point of sale systems and also permits new kinds of coupons such as the n-use coupon described above.
Furtlier, because the mobile device has both local and remote information about the coupon and the reading process available to it, it provides a channel for feedback about the coupon generally.
Prior art describes solutions for the validity problem that require the mobile device to contact a central server as part of the process of displaying the coupon's barcode on the mobile device. If the server indicates that the coupon is invalid, the mobile device will not display the barcode.
Another method is to provide feedback to a central server in the point of sale system, as disclosed in PCT/GB2003/004131. Disadvantages of these solutions are the following:
They are too slow for use during the standard retail store checkout process.
If the mobile device is not connected to a network at the time the bar code is to be presented, then these solutions are not viable.
If the central server is inoperable at the time the bar code is to be presented, then this solution is not viable.
If the network response time is too slow, then the end user may become frustrated while waiting for the central server to respond and the solution is not viable.
It is thus an object of the invention to provide improved techniques for preventing invalid electronic coupons from being provided to barcode reading systems.
SUMMARY OF THE INVENTION
The object of the invention is attained by a method performed in a mobile device which provides barcodes belonging to electronic coupons to a barcode reading system. The method has the following steps:
= responding to a validity event which may affect the validity of a given electronic coupon by inhibiting provision of the given electronic coupon's barcode to the barcode reading system;
= determining whether the given electronic coupon is currently valid; and = if the given electronic coupon is currently valid, again permitting provision of the given coupon's barcode to the barcode reading system.
The step of determining whether the given electronic coupon is currently valid may be performed using validation information which is associated with the given electronic coupon in the mobile device, using validation information which is received from the barcode reading system, or using validation information which is received from a validity server.
The validity event may be the provision of the given electronic coupon's barcode to the barcode reading system, determining from the mobile device's clock whether a point in time has been reached that affects the validity of the given electronic coupon, determining that the mobile device has received location input that affects the validity of the given electronic coupon, or has received input that redefines the validity of the given electronic coupon.
The object of the invention is also obtained by a mobile device with an electronic coupon handler that responds to a validity event which may affect the validity of a given electronic coupon by inhibiting provision of the given electronic coupon's barcode to the barcode reading system and determines whether the given electronic coupon is currently valid before again permitting provision of the given coupon's barcode to the barcode reading system.
Other objects and advantages will be apparent to those skilled in the arts to which the invention pertains upon perusal of the following Detailed Description and drawing, wherein:
BRIEF DESCRIPTION OF THE DRAWING
Checking validity of barcodes in mobile devices that display the barcodes for reading by barcode readers CROSS REFERENCE TO RELATED APPLICATIONS
The present patent application claims priority from U.S. provisional patent application 60/684,923, Dan Slavin, Using wireless devices to display barcodes, filed 5/26/2005.
60/684,923 is incorporated into the present patent application by reference for all purposes.
BACKGROUND OF THE INVENTION
Field of the Invention The present invention relates to systems in which transactions are performed by displaying a barcode on a mobile device such as a cellular telephone and using a barcode reader to read the displayed barcode.
Description of Related Art Manufacturers, retailers, event venues, and clubs have long used printed coupons, rebates, tickets, and membership cards with barcode representations to deliver discounts, tickets, and membership information to consumers.
Coupons have typically been delivered by direct mail, or as an insert in a newspaper, or even in-store displays that contain printed coupons for use by customers. More recently, online coupon centers have been established which allow a customer to electronically find coupons (using a computer) and print them for use in the store (or in conjunction with online purchases).
Even more recently, people have begun delivering electronic coupons containing bar codes to mobile devices for a variety of uses, see for example PCT/GB2003/004131, Forbes, Optimized messages containing barcode information for mobile receiving device, published as 2. As employed herein, an electronic coupon may be any collection of information that is identified by a barcode. Electronic coupons offer advantages for both end users and coupon issuers. Because the coupons are electronic, they are much cheaper to issue than paper coupons. Further, the fact that the mobile device can both provide and receive information about the coupon permits kinds of coupons that have no paper coupon equivalents.
For example, an electronic coupon may be an n use coupon, that is, a coupon that can be used a predetermined number of times. For the end user, finally, the end user's mobile device doubles as a coupon carrier.
A major problem with electronic coupons is checking the coupon's validity.
With paper coupons, validity checking is done by the clerk at the point of sale system.
With a standard paper coupon, for example, the clerk at the point of sale checks the coupon to make sure it hasn't expired, passes the coupon's barcode across the barcode reader until the barcode reader confirms that the code has been read, and retains the coupon, thereby ensuring that the coupon is valid when used and used only once. Because the clerk does the validity checking in standard point of sale systems, standard point of sale systems are not set up to deal with invalid coupons. Thus, an important advantage of using mobile devices to display coupons is that the mobile device can do the validity checking. This permits the use of electronic coupons at clerkless point of sale systems and also permits new kinds of coupons such as the n-use coupon described above.
Furtlier, because the mobile device has both local and remote information about the coupon and the reading process available to it, it provides a channel for feedback about the coupon generally.
Prior art describes solutions for the validity problem that require the mobile device to contact a central server as part of the process of displaying the coupon's barcode on the mobile device. If the server indicates that the coupon is invalid, the mobile device will not display the barcode.
Another method is to provide feedback to a central server in the point of sale system, as disclosed in PCT/GB2003/004131. Disadvantages of these solutions are the following:
They are too slow for use during the standard retail store checkout process.
If the mobile device is not connected to a network at the time the bar code is to be presented, then these solutions are not viable.
If the central server is inoperable at the time the bar code is to be presented, then this solution is not viable.
If the network response time is too slow, then the end user may become frustrated while waiting for the central server to respond and the solution is not viable.
It is thus an object of the invention to provide improved techniques for preventing invalid electronic coupons from being provided to barcode reading systems.
SUMMARY OF THE INVENTION
The object of the invention is attained by a method performed in a mobile device which provides barcodes belonging to electronic coupons to a barcode reading system. The method has the following steps:
= responding to a validity event which may affect the validity of a given electronic coupon by inhibiting provision of the given electronic coupon's barcode to the barcode reading system;
= determining whether the given electronic coupon is currently valid; and = if the given electronic coupon is currently valid, again permitting provision of the given coupon's barcode to the barcode reading system.
The step of determining whether the given electronic coupon is currently valid may be performed using validation information which is associated with the given electronic coupon in the mobile device, using validation information which is received from the barcode reading system, or using validation information which is received from a validity server.
The validity event may be the provision of the given electronic coupon's barcode to the barcode reading system, determining from the mobile device's clock whether a point in time has been reached that affects the validity of the given electronic coupon, determining that the mobile device has received location input that affects the validity of the given electronic coupon, or has received input that redefines the validity of the given electronic coupon.
The object of the invention is also obtained by a mobile device with an electronic coupon handler that responds to a validity event which may affect the validity of a given electronic coupon by inhibiting provision of the given electronic coupon's barcode to the barcode reading system and determines whether the given electronic coupon is currently valid before again permitting provision of the given coupon's barcode to the barcode reading system.
Other objects and advantages will be apparent to those skilled in the arts to which the invention pertains upon perusal of the following Detailed Description and drawing, wherein:
BRIEF DESCRIPTION OF THE DRAWING
FIG. 1 is an overview of a system in which the techniques of the invention are employed;
FIG. 2 details the Validate/Re-validate cycle;
FIG. 3 details the Point of Sale system scan and confirm process;
FIG. 4 details the Local Re-validation process;
FIG. 5 details the Remote Re-validation process;
FIG.6 is a block diagram of the wallet components; and FIG. 7 is a flowchart of the manner in which the wallet responds to a validity event.
In the reference numbers employed in the Drawing and Specification, the rightmost two digits are a reference number within a figure; the remaining digits are the figure number. Thus, the item referred to by the reference number 204 will be found in FIG. 2.
DETAILED DESCRIPTION OF THE INVENTION
Overview of the invention Figure 1 illustrates, in schematic form, a system 100 for using a mobile device to provide a barcode from an electronic coupon whose validity is known to a point of sale system. In the following, a barcode is to be understood to include any representation of the information in the barcode itself, including the barcode's image and alphanumeric representations of the image. A
point of sale system is understood to include any system which is capable of reading the information in the barcode. The main components of system 100 are coupon distribution system 101, a mobile device 112 such as a cellular telephone or a PDA, the local components 115 of a point of sale (POS) system that can scan barcodes, a point of sale backend server 124 from which information about transactions performed by the POS system may be obtained, and a validity server 122, which collects and maintains information relevant to the validity of electronic coupons. In some embodiments, the functions of backend server 124 and validity server 122 may be combined in a single server. In many cases, the entity that provides the coupons and determines their validity will be different from the entity that is using the coupons to promote a product or service. In such cases, the coupon distribution and validity server components of the system would belong to the entity that provides the coupons.
Beginning with coupon distribution system 101, coupon distribution system 101 distributes electronic coupons to mobile devices. The coupons may be distributed in response to a request from the mobile device or from a user of the mobile device who makes the, request via the Internet, or can even be distributed as unsolicited messages to the mobile device. When a coupon is to be distributed, coupon package generator 104 will generate an electronic package that represents the electronic coupon. The electronic package is then sent to the Content Delivery Server 102. The electronic package may contain the following:
i) the coupon's barcode 110; the barcode may be a display-ready image of the barcode or information from which a display of the barcode may be generated or the information contained in the barcode may be provided.
ii) some Control Data 106. In the present context, the most important part of control data 106 is the validity information for the electronic coupon. Examples of validity information include but are not limited to the following:
= The number of times a coupon may be used;
= The date on which the coupon expires;
= Locations at which the coupon may be used; and = a network location from which validity information about the coupon may be obtained.
Control data 106 may also contain information that governs how the validity of the coupon is to be checked, for example, the number of retries to be made if the validity is to be checked using information from the network location and information about how long the barcode is to be displayed.
iii) optionally Additional Content 108 for the coupon may comprise text or multimedia content.
A message is then sent to the mobile device via a message format such as SMS.
The message may include a URL link to the package which was created. The user then clicks on this link and the package is downloaded to the mobile device 112. In mobile device 112, the electronic coupon, represented by box 113, is manipulated by electronic wallet software 114. Among the tasks performed by electronic wallet software 114 are determining whether a given electronic coupon is valid and if it is, communicating the electronic coupon to the local point of sale system 116. In some embodiments, the wallet may communicate the coupon to the local point of sale system 116 by displaying the coupon's barcode on the mobile device's display screen so that the barcode can be read by scanner 116; in others, it may use a wireless link in local communication point 120 to provide the barcode to point of sale system 118.
When the coupon is displayed or otherwise provided to point of sale system 118, mobile device 112 may receive immediate confirmation that point of sale system 118 has successfully read the barcode. The confirmation may come in any of a number of ways, for example, via a "beep"
from point of sale system 118 that is detected in mobile device 112, via messages sent and received via local communication point 120, or by having the user push a button on mobile device 112 when he or she believes that point of sale system 118 has read the barcode. If no such immediate confirination is received, mobile device 118 may obtain validity information from validity server 122 that confirms the successful read.
Once the barcode has been read, point of sale system 118 treats it like any other barcode: it is used as necessary in the transaction being performed by the point of sale system and it is sent to a backend server belonging to the point of sale system so that the use of the coupon can be recorded. In the case of the electronic coupons 113 of system 100, if the use of the coupon affects the coupon's validity, backend server 124 reports use of the coupon to validity server 122, which may simply record the use or may itself determine whether the use has rendered the coupon invalid.
Returning to electronic wallet 114, electronic wallet 114 will only communicate an electronic coupon 113's bar code to point of sale system 118 if electronic wallet 114 has been able to determine that the electronic coupon is currently valid. Electronic wallet 114 makes a validity determination for a given electronic coupon in response to any validity event known to electronic wallet 114. A validity event is any event which may affect the validity of the given electronic coupon. FIG. 7 is a flowchart 700 of how wallet 114 responds to a validity event. Beginning at start 702, the wallet waits for a validity event for a given electronic coupon (704). When the event occurs, the wallet inhibits provision of the given electronic coupon's barcode to POS
system 118 (706). At 708, the wallet checks whether the given coupon is currently valid. If the coupon's validity is known, i.e., if the wallet can determine the coupon's validity from the validity information it has and/or whatever validity information may be available via local communication point 120 from point of sale system 118 or via the network from validity server 122, branch 714 is taken; otherwise, branch 712 is taken. Loop 712 continues attempting to check the validity of the given coupon, with the intervals between attempts and the number of attempts made before the wallet gives up being determined from information in control data 106.
In branch 714, if the coupon is valid (716, 720, 722), the wallet again permits the coupon's barcode to be provided to POS system 118. If the coupon is not valid, the wallet continues to inhibit provision of the barcode to POS system 118 until the coupon is removed from the wallet or another validity event renders the coupon valid again.
FIG. 2 details the Validate/Re-validate cycle;
FIG. 3 details the Point of Sale system scan and confirm process;
FIG. 4 details the Local Re-validation process;
FIG. 5 details the Remote Re-validation process;
FIG.6 is a block diagram of the wallet components; and FIG. 7 is a flowchart of the manner in which the wallet responds to a validity event.
In the reference numbers employed in the Drawing and Specification, the rightmost two digits are a reference number within a figure; the remaining digits are the figure number. Thus, the item referred to by the reference number 204 will be found in FIG. 2.
DETAILED DESCRIPTION OF THE INVENTION
Overview of the invention Figure 1 illustrates, in schematic form, a system 100 for using a mobile device to provide a barcode from an electronic coupon whose validity is known to a point of sale system. In the following, a barcode is to be understood to include any representation of the information in the barcode itself, including the barcode's image and alphanumeric representations of the image. A
point of sale system is understood to include any system which is capable of reading the information in the barcode. The main components of system 100 are coupon distribution system 101, a mobile device 112 such as a cellular telephone or a PDA, the local components 115 of a point of sale (POS) system that can scan barcodes, a point of sale backend server 124 from which information about transactions performed by the POS system may be obtained, and a validity server 122, which collects and maintains information relevant to the validity of electronic coupons. In some embodiments, the functions of backend server 124 and validity server 122 may be combined in a single server. In many cases, the entity that provides the coupons and determines their validity will be different from the entity that is using the coupons to promote a product or service. In such cases, the coupon distribution and validity server components of the system would belong to the entity that provides the coupons.
Beginning with coupon distribution system 101, coupon distribution system 101 distributes electronic coupons to mobile devices. The coupons may be distributed in response to a request from the mobile device or from a user of the mobile device who makes the, request via the Internet, or can even be distributed as unsolicited messages to the mobile device. When a coupon is to be distributed, coupon package generator 104 will generate an electronic package that represents the electronic coupon. The electronic package is then sent to the Content Delivery Server 102. The electronic package may contain the following:
i) the coupon's barcode 110; the barcode may be a display-ready image of the barcode or information from which a display of the barcode may be generated or the information contained in the barcode may be provided.
ii) some Control Data 106. In the present context, the most important part of control data 106 is the validity information for the electronic coupon. Examples of validity information include but are not limited to the following:
= The number of times a coupon may be used;
= The date on which the coupon expires;
= Locations at which the coupon may be used; and = a network location from which validity information about the coupon may be obtained.
Control data 106 may also contain information that governs how the validity of the coupon is to be checked, for example, the number of retries to be made if the validity is to be checked using information from the network location and information about how long the barcode is to be displayed.
iii) optionally Additional Content 108 for the coupon may comprise text or multimedia content.
A message is then sent to the mobile device via a message format such as SMS.
The message may include a URL link to the package which was created. The user then clicks on this link and the package is downloaded to the mobile device 112. In mobile device 112, the electronic coupon, represented by box 113, is manipulated by electronic wallet software 114. Among the tasks performed by electronic wallet software 114 are determining whether a given electronic coupon is valid and if it is, communicating the electronic coupon to the local point of sale system 116. In some embodiments, the wallet may communicate the coupon to the local point of sale system 116 by displaying the coupon's barcode on the mobile device's display screen so that the barcode can be read by scanner 116; in others, it may use a wireless link in local communication point 120 to provide the barcode to point of sale system 118.
When the coupon is displayed or otherwise provided to point of sale system 118, mobile device 112 may receive immediate confirmation that point of sale system 118 has successfully read the barcode. The confirmation may come in any of a number of ways, for example, via a "beep"
from point of sale system 118 that is detected in mobile device 112, via messages sent and received via local communication point 120, or by having the user push a button on mobile device 112 when he or she believes that point of sale system 118 has read the barcode. If no such immediate confirination is received, mobile device 118 may obtain validity information from validity server 122 that confirms the successful read.
Once the barcode has been read, point of sale system 118 treats it like any other barcode: it is used as necessary in the transaction being performed by the point of sale system and it is sent to a backend server belonging to the point of sale system so that the use of the coupon can be recorded. In the case of the electronic coupons 113 of system 100, if the use of the coupon affects the coupon's validity, backend server 124 reports use of the coupon to validity server 122, which may simply record the use or may itself determine whether the use has rendered the coupon invalid.
Returning to electronic wallet 114, electronic wallet 114 will only communicate an electronic coupon 113's bar code to point of sale system 118 if electronic wallet 114 has been able to determine that the electronic coupon is currently valid. Electronic wallet 114 makes a validity determination for a given electronic coupon in response to any validity event known to electronic wallet 114. A validity event is any event which may affect the validity of the given electronic coupon. FIG. 7 is a flowchart 700 of how wallet 114 responds to a validity event. Beginning at start 702, the wallet waits for a validity event for a given electronic coupon (704). When the event occurs, the wallet inhibits provision of the given electronic coupon's barcode to POS
system 118 (706). At 708, the wallet checks whether the given coupon is currently valid. If the coupon's validity is known, i.e., if the wallet can determine the coupon's validity from the validity information it has and/or whatever validity information may be available via local communication point 120 from point of sale system 118 or via the network from validity server 122, branch 714 is taken; otherwise, branch 712 is taken. Loop 712 continues attempting to check the validity of the given coupon, with the intervals between attempts and the number of attempts made before the wallet gives up being determined from information in control data 106.
In branch 714, if the coupon is valid (716, 720, 722), the wallet again permits the coupon's barcode to be provided to POS system 118. If the coupon is not valid, the wallet continues to inhibit provision of the barcode to POS system 118 until the coupon is removed from the wallet or another validity event renders the coupon valid again.
Examples of validity events include but are not limited to = providing the barcode to the POS system;
= reaching the expiration date of the coupon;
= providing the barcode at a particular location; and = receiving information which defines or redefines the coupon's validity, for example, new control data for a coupon.
In most cases, electronic wallet 114 can make a validity determination in response to a validity event at a time other than the moment the user selects to redeem the coupon, and consequently, validation may be separated from redemption and the redemption process need not be burdened by the time required for the validation process. Electronic wallet 114 may also provide validity information to validity server 122. Validity information from electronic wallet 114 may further be used to check the validity information in validity server 122 or vice-versa.
The information required for a validity event and the source of the information depend of course on the validity event. For example, mobile devices have clocks, and consequently, whether a time-related validity event has occurred can be determined by examining an electronic coupon's validity information and the time currently indicated by the mobile device's clock. With a location-related validity event, the coupon's validity information can contain a set of codes for valid locations and the user can input the code for the location where he or she is intending to provide the coupon to the bar code reading system to the mobile device. If the location code does not match one of the codes in the set, the mobile device will not provide the bar code to the bar code reading system. Some mobile devices are of course aware of where they are, and in such mobile devices, the mobile device can check whether its current location is one of the permitted locations.
The wallet and the validate--display for reading--revalidate cycle: FIG. 6 FIG. 6 is a detailed block diagram of electronic wallet application program 114. When the mobile device opens the package representing electronic coupon 113, the MIME
type associated with the package opens electronic wallet application 114 and provides the coupon's bar code, Control Data, and Additional Data to wallet application 114.
If the user does not have a previously installed electronic wallet 114 on his/her mobile device, then another link contained in the SMS message will allow him/her to download and install electronic wallet 114 on the mobile device prior to downloading the package representing electronic coupon 113.
Electronic wallet 114 contains 5 major components:
1) A set 610 of coupons that are known by the wallet to be currently valid 2) A set 612 of coupons whose current validity is not known to the wallet;
3) An optional set 614 of coupons which are known to be currently invalid;
4) Validity test logic 604 which responds to a validity event 603 by determining which set of coupons a given coupon currently belongs to; and 5) a program 602 that displays barcodes belonging to the set of coupons that are known to be currently valid in a form that a barcode scaimer can read. Where local communications link 120 is used to provide the barcode to point of sale system 118, the program 602 provides the barcodes via communications link 120.
The sets of coupons may be implemented using any technique that divides the coupons into three distinct groups. Example implementations are flags associated with the coupons that indicate which of the sets a particular coupon belongs to and a linked list for each set of coupons.
When a coupon is placed into the wallet for the first time, it is placed in the set 612 of coupons whose validity is unknown. This is the first validity event 603 for the coupon. The wallet responds to validity event 603 by checking the validity of the coupon. The validity check is done using the validity information for the coupon that is contained in control data 106. In some cases, the check may involve validity server 122. If the checks indicate that the coupon is valid, wallet 114 places the coupon in set 610 of coupons known to be valid.
Indicating to the portable device that the barcode was read At this point, the barcode may be displayed by the end user only from wallet 114 and only by display barcode function 602. This operation will only initiate the display of barcodes from coupons belonging to set 610 of coupons which the wallet knows to be valid.
Execution of display barcode function 602 is a validity event. Operation 602 is the only operation that displays the actual barcode in readable form on the mobile device. In the case of implementations in which the barcode is provided to point of sale system 118 by communications link 120, only operation 602 will provide the barcode to the point of sale system.
= reaching the expiration date of the coupon;
= providing the barcode at a particular location; and = receiving information which defines or redefines the coupon's validity, for example, new control data for a coupon.
In most cases, electronic wallet 114 can make a validity determination in response to a validity event at a time other than the moment the user selects to redeem the coupon, and consequently, validation may be separated from redemption and the redemption process need not be burdened by the time required for the validation process. Electronic wallet 114 may also provide validity information to validity server 122. Validity information from electronic wallet 114 may further be used to check the validity information in validity server 122 or vice-versa.
The information required for a validity event and the source of the information depend of course on the validity event. For example, mobile devices have clocks, and consequently, whether a time-related validity event has occurred can be determined by examining an electronic coupon's validity information and the time currently indicated by the mobile device's clock. With a location-related validity event, the coupon's validity information can contain a set of codes for valid locations and the user can input the code for the location where he or she is intending to provide the coupon to the bar code reading system to the mobile device. If the location code does not match one of the codes in the set, the mobile device will not provide the bar code to the bar code reading system. Some mobile devices are of course aware of where they are, and in such mobile devices, the mobile device can check whether its current location is one of the permitted locations.
The wallet and the validate--display for reading--revalidate cycle: FIG. 6 FIG. 6 is a detailed block diagram of electronic wallet application program 114. When the mobile device opens the package representing electronic coupon 113, the MIME
type associated with the package opens electronic wallet application 114 and provides the coupon's bar code, Control Data, and Additional Data to wallet application 114.
If the user does not have a previously installed electronic wallet 114 on his/her mobile device, then another link contained in the SMS message will allow him/her to download and install electronic wallet 114 on the mobile device prior to downloading the package representing electronic coupon 113.
Electronic wallet 114 contains 5 major components:
1) A set 610 of coupons that are known by the wallet to be currently valid 2) A set 612 of coupons whose current validity is not known to the wallet;
3) An optional set 614 of coupons which are known to be currently invalid;
4) Validity test logic 604 which responds to a validity event 603 by determining which set of coupons a given coupon currently belongs to; and 5) a program 602 that displays barcodes belonging to the set of coupons that are known to be currently valid in a form that a barcode scaimer can read. Where local communications link 120 is used to provide the barcode to point of sale system 118, the program 602 provides the barcodes via communications link 120.
The sets of coupons may be implemented using any technique that divides the coupons into three distinct groups. Example implementations are flags associated with the coupons that indicate which of the sets a particular coupon belongs to and a linked list for each set of coupons.
When a coupon is placed into the wallet for the first time, it is placed in the set 612 of coupons whose validity is unknown. This is the first validity event 603 for the coupon. The wallet responds to validity event 603 by checking the validity of the coupon. The validity check is done using the validity information for the coupon that is contained in control data 106. In some cases, the check may involve validity server 122. If the checks indicate that the coupon is valid, wallet 114 places the coupon in set 610 of coupons known to be valid.
Indicating to the portable device that the barcode was read At this point, the barcode may be displayed by the end user only from wallet 114 and only by display barcode function 602. This operation will only initiate the display of barcodes from coupons belonging to set 610 of coupons which the wallet knows to be valid.
Execution of display barcode function 602 is a validity event. Operation 602 is the only operation that displays the actual barcode in readable form on the mobile device. In the case of implementations in which the barcode is provided to point of sale system 118 by communications link 120, only operation 602 will provide the barcode to the point of sale system.
When the user wishes to present the coupon, s/he can then access this coupon by running the wallet application and selecting the particular coupon for display from set 610 of coupons known to be valid. This causes display barcode function 602 to be executed. When the user executes this operation, mobile device 112 displays the barcode to the bar code reader for scanning as shown in FIG. 1. Because the execution is a validity event 603, validity test logic 604 will move the coupon into the set 612 of coupons whose validity is unknown. The coupon will remain in set 612 until validity test logic 604 has determined its validity.
Where validity is conditioned on a successful read of the barcode (as is the case, for example, with n-use coupons), validity test logic 604 will use a conflrmation from point of sale system 118 in the validity check if the confirmation is available; otherwise, it will obtain information that confirms that the read was successful from validity server 122, as shown in flowchart 300 in FIG. 3. At 302, the barcode displayed by mobile device 112 is scanned; if the scan is not successful (304), it is repeated (306); if it is successful, success is indicated locally by one or more of the mechanisms:
1) Generating a beep to acknowledge an accurate read (308) 2) Confirming the read via a signal sent to the mobile device by a communication method such as Bluetooth and a protocol such as Object Exchange (OBEX) (310).
3) Sending a notification to POS backend server 124 (312) indicating that the barcode has been successfully read, from whence a notification that the barcode has been redeemed is sent to validity server 122 (314).
Revalidation of the coupon: FIG. 2 FIG. 2 is a flowchart 200 of how a coupon is validated when it is first put into wallet 114 and validated again in response to a provision of the coupon's barcode to point of sale system 118.
In the latter case, the validation event is the provision of the coupon's barcode to the point of sale system. This validation event is relevant to n-use coupons. Each display and successful read of the coupon represents a use of the coupon. At 202, wallet 114 receives the coupon; this is a validity event 603, so at 206, validity test logic 604 first places the new coupon in set 612 and then checks the current validity of the coupon using information in control data 106 and/or information received from validity server 122 and places the coupon in set 610, 612, or 614 as required by the results of the validity check. If the coupon is in set 612, validity test logic 604 may attempt validation again later. In some embodiments, the downloaded coupon may be assumed to be valid, in which case, step 206 would be omitted and the coupon would be immediately placed in set 610. Assuming the coupon is in set 610, as shown at 208, display barcode function 602 displays the barcode (210). This is the barcode display validity event, so the function places the coupon in set 612. The information required for the validity check for this second validity event is whether the barcode was read by point of sale system 118. Wallet 114 may determine whether the barcode was read either on the basis of information obtained locally from point of sale system 118 or from validity server 122. As shown at 214, if wallet 114 is able to obtain a read confirmation locally, branch 224 is taken;
otherwise, branch 220 is taken.
Wallet 114 may receive local confirmation that the barcode was read in at least the following ways:
= via wireless link 120;
= by detecting the "beep" produced by point of sale system 118 when the code is read;
= by detecting depression of a button that the user pushes when the user hears the "beep".
if no local read confirmation is received (220), validation must be done using information from validity server 122, as shown at 222. If local read confirmation is received (224), validation at 228 may be done on the basis of the read confirrnation; otherwise it is done using the validity information from validity server 122. If the coupon is still valid, the validity test logic restores it to the set 610 of coupons known to be currently valid (228, 232); if it is invalid, the validity test logic moves it to the set of coupons 614 known to be currently invalid (238, 240) or simply discards the electronic coupon. If the validity test logic cannot determine whether the coupon is valid or invalid (236,242), it remains in the set 612 of coupons whose current validity is unknown. Loop 244 is repeated each time a user selects display barcode function 602.
The revalidation may involve only information available in the wallet, may involve information obtained from point of sale system 118, may involve contacting validity server 122 for current validity information about the coupon the barcode belongs to, or may involve information from a combination of these sources. For example, if the display barcode function has received local confirmation k that the barcode has been read and provides the confirmation to validity test logic 604 (226), validity test logic 604 can use that information to determine whether the coupon is still valid. If there is no local confirmation that the barcode has been read, validity test logic 604 can wait for a period of time which permits the information that the barcode has been read to propagate from point of sale system 118 via POS backend server 124 to validity server 122 and then can obtain the information from validity server 122 (222). The wait period may be part of control data 106 or the validity test logic may determine the wait based on its experience with the length of time it takes for information belonging to a given class of coupon to be propagated to validity server 122. It should be noted here that because validity server 122 provides a source of validity information wliich is independent of the POS system, validity test logic 604 may check the validity of coupons in wallet 114 at any time, not just when the coupon is first received in electronic wallet 114 or when the coupon has been communicated to the POS
system.
Where server 122 is being contacted, the wallet may periodically retry the process for the time period specified in the coupon's Control Data 106. The retries will be stopped once one of the following three conditions is met:
1) The electronic wallet is able to successfully contact validity server 122 and receive information from which the electronic wallet can determine the coupon's validity.
2) The electronic wallet fails to contact validity server 122 during the period of time specified in Control Data 106.
3) The electronic wallet fails to receive information from validity server 122 which the electronic wallet can use to determine the validity of the coupon during the period of time specified in Control Data 106.
FIG. 4 presents at 400 details of how validity information is obtained from POS 118 when mobile device 112 has a Bluetooth link to POS 118. After display bar code function 602 has provided the barcode to point of sale system 118 and put the barcode's coupon into set 612, validity test logic 604 requests an acknowledgment signal from POS system 118 that POS
system 118 has read the barcode (402). POS system 118 receives the request at 408 and provides the signal at 410. If the validity test logic does not receive the acknowledgment, it tries again for a limited number of times. Otherwise, it uses the acknowledgment to determine whether the coupon is still valid at decision block 228 of FIG. 2.
FIG. 5 shows details of getting validity information from validity server 122 (block 222 in FIG.
2). When no local read confirmation is received, validity test logic 604 requests validity info from validity server 122 (502). As shown at 508, if the validity information available on validity server 122 permits the validity of the bar code's coupon to be determined, the validity is determined as shown beginning at block 228 in FIG. 2; otherwise, validity test logic 604 continues to attempt to obtain the information from validity server 122 until a time limit is reached (512); if the information is not obtained, validity test logic 604 stops checking for validity and continues at loop 244 in FIG. 2.
While display barcode function 602 is the only function which will display a coupon's barcode in a fashion that is readable by scanner 116, there may be other functions in wallet 114 which permit users to examine the coupons in each set of coupons. A coupon in a set may further have user-visible validation status information associated with it. For example, the user-visible validation status information for an n-use coupon in set 610 may indicate the number of uses remaining, while the user-visible status information for such a coupon in set 614 may indicate that no uses remain and the user-visible status information for such a coupon in set 612 may indicate that wallet 114 is attempting to obtain the coupon's current validity status from validity server 122.
Using system 100 with an n-use coupon The following is a detailed example of how the system described in Figure 1 would work in practice for an n-use coupon. As already explained, an n-use coupon is one that may be used a fixed number of times and then becomes invalid. In the case of the n-use coupon, the validity event is provision of the coupon to a barcode reading system 118. Because the use count for an n-use coupon will not change until it is again used, the validity check for a given use may be done at any time during the period of time between the given use and the next use and thus may be done separately from the provision of the barcode to the POS system.
The first step is placing parameters for the n-use coupons on the server that is to distribute them.
At a minimum, the parameters will include the numbers for the coupons and the validity conditions for the coupons. For an n-use coupon, the validity conditions specify the number of times the coupon can be used.
Once the promotion has started, a user makes a request via an SMS shortcode requesting that a particular coupon be returned to the mobile device. This SMS message could be in response to a specific SMS shortcode advertised on television, radio or other medium. The Content Delivery Server would receive this request and send a message to Coupon Package Generator 104 to assemble a package containing the requested coupon in graphic form along with its associated validity data. Each coupon has a unique barcode. Once the package was assembled, it would be published to Content Delivery Server 102. Content Delivery Server 102 would then return an SMS message to the mobile device. This returned SMS message would contain a link that the user could click on to download the package containing the electronic coupon 113 coupon and optionally a link for the user to click to download electronic wallet program 114.
When the user clicks on the link in the SMS to download the coupon package, the coupon package would be downloaded from Content Delivery Server 102 to mobile device 112 and provided to electronic wallet program 114. Wallet 114 will then place the coupon in the set 612 of coupons whose validity is not known.
Wallet 114 then uses validity test logic 604 to determine the current validity of the coupon. In some cases, all the information necessary will be contained in the coupon's control data 106; in other cases, validity test logic 604 may have to obtain validity information from validity server 122. If validity test logic 604 determines that the coupon is valid, it goes into set of coupons known to be currently valid 610; if validity test logic 604 determines that the coupon is not valid, it is discarded or goes into set 614 of coupons known to be invalid.
Otherwise, it remains in set 612 of coupons whose current validity is unknown. When validity test logic 604 initially determines the validity of an n-use coupon, it associates a counter with the n-use coupon and sets the counter's value to (max-no-of-uses).
When the user enters a retail location and wishes to display the coupon, he/she runs the wallet application, selects the coupon from the set of coupons known to be valid 610 that he/she wishes to display, and indicates display bar code function 602 to mobile device 112.
While the coupon is displayed, the wallet places it into the set of coupons 612 whose validity is currently unknown (preventing it from being displayed again), and the store clerk scans the cell phone display with a bar code scanner.
While the coupon is displayed, the wallet attempts to confirm that the bar code has been accurately read. Confirmation may be based on the "beep" emitted from point of sale system 118 when the barcode is read, on information obtained via wireless communication between mobile device 112 and point of sale system 118, or on the push of a button on the mobile device in response to the "beep". If the wallet receives the confirmation, it removes the bar code from the display on the mobile device. Validity test logic 604 then decrements the coupon's use count. If the use count has reached 0, the coupon is invalid and validity test logic 604 places it in set 614 of coupons known to be invalid; if it has not yet reached 0, the coupon is still valid and validity test logic 604 places it in set 610 of coupons known to be valid.
If there is no confirmation that the barcode was read, the wallet waits for a period of time and then removes the coupon from the display. Next, after a period that it deems sufficient for information about the read to reach validity server 122 via POS backend server 124 and then attempts to perform a remote validation.
The wallet sends a validation request to the validity Server. What is in the request and how validity server 122 responds depends on the design of validity server 122. At a minimum, the request will require the coupon's barcode. The validity server may respond by indicating whether the coupon is valid or invalid or that it doesn't know or may respond by returning all of the validity information it has regarding the coupon, leaving it up to the wallet to determine validity, or.may do something in between with regard both to the information it requires from the wallet and the information it returns to the wallet. The request may also specify the amount of time to continue to attempt to determine whether the coupon is still valid.
If the wallet is unable to contact the validity Server, it will periodically re-check the validity Server for an updated status. This processes repeats periodically for the amount of time specified in the Control Data. If at the end of this time period, the electronic wallet is not able to i) contact the control server, or ii) obtain the information needed to determine validity from the validity Server, then the coupon is left in the set of coupons whose current validity is unknown and the update process ceases. A validity status message associated with the coupon may indicate why the coupon's validity is unknown. If the wallet receives information from validity server 122 that indicates that the coupon is valid, then it moves the coupon into the set 610 of coupons known to be valid; if the information indicates that the coupon is invalid, then it moves the coupon into the set 614 of coupons known to be invalid, as described above.
Variations on system 100 Ways of obtaining validity information In the mobile device:
= The mobile device polls POS backend server 124 directly.
= POS backend server 124 pushes data to mobile device.
= Validity server 122 pushes data to mobile device.
In the validity server:
= Validity server 122 polls one or more POS backend servers 124. They could request one "number" at a time or a batch of numbers.
= POS backend servers 124 push data to validity server 122. They could push one "number" at a time or a batch of numbers.
= End users input information about themselves that is relevant to coupon validation into validity server 122.
Otherways to use validation events and validation checking:
Membership = Club memberships that have a contract expiration date but also require monthly payments. A local validation check on the phone can check to see if the term of the membership is still valid. If not valid due to expiration, a remote check can refresh the coupon. Similarly, monthly payments must be made during the term in order to keep the membership valid, so a remote validity check after each use can provide dunning message and disable the membership code if bills are not paid.
= Store membership that is secured by a credit card and has no expiration date.
After each use, the wallet can check the validity server which will respond with information regarding when the underlying credit card is going to expire. When it is near the expiration time, the validity server can respond with a message to update the credit card. If the credit card has expired, the membership can become invalid on that date. If the credit card has been updated, the local expiration date can be extended.
Tickets = One-time use tickets such as movie tickets. Movie tickets that may only be used one time would be an example of an n-use coupon where n=1.
= Airline tickets which have multiple segments/related bar codes. These methods could be used to invalidate each segment after it was used as each segment needs to be invalidated separately, Other = A validity event in one coupon which affects the validity of another coupon.
For example, in the airline tickets just described, the validity event which resulted in one segment being invalidated could also render the next segment valid.
Conclusion The foregoing Detailed Description has disclosed to those skilled in the relevant technologies how to use Applicants' techniques to prevent a mobile device that contains electronic coupons with barcodes from providing the barcodes of invalid coupons to a barcode reading system. The Detailed Description has further disclosed the best mode presently known to Applicants of implementing their techniques. It will be, however, immediately apparent to those skilled in the relevant technologies that Applicants' techniques represent a fundamental solution to the problem of ensuring that a coupon is valid without having to check the coupon's validity at the time the coupon's barcode is provided to the barcode reading system. There are and will be many different kinds of barcode reading systems and many different ways of providing the barcode to the barcode reading system, as well as many different ways of providing information about the reading process to the mobile device when the barcode is read and varying amounts of such information. The same is true with regard to validity information which the mobile device receives from a validity server.
The kinds of validity events, their semantics, and the manner in which the mobile device responds to a given validity event are as numerous as the different kinds of functions which an electronic coupon may have and the kinds of information required to detect and deal with a given validity event depends completely on the semantics of the event. Human ingenuity can further be relied upon to constantly increase the capabilities of the mobile devices, barcode reading systems, servers, and networks in which the techniques disclosed herein are implemented and also to constantly develop new kinds of coupons, new validity events, and new responses to validity events.
For all of the foregoing reasons, the Detailed Description is to be regarded as being in all respects exemplary and not restrictive, and the breadth of the invention disclosed herein is to be determined not from the Detailed Description, but rather from the claims as interpreted with the full breadth permitted by the patent laws.
Where validity is conditioned on a successful read of the barcode (as is the case, for example, with n-use coupons), validity test logic 604 will use a conflrmation from point of sale system 118 in the validity check if the confirmation is available; otherwise, it will obtain information that confirms that the read was successful from validity server 122, as shown in flowchart 300 in FIG. 3. At 302, the barcode displayed by mobile device 112 is scanned; if the scan is not successful (304), it is repeated (306); if it is successful, success is indicated locally by one or more of the mechanisms:
1) Generating a beep to acknowledge an accurate read (308) 2) Confirming the read via a signal sent to the mobile device by a communication method such as Bluetooth and a protocol such as Object Exchange (OBEX) (310).
3) Sending a notification to POS backend server 124 (312) indicating that the barcode has been successfully read, from whence a notification that the barcode has been redeemed is sent to validity server 122 (314).
Revalidation of the coupon: FIG. 2 FIG. 2 is a flowchart 200 of how a coupon is validated when it is first put into wallet 114 and validated again in response to a provision of the coupon's barcode to point of sale system 118.
In the latter case, the validation event is the provision of the coupon's barcode to the point of sale system. This validation event is relevant to n-use coupons. Each display and successful read of the coupon represents a use of the coupon. At 202, wallet 114 receives the coupon; this is a validity event 603, so at 206, validity test logic 604 first places the new coupon in set 612 and then checks the current validity of the coupon using information in control data 106 and/or information received from validity server 122 and places the coupon in set 610, 612, or 614 as required by the results of the validity check. If the coupon is in set 612, validity test logic 604 may attempt validation again later. In some embodiments, the downloaded coupon may be assumed to be valid, in which case, step 206 would be omitted and the coupon would be immediately placed in set 610. Assuming the coupon is in set 610, as shown at 208, display barcode function 602 displays the barcode (210). This is the barcode display validity event, so the function places the coupon in set 612. The information required for the validity check for this second validity event is whether the barcode was read by point of sale system 118. Wallet 114 may determine whether the barcode was read either on the basis of information obtained locally from point of sale system 118 or from validity server 122. As shown at 214, if wallet 114 is able to obtain a read confirmation locally, branch 224 is taken;
otherwise, branch 220 is taken.
Wallet 114 may receive local confirmation that the barcode was read in at least the following ways:
= via wireless link 120;
= by detecting the "beep" produced by point of sale system 118 when the code is read;
= by detecting depression of a button that the user pushes when the user hears the "beep".
if no local read confirmation is received (220), validation must be done using information from validity server 122, as shown at 222. If local read confirmation is received (224), validation at 228 may be done on the basis of the read confirrnation; otherwise it is done using the validity information from validity server 122. If the coupon is still valid, the validity test logic restores it to the set 610 of coupons known to be currently valid (228, 232); if it is invalid, the validity test logic moves it to the set of coupons 614 known to be currently invalid (238, 240) or simply discards the electronic coupon. If the validity test logic cannot determine whether the coupon is valid or invalid (236,242), it remains in the set 612 of coupons whose current validity is unknown. Loop 244 is repeated each time a user selects display barcode function 602.
The revalidation may involve only information available in the wallet, may involve information obtained from point of sale system 118, may involve contacting validity server 122 for current validity information about the coupon the barcode belongs to, or may involve information from a combination of these sources. For example, if the display barcode function has received local confirmation k that the barcode has been read and provides the confirmation to validity test logic 604 (226), validity test logic 604 can use that information to determine whether the coupon is still valid. If there is no local confirmation that the barcode has been read, validity test logic 604 can wait for a period of time which permits the information that the barcode has been read to propagate from point of sale system 118 via POS backend server 124 to validity server 122 and then can obtain the information from validity server 122 (222). The wait period may be part of control data 106 or the validity test logic may determine the wait based on its experience with the length of time it takes for information belonging to a given class of coupon to be propagated to validity server 122. It should be noted here that because validity server 122 provides a source of validity information wliich is independent of the POS system, validity test logic 604 may check the validity of coupons in wallet 114 at any time, not just when the coupon is first received in electronic wallet 114 or when the coupon has been communicated to the POS
system.
Where server 122 is being contacted, the wallet may periodically retry the process for the time period specified in the coupon's Control Data 106. The retries will be stopped once one of the following three conditions is met:
1) The electronic wallet is able to successfully contact validity server 122 and receive information from which the electronic wallet can determine the coupon's validity.
2) The electronic wallet fails to contact validity server 122 during the period of time specified in Control Data 106.
3) The electronic wallet fails to receive information from validity server 122 which the electronic wallet can use to determine the validity of the coupon during the period of time specified in Control Data 106.
FIG. 4 presents at 400 details of how validity information is obtained from POS 118 when mobile device 112 has a Bluetooth link to POS 118. After display bar code function 602 has provided the barcode to point of sale system 118 and put the barcode's coupon into set 612, validity test logic 604 requests an acknowledgment signal from POS system 118 that POS
system 118 has read the barcode (402). POS system 118 receives the request at 408 and provides the signal at 410. If the validity test logic does not receive the acknowledgment, it tries again for a limited number of times. Otherwise, it uses the acknowledgment to determine whether the coupon is still valid at decision block 228 of FIG. 2.
FIG. 5 shows details of getting validity information from validity server 122 (block 222 in FIG.
2). When no local read confirmation is received, validity test logic 604 requests validity info from validity server 122 (502). As shown at 508, if the validity information available on validity server 122 permits the validity of the bar code's coupon to be determined, the validity is determined as shown beginning at block 228 in FIG. 2; otherwise, validity test logic 604 continues to attempt to obtain the information from validity server 122 until a time limit is reached (512); if the information is not obtained, validity test logic 604 stops checking for validity and continues at loop 244 in FIG. 2.
While display barcode function 602 is the only function which will display a coupon's barcode in a fashion that is readable by scanner 116, there may be other functions in wallet 114 which permit users to examine the coupons in each set of coupons. A coupon in a set may further have user-visible validation status information associated with it. For example, the user-visible validation status information for an n-use coupon in set 610 may indicate the number of uses remaining, while the user-visible status information for such a coupon in set 614 may indicate that no uses remain and the user-visible status information for such a coupon in set 612 may indicate that wallet 114 is attempting to obtain the coupon's current validity status from validity server 122.
Using system 100 with an n-use coupon The following is a detailed example of how the system described in Figure 1 would work in practice for an n-use coupon. As already explained, an n-use coupon is one that may be used a fixed number of times and then becomes invalid. In the case of the n-use coupon, the validity event is provision of the coupon to a barcode reading system 118. Because the use count for an n-use coupon will not change until it is again used, the validity check for a given use may be done at any time during the period of time between the given use and the next use and thus may be done separately from the provision of the barcode to the POS system.
The first step is placing parameters for the n-use coupons on the server that is to distribute them.
At a minimum, the parameters will include the numbers for the coupons and the validity conditions for the coupons. For an n-use coupon, the validity conditions specify the number of times the coupon can be used.
Once the promotion has started, a user makes a request via an SMS shortcode requesting that a particular coupon be returned to the mobile device. This SMS message could be in response to a specific SMS shortcode advertised on television, radio or other medium. The Content Delivery Server would receive this request and send a message to Coupon Package Generator 104 to assemble a package containing the requested coupon in graphic form along with its associated validity data. Each coupon has a unique barcode. Once the package was assembled, it would be published to Content Delivery Server 102. Content Delivery Server 102 would then return an SMS message to the mobile device. This returned SMS message would contain a link that the user could click on to download the package containing the electronic coupon 113 coupon and optionally a link for the user to click to download electronic wallet program 114.
When the user clicks on the link in the SMS to download the coupon package, the coupon package would be downloaded from Content Delivery Server 102 to mobile device 112 and provided to electronic wallet program 114. Wallet 114 will then place the coupon in the set 612 of coupons whose validity is not known.
Wallet 114 then uses validity test logic 604 to determine the current validity of the coupon. In some cases, all the information necessary will be contained in the coupon's control data 106; in other cases, validity test logic 604 may have to obtain validity information from validity server 122. If validity test logic 604 determines that the coupon is valid, it goes into set of coupons known to be currently valid 610; if validity test logic 604 determines that the coupon is not valid, it is discarded or goes into set 614 of coupons known to be invalid.
Otherwise, it remains in set 612 of coupons whose current validity is unknown. When validity test logic 604 initially determines the validity of an n-use coupon, it associates a counter with the n-use coupon and sets the counter's value to (max-no-of-uses).
When the user enters a retail location and wishes to display the coupon, he/she runs the wallet application, selects the coupon from the set of coupons known to be valid 610 that he/she wishes to display, and indicates display bar code function 602 to mobile device 112.
While the coupon is displayed, the wallet places it into the set of coupons 612 whose validity is currently unknown (preventing it from being displayed again), and the store clerk scans the cell phone display with a bar code scanner.
While the coupon is displayed, the wallet attempts to confirm that the bar code has been accurately read. Confirmation may be based on the "beep" emitted from point of sale system 118 when the barcode is read, on information obtained via wireless communication between mobile device 112 and point of sale system 118, or on the push of a button on the mobile device in response to the "beep". If the wallet receives the confirmation, it removes the bar code from the display on the mobile device. Validity test logic 604 then decrements the coupon's use count. If the use count has reached 0, the coupon is invalid and validity test logic 604 places it in set 614 of coupons known to be invalid; if it has not yet reached 0, the coupon is still valid and validity test logic 604 places it in set 610 of coupons known to be valid.
If there is no confirmation that the barcode was read, the wallet waits for a period of time and then removes the coupon from the display. Next, after a period that it deems sufficient for information about the read to reach validity server 122 via POS backend server 124 and then attempts to perform a remote validation.
The wallet sends a validation request to the validity Server. What is in the request and how validity server 122 responds depends on the design of validity server 122. At a minimum, the request will require the coupon's barcode. The validity server may respond by indicating whether the coupon is valid or invalid or that it doesn't know or may respond by returning all of the validity information it has regarding the coupon, leaving it up to the wallet to determine validity, or.may do something in between with regard both to the information it requires from the wallet and the information it returns to the wallet. The request may also specify the amount of time to continue to attempt to determine whether the coupon is still valid.
If the wallet is unable to contact the validity Server, it will periodically re-check the validity Server for an updated status. This processes repeats periodically for the amount of time specified in the Control Data. If at the end of this time period, the electronic wallet is not able to i) contact the control server, or ii) obtain the information needed to determine validity from the validity Server, then the coupon is left in the set of coupons whose current validity is unknown and the update process ceases. A validity status message associated with the coupon may indicate why the coupon's validity is unknown. If the wallet receives information from validity server 122 that indicates that the coupon is valid, then it moves the coupon into the set 610 of coupons known to be valid; if the information indicates that the coupon is invalid, then it moves the coupon into the set 614 of coupons known to be invalid, as described above.
Variations on system 100 Ways of obtaining validity information In the mobile device:
= The mobile device polls POS backend server 124 directly.
= POS backend server 124 pushes data to mobile device.
= Validity server 122 pushes data to mobile device.
In the validity server:
= Validity server 122 polls one or more POS backend servers 124. They could request one "number" at a time or a batch of numbers.
= POS backend servers 124 push data to validity server 122. They could push one "number" at a time or a batch of numbers.
= End users input information about themselves that is relevant to coupon validation into validity server 122.
Otherways to use validation events and validation checking:
Membership = Club memberships that have a contract expiration date but also require monthly payments. A local validation check on the phone can check to see if the term of the membership is still valid. If not valid due to expiration, a remote check can refresh the coupon. Similarly, monthly payments must be made during the term in order to keep the membership valid, so a remote validity check after each use can provide dunning message and disable the membership code if bills are not paid.
= Store membership that is secured by a credit card and has no expiration date.
After each use, the wallet can check the validity server which will respond with information regarding when the underlying credit card is going to expire. When it is near the expiration time, the validity server can respond with a message to update the credit card. If the credit card has expired, the membership can become invalid on that date. If the credit card has been updated, the local expiration date can be extended.
Tickets = One-time use tickets such as movie tickets. Movie tickets that may only be used one time would be an example of an n-use coupon where n=1.
= Airline tickets which have multiple segments/related bar codes. These methods could be used to invalidate each segment after it was used as each segment needs to be invalidated separately, Other = A validity event in one coupon which affects the validity of another coupon.
For example, in the airline tickets just described, the validity event which resulted in one segment being invalidated could also render the next segment valid.
Conclusion The foregoing Detailed Description has disclosed to those skilled in the relevant technologies how to use Applicants' techniques to prevent a mobile device that contains electronic coupons with barcodes from providing the barcodes of invalid coupons to a barcode reading system. The Detailed Description has further disclosed the best mode presently known to Applicants of implementing their techniques. It will be, however, immediately apparent to those skilled in the relevant technologies that Applicants' techniques represent a fundamental solution to the problem of ensuring that a coupon is valid without having to check the coupon's validity at the time the coupon's barcode is provided to the barcode reading system. There are and will be many different kinds of barcode reading systems and many different ways of providing the barcode to the barcode reading system, as well as many different ways of providing information about the reading process to the mobile device when the barcode is read and varying amounts of such information. The same is true with regard to validity information which the mobile device receives from a validity server.
The kinds of validity events, their semantics, and the manner in which the mobile device responds to a given validity event are as numerous as the different kinds of functions which an electronic coupon may have and the kinds of information required to detect and deal with a given validity event depends completely on the semantics of the event. Human ingenuity can further be relied upon to constantly increase the capabilities of the mobile devices, barcode reading systems, servers, and networks in which the techniques disclosed herein are implemented and also to constantly develop new kinds of coupons, new validity events, and new responses to validity events.
For all of the foregoing reasons, the Detailed Description is to be regarded as being in all respects exemplary and not restrictive, and the breadth of the invention disclosed herein is to be determined not from the Detailed Description, but rather from the claims as interpreted with the full breadth permitted by the patent laws.
Claims (21)
1. A method used in a mobile device which can provide barcodes belonging to electronic coupons to a barcode reading system of ensuring that the provided barcodes belong to valid electronic coupons, the method comprising the steps performed in the mobile device of:
responding to a validity event which may affect the validity of a given electronic coupon by inhibiting provision of the given electronic coupon's barcode to the barcode reading system;
determining whether the given electronic coupon is currently valid; and if the given electronic coupon is currently valid, again permitting provision of the given coupon's barcode to the barcode reading system.
responding to a validity event which may affect the validity of a given electronic coupon by inhibiting provision of the given electronic coupon's barcode to the barcode reading system;
determining whether the given electronic coupon is currently valid; and if the given electronic coupon is currently valid, again permitting provision of the given coupon's barcode to the barcode reading system.
2. The method set forth in claim 1 wherein:
in the step of determining whether the given electronic coupon is currently valid, the determination is made using validity information about the electronic coupon that is stored in the mobile device.
in the step of determining whether the given electronic coupon is currently valid, the determination is made using validity information about the electronic coupon that is stored in the mobile device.
3. The method set forth in claim 1 wherein the step of determining whether the given electronic coupon is currently valid includes the steps of:
obtaining validity information from a source external to the mobile device;
and using the obtained validity information to determine whether the given electronic coupon is currently valid.
obtaining validity information from a source external to the mobile device;
and using the obtained validity information to determine whether the given electronic coupon is currently valid.
4. The method set forth in claim 3 wherein:
the external source is the barcode reading system.
the external source is the barcode reading system.
5. The method set forth in claim 3 wherein:
the external source is a validity server.
the external source is a validity server.
6. The method set forth in claim 1 wherein:
the validity event is a provision of the given electronic coupon's barcode to the barcode reading system.
the validity event is a provision of the given electronic coupon's barcode to the barcode reading system.
7. The method set forth in claim 6 wherein the step of determining whether the given electronic coupon is currently valid includes the steps of:
obtaining an indication from the barcode reading system that the barcode was received by the barcode reading system; and determining whether the given electronic coupon is currently valid by using the indication to determine whether the given electronic coupon is valid for a further use.
obtaining an indication from the barcode reading system that the barcode was received by the barcode reading system; and determining whether the given electronic coupon is currently valid by using the indication to determine whether the given electronic coupon is valid for a further use.
8. The method set forth in claim 6 wherein:
the step of determining whether the given electronic coupon is currently valid includes the steps of:
obtaining an indication from the validity server whether the barcode was received by the barcode reading system; and determining whether the given electronic coupon is currently valid by using the indication to determine whether the given electronic coupon is valid for a further use.
the step of determining whether the given electronic coupon is currently valid includes the steps of:
obtaining an indication from the validity server whether the barcode was received by the barcode reading system; and determining whether the given electronic coupon is currently valid by using the indication to determine whether the given electronic coupon is valid for a further use.
9. The method set forth in claim 1 wherein:
the validity event is determining from the mobile device's clock that a point in time that affects the validity of the given electronic coupon has been reached.
the validity event is determining from the mobile device's clock that a point in time that affects the validity of the given electronic coupon has been reached.
10. The method set forth in claim 1 wherein:
the validity event is receiving location input in the mobile device that affects the validity of the given electronic coupon.
the validity event is receiving location input in the mobile device that affects the validity of the given electronic coupon.
11. The method set forth in claim 1 wherein:
the validity event is receiving input in the mobile device that redefines the validity of the given electronic coupon.
the validity event is receiving input in the mobile device that redefines the validity of the given electronic coupon.
12. The method set forth in claim 1 wherein:
the validity event is receiving the given electronic coupon in the mobile device.
the validity event is receiving the given electronic coupon in the mobile device.
13. A memory device which is accessible to the mobile device, the memory device being characterized in that:
the memory device contains code which, when executed by the mobile device, performs the method set forth in claim 1.
the memory device contains code which, when executed by the mobile device, performs the method set forth in claim 1.
14. A mobile device that provides barcodes belonging to electronic coupons to a barcode reading system, the mobile device being characterized in that:
the mobile device includes an electronic coupon handler that responds to a validity event which may affect the validity of a given electronic coupon by inhibiting provision of the given electronic coupon's barcode to the barcode reading system and determining whether the given electronic coupon is currently valid before again permitting provision of the given coupon's barcode to the barcode reading system.
the mobile device includes an electronic coupon handler that responds to a validity event which may affect the validity of a given electronic coupon by inhibiting provision of the given electronic coupon's barcode to the barcode reading system and determining whether the given electronic coupon is currently valid before again permitting provision of the given coupon's barcode to the barcode reading system.
15. The mobile device set forth in claim 14 further characterized in that:
the given electronic coupon has validity information associated therewith in the mobile device; and the associated validity information is used to determine whether the given electronic coupon is currently valid.
the given electronic coupon has validity information associated therewith in the mobile device; and the associated validity information is used to determine whether the given electronic coupon is currently valid.
16. The mobile device set forth in claim 14 further characterized in that:
the mobile device obtains validity information from a source external to the mobile device; and the obtained validity information is used to determine whether the given electronic coupon is currently valid.
the mobile device obtains validity information from a source external to the mobile device; and the obtained validity information is used to determine whether the given electronic coupon is currently valid.
17. The mobile device set forth in claim 16 further characterized in that:
the external source is the barcode reading system.
the external source is the barcode reading system.
18. The mobile device set forth in claim 16 further characterized in that:
the external source is a validity server.
the external source is a validity server.
19. The mobile device set forth in claim 14 further characterized in that:
the validity event is a provision of the given electronic coupon's barcode to the barcode reading system.
the validity event is a provision of the given electronic coupon's barcode to the barcode reading system.
20. The mobile device set forth in claim 19 further characterized in that:
the electronic coupon handler determines whether the given electronic coupon is valid for a further use.
the electronic coupon handler determines whether the given electronic coupon is valid for a further use.
21. A memory device which is accessible to the mobile device, the memory device being characterized in that:
the memory device contains code which, when executed by the mobile device, implements the mobile device set forth in claim 14.
the memory device contains code which, when executed by the mobile device, implements the mobile device set forth in claim 14.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68492305P | 2005-05-26 | 2005-05-26 | |
US60/684,923 | 2005-05-26 | ||
PCT/US2006/020659 WO2006128094A1 (en) | 2005-05-26 | 2006-05-26 | Checking validity of barcodes in mobile devices that display the barcodes for reading by barcode readers |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2610341A1 true CA2610341A1 (en) | 2006-11-30 |
Family
ID=37452378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002610341A Abandoned CA2610341A1 (en) | 2005-05-26 | 2006-05-26 | Checking validity of barcodes in mobile devices that display the barcodes for reading by barcode readers |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1922659A1 (en) |
CA (1) | CA2610341A1 (en) |
WO (1) | WO2006128094A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120136780A1 (en) * | 2010-08-27 | 2012-05-31 | Khalid El-Awady | Account number based bill payment platform apparatuses, methods and systems |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8430300B2 (en) | 2005-05-26 | 2013-04-30 | Codebroker, Llc | Using validity events to control the use of coupons containing barcodes in mobile devices that display the barcodes for reading by barcode readers |
WO2007127385A2 (en) | 2006-04-27 | 2007-11-08 | Codebroker Llc | Customizing barcode images for particular displays |
BRPI0721135A2 (en) | 2006-12-08 | 2014-04-01 | Lipso Systemes Inc | MEDIA OBJECT OPTIMIZATION SYSTEM AND METHOD |
US8746581B2 (en) | 2007-06-19 | 2014-06-10 | Codebroker, Llc | Techniques for providing an electronic representation of a card |
WO2011140301A1 (en) * | 2010-05-05 | 2011-11-10 | Last Mile Technologies, Llc | Method and apparatus for making secure transactions using an internet accessible device and application |
US20130256395A1 (en) * | 2012-03-29 | 2013-10-03 | Symbol Technologies, Inc. | System for and method of expediting self-checkout at point-of-sale stations |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3527211B2 (en) * | 2000-08-01 | 2004-05-17 | 日立マクセル株式会社 | Electronic coupon system |
US7044362B2 (en) * | 2001-10-10 | 2006-05-16 | Hewlett-Packard Development Company, L.P. | Electronic ticketing system and method |
-
2006
- 2006-05-26 WO PCT/US2006/020659 patent/WO2006128094A1/en active Application Filing
- 2006-05-26 CA CA002610341A patent/CA2610341A1/en not_active Abandoned
- 2006-05-26 EP EP06771430A patent/EP1922659A1/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120136780A1 (en) * | 2010-08-27 | 2012-05-31 | Khalid El-Awady | Account number based bill payment platform apparatuses, methods and systems |
Also Published As
Publication number | Publication date |
---|---|
EP1922659A1 (en) | 2008-05-21 |
WO2006128094A1 (en) | 2006-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8430300B2 (en) | Using validity events to control the use of coupons containing barcodes in mobile devices that display the barcodes for reading by barcode readers | |
US11449878B2 (en) | System and method of notifying user near point of sale location of available rewards at the point of sale location | |
US10410236B2 (en) | Method and system for delivering offers to users of electronic privilege cards | |
TW594514B (en) | Method and apparatus in a wireless communication system for using a selective call receiver to provide demographic information, redeem coupons, and emulate affinity cards | |
AU785223B2 (en) | Method and system for receiving, storing and processing electronic vouchers with a mobile telephone or a personal digital assistant | |
EP1297466B1 (en) | A token delivery system | |
EP1543456B1 (en) | Optimised messages containing barcode information for mobile receiving devices | |
US20120316949A1 (en) | Method and system for managing electronic coupons | |
US20080262928A1 (en) | Method and apparatus for distribution and personalization of e-coupons | |
US20080052159A1 (en) | Service promotion using encodable review codes | |
WO2007012085A2 (en) | Mobile electronic transaction system | |
WO2009116954A2 (en) | Method and system for distribution of barcode information for performing a transaction via a network | |
CA2610341A1 (en) | Checking validity of barcodes in mobile devices that display the barcodes for reading by barcode readers | |
KR100467576B1 (en) | Method and system for distributing electronic coupons | |
WO2007112129A2 (en) | Service promotion using encodable review codes | |
GB2379052A (en) | Feedback-Controlled Selective Signalling | |
KR20020071958A (en) | System and method for storing and processing data using a mobile telephone | |
JP2001338348A (en) | Method and system for managing point by using portable telephone set | |
US20110153408A1 (en) | System and method for loyalty card and coupon registration and opt out via a wireless apparatus | |
KR20120051950A (en) | A processing method for mobile coupon using user's mobile terminal | |
KR102474925B1 (en) | System and method for reward accumulation service with non-face-to-face way | |
WO2002042872A2 (en) | Method and apparatus for acquiring, maintaining, and using information to be communicated in bar code form with a mobile communications device | |
CN101281634B (en) | Optimised messages containing barcode information for mobile receiving device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |