A computer implemented process, comprising:
- storing, by a server computer, information in computer readable storage, the stored information associating each of a plurality of transaction locations with different tokens that generate different time-varying, non-predictable codes, wherein each time-varying, non-predictable code of a token is a sequence of token values generated according to secret information, shared between the token and the server computer, and a time-varying value, wherein a current token value at a current time is a function of the secret information and the time-varying value based on the current time;
- receiving, at a time, by the server computer, a request from a mobile device for digital content associated with a source;
- in response to the request, determining, by the server computer, a transaction location, based on a geographic location of the mobile device at the time of the request;
- using the stored information, identifying, by the server computer, a token associated with the determined transaction location;
- the server computer-generating a current token value for the identified token associated with the transaction location, based on the time-varying non-predictable code for the identified token, using the secret information for the identified token stored at the server computer and a current time accessible to the server computer;
- the server computer transmitting the requested digital content and the server-generated current token value to the mobile device;
- the mobile device receiving, from the server computer, and presenting, on an output of the mobile device, the digital content and the server-generated current token value;
- a token at the transaction location generating a current token value based on the time-varying, non-predictable code of the token, using secret information stored in the token and a current time accessible to the token;
- the token presenting the token-generated current token value on an output device associated with the token;
- receiving, by a computing device, an input indicating whether the token-generated current token value as presented on the output device matches the server-generated current token value as presented on the output of the mobile device thereby indicating the digital content presented on the mobile device originates from the source;
- wherein the computing device does not have a computer network connection to a centralized database to validate that the digital content presented on the mobile device originates from the source;
- processing, by the computing device, a transaction associated with the digital content presented on the mobile device based on at least the input indicating that the token-generated current token value as presented on the output device matches the server-generated current token value as presented on the output of the mobile device.