| CPC G06Q 20/3276 (2013.01) [G06K 19/06028 (2013.01); G06K 19/06037 (2013.01); G06Q 20/3224 (2013.01)] | 20 Claims |

|
1. An apparatus comprising:
at least one processor; and
memory storing instructions that, when executed by the at least one processor, configure the apparatus to:
determine that a mobile device has optically read a first optically-readable code of a plurality of optically-readable codes displayed by a plurality of display devices each at a different location, wherein the first optically-readable code indicates a software application, wherein each of the plurality of optically-readable codes is displayed for a predetermined period of time before being replaced with another of the plurality of optically-readable codes, and wherein each of the plurality of optically-readable codes encodes:
a location of a respective one of the plurality of display devices that displays the optically-readable code, and
a token that is different for each of the plurality of optically-readable codes;
communicate with the mobile device, based on the first optically-readable code, to perform a transaction with the mobile device that is executing the software application;
determine that the mobile device has optically read, during the transaction, a second optically-readable code of the plurality of optically-readable codes;
determine whether a location encoded by the first optically-readable code matches a location encoded by the second optically-readable code;
determine, based on the token of the first optically-readable code and the token of the second optically-readable code, whether a time difference between the first optically-readable code and the second optically-readable code satisfies a predetermined timeframe criterion;
approve the transaction based on determining that the location encoded by the first optically-readable code matches a location encoded by the second optically-readable code and that the time difference satisfies the predetermined time criterion; and
send a message to the mobile device indicating approval of the transaction.
|