Printing with payment validation

In one embodiment, a request to print content at a network connected printer is received from a requestor computer system via a network. Upon receipt of the request, a release code is created to authorize printing of the content when provided at the printer, and job information for the request and data associating the information with the code are stored in memory. The code, and a network address to connect the requestor system to a web site hosted by a payment validation computer system, are sent to the requestor system via the network. The code is received from the validation system, the code previously provided to the validation system by the requestor system. The job information is sent to the validation system. A payment validation is received from the validation system. The content is sent to the printer, for printing upon provision of the code at the printer.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a national stage application under 35 U.S.C. §371 of PCT/US2012/048876, filed Jul. 30, 2012.

BACKGROUND

Certain network-connected printers are capable of sending and receiving communications and printable content via the internet without being connected to a desktop computer, notebook computer, or other host computing device. Such functionality can provide considerable flexibility and efficiencies for a user, as the user may have the ability to send content to, or download and content at, such printers without the complication of first establishing a connection with a host.

The same part numbers designate the same or similar parts throughout the figures.

DETAILED DESCRIPTION OF EMBODIMENTS

Certain printing services provide users with an ability to send content to a network connected printer to be printed for a fee. In an example of existing cloud-based public printing services, a service hosts an application that is accessible at a particular network connected printer and at a smartphone or other mobile computing device. A user accessing the application at the smartphone uploads to the printing service, via the application, a document or other content that the user desires to be printed. The user makes payment for the printing in advance at the smartphone via a payment process facilitated by the application. After the printing service confirms that payment for printing has been made, the service sends the content, in the form of a print job, via the internet to the printer to print

A limitation of the existing printing service described above is that the payment and confirmation of payment steps are performed via a same web application that is also the vehicle for the aspects of the transaction that are related to printing (e.g. sending the print job to the printing service, sending a print job to the printer, sending or validating any release codes, etc.). Entities that contract with a print service provider for the provider to provide to the entities' customers will likely have dramatically different payment options and desire user interfaces that coincide with the entities' trade dress, legal requirements, or other design specifications. For example, a national hotel chain that provides the service will have specifications for the application that are quite different from the requirements of a bank or other highly regulated entity that provides the service. In addition, both the hotel chain and the bank's requirements will likely be much different from the requirements of an airport providing a print fulfillment service for its customers. Consequently, as the payment and confirmation of payment steps are performed via a same web application that is the vehicle for the printing steps, changing the trade dress, look and feel, and/or legal terms relating to payment in each instance within the printing application can be a time-consuming and expensive undertaking. This situation can cause the entity that provides the paid printing service, and/or the end users, to be dissatisfied with the printing service that includes the network connected printer, and with network connected printers generally.

Accordingly, various embodiments described herein were developed to enable a cloud-based printing service that efficiently interacts with a payment validation process occurring at a payment validation website distinct from the print fulfillment system. In an example of the disclosure, a print fulfillment system hosting the print fulfillment service receives from a requestor computer system via a network, a request to print content at a network connected printer. Upon receipt of the request, the fulfillment system creates a release code to authorize printing of the content when the release code is provided at the printer, and stores in memory job information for the print request and data associating the job information with the release code. The print fulfillment system sends to the requestor system, via the network, the release code and a network address to connect the requestor system to a web site hosted by a payment validation computer system. The requestor computer sends the release code to a payment validation computer system, via a payment validation web site hosted by the validation system. The payment validation computer system in turn submits the release code to the print fulfillment system. Responsive to receipt of the release code, the print fulfillment system sends the print job information to the payment validation system. Utilizing the print job information, the payment validation computer system calculates a job cost and implements a payment process with a user. After confirming that payment has been made that is appropriate for the print job, in light of the print job information, the payment validation computer system sends data indicative of payment to the print fulfillment system. Responsive to receipt of the payment validation, the print fulfillment system sends the content to the printer for printing. Printing occurs at the printer upon the provision of the release code at the printer.

Advantages of the disclosure include that the print fulfillment system can efficiently operate with a variety of payment validation web sites that utilize different payment algorithms and customized interfaces, without the need to write or amend code to support each customer's payment method or other payment requirements. As the payment process is separate from the print fulfillment process, it is not necessary to change or amend the print fulfillment service (the customer facing application for printing) for each entity utilizing the service. Another advantage of the disclosure is that a user is not required to implement a payment method at the printer. In an example, a printer with a small touch panel or other user interface may be utilized for fulfillment as a user may enter a release code at the printer as opposed to a lengthy credit card or other payment process. The advantages described in this paragraph make it possible for the print fulfillment system to support a large number of entities and customers with disparate requirements relating to payments for printing, and to utilize printers with minimal user interface components.

As used in this application, “content” refers to text, images, and/or other subject matter or other information that can be received by a computer system for printing, and/or stored at the computer system, e.g., for later printing. A “job” or “print job” refers to content and/or instructions as to formatting and presentation of the content sent to a computer system for printing. A print job may be stored in a programming language and/or numerical form so that it can stored and used in computing devices, servers, printers and other machines capable of performing calculations and manipulating data. A “printer” or “printing device” refers to any thermal ink transfer printer, piezo ink transfer printer, dry toner-based printer, liquid toner-based printer, or any other electronic device that prints. “Printer” or “printing device” includes any multifunctional electronic device that performs a function such as scanning and/or copying in addition to printing. A “network-connected printer” refers to a printer that is connected to a network, to be capable of obtaining content, sending and receiving messages, accessing network content, and/or accessing applications via a network. An “address” for a web site or web page refers to an identifier for the web page or web site relative to other web pages or web sites on a network (e.g., the internet), and may include, but is not limited to, a URL or other network address. A “printer application” refers to a software application that is accessible to a user at a network-connected printer and that enables retrieval of content, via the network, from computing devices external to the printer. A “web browser” refers to any combination of hardware and programming configured to retrieve, present, and traverse information over an internet or intranet. An “in-application browser” refers to a web browser application that is launched during user interaction with another software application. “Mobile computing device” and “mobile device” are used synonymously, and refer to any portable computing device capable of communicating with another computing device. A “link” or “hyperlink” refers to a character string, address, button, or other interactive element included within an electronic document, web page, or other application page with a first network address that, when interacted with by a user, e.g., via a user interface device, causes the loading of an electronic document, web page, or application page with a second network address.

FIG. 1is a block diagram illustrating a system according to various embodiments.FIG. 1includes particular components, modules, etc. according to various embodiments. However, in different embodiments, more, fewer, and/or other components, modules, arrangements of components/modules, etc. may be used according to the teachings described herein. In addition, various components, modules, etc. described herein may be implemented as one or more software modules, hardware modules, special purpose hardware (e.g., application specific hardware, application specific integrated circuits (ASICs), embedded controllers, hardwired circuitry, etc.), or some combination of these.

FIG. 1shows a print fulfillment computer system102electronically connected to a requestor computer104, a payment validation computer system106, and a printer108via a network110. Print fulfillment computer system102represents generally any computing device or group of computing devices configured to send and receive network requests, send and receive data, and/or otherwise communicate with, requestor computer104, payment validation computer system106, and printer108. In examples, print fulfillment computer system102may be or include a server, desktop computer, notebook computer, mobile device, tablet computer, and/or any other computing device.

Requestor computer104represents generally a computing device, or group of computing devices, configured to send and receive network requests, send content to, and otherwise communicate with, print fulfillment computer system102and payment validation computer system106. In examples, requestor computer104may be a smartphone, tablet computer, notebook computer, desktop computer, or any other computing device.

Payment validation computer system106represents generally any computing device or group of computing devices configured to send and receive network requests, send and receive data, and/or otherwise communicate with, print fulfillment computer system102and requestor computer104. In examples, requestor computer system104may be or include a server, desktop computer, notebook computer, mobile device, tablet computer, and/or any other computing device.

Printer108represents generally a network connected printer that is operable to produce a printed print job or printed content. Network connected printer108is additionally operable to send network requests, print jobs and other content to, receive network requests, print jobs, and other content from, and otherwise communicate with print fulfillment computer system102over network110.

Network110represents generally hardware components and computers interconnected by communications channels that allow sharing of resources and information. Network110may include a cable, wireless, fiber optic, or remote connection via a telecommunication link, an infrared link, a radio frequency link, or some combination of these, or any other connectors or systems that provide electronic communication. Network110may include, at least in part, an intranet, the internet, or a combination of both. Network110may also include intermediate proxies, routers, switches, load balancers, and the like. The paths followed by network110between the print fulfillment computer system102, requestor computer104, payment validation computer system106, and printer108as depicted inFIG. 1represent the logical communication paths between these devices, not necessarily the physical paths between the devices.

Print fulfillment computer system102is shown to include a print fulfillment service112, a processor114, and a memory116. Print fulfillment service112represents generally any combination of hardware and programming configured to provide a cloud-based printing service that efficiently interacts with a payment validation service hosted at a payment validation computer system distinct from the print fulfillment system. Processor114represents generally any instruction execution system, such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit), a computer, or other system that can fetch or obtain instructions or logic stored in memory116and execute the instructions or logic contained therein. Memory116represents generally any memory configured to store program instructions and other data.

In the example ofFIG. 1, the print fulfillment service112executing at the print fulfillment computer system102receives from the requestor computer system104, via the network110, a request118to print content120at network connected printer108. In an example, the request118is a request initiated by a user via the user's interaction with the requestor computer104. In an example, the content120is content that is included within the print request118. In another example, the print request118does not include the content120, but rather includes a network address provides a link to the content120(e.g., the print request may include a URL or address for a web page that includes the content120to be printed).

Upon receipt of the print request118, the print fulfillment service112creates a release code122. The release code122may be a letter, figure, character, or any other symbol, or any combination of such symbols, that when presented by a user at the printer108will authorize printing of the content120at the printer108. In examples, the release code122may be a string of alphabetic characters, a string of numeric characters, or a string of alphanumeric characters. In addition, after receipt of the print request118, the print fulfillment service112causes job information124relating to the print request118, and data126associating the job information124with the release code122, to be stored in a memory, e.g., memory116. In examples, the job information124may be data or information regarding parameters of the print job, such as number of pages, orientation, paper size, black and white versus color printing, etc. In an example, the data126associating the job information124with the release code122may be stored in a database or other memory included within print fulfillment computer system102. In another example, the data126associating the job information124with the release code122may be stored in a database or other memory included within a computing device or system distinct from the print fulfillment computer system102.

The print fulfillment computer system102sends the created release code122to the requestor computer104via the network110. The print fulfillment computer system102also sends to the requestor computer104a network address128, the address to connect the requestor computer104to a web site130hosted by a payment validation service132executing at the payment validation computer system106. In an example, the web site130is a web site to process fees or charges to be paid in connection with the print request118. In an example, the network address128is a URL or hyperlink that is to be interacted with by a user at the requestor computer via a user interface to cause a web browser application at the requestor computer104to access the web site130. In yet another example, the network address128is a URL or hyperlink or other address that is not displayed to a user, the address causing the requestor computer104to automatically access the web site130.

The payment validation service132that hosts the payment validation web site130sends the release code122to the print fulfillment system. Responsive to receipt of the release code122at the print fulfillment system, the print fulfillment service112sends the print job information124to the payment validation computer system106. In this example, the payment validation service132utilizes the print job information124to determine a price for the printing of the content120at the requested printer108. In examples, the pricing may be a factor of job information124relating to type of content, number of pages or scroll size to be printed upon, media to be printed upon, type of marking agent to be utilized at the printer108(e.g. black and white versus color printing, photo ink versus general ink, etc.), or a time of day or date that printing is to occur. The foregoing list of possible job information124is a list of examples of print job information, and is not meant to be an exclusive listing.

In this example, the payment validation service132executing at the payment validation computer system106next provides an interface, via the web site130, for a payment dialogue with a user the requestor computer104. In an example, the payment validation service132may send to the requestor computer104, via the user's interaction with the web site132, a price for the requested print job and a request for payment. In examples, a user may send, via web site130as accessed at the requestor computer104, an instruction to charge the print job to a credit card, a debit card, a hotel room, a previously established tab or account, or utilize another billing mechanism that is offered by the payment validation service132as a billing alternative. Upon completion of charge presentation and payment dialogue, the payment validation service132sends a payment validation notice134to the print fulfillment system.

Responsive to receipt of the payment validation notice134from the validation system, the print fulfillment service112sends to the printer108, via the network120, the content120that the user desires to print. The content120is printed at the printer108following a provision of the release code122at the printer108. In an example, the release code122may be input or otherwise provided by a user at the printer108via a keypad, touchpad, mouse, or other user interface device. In an example, the user inputting the release code122at the printer108may be a first user that initiated the print process at the requestor computer. In another example, the user inputting the release code122at the printer108may be a second user, e.g., a second user that operates a pay for print service that the first user has sent the content120to for printing. In one example, the second user may have knowledge of the release code122by virtue of the first user communicating the code122to the second user. In another example, the release code122may be provided at the printer108by virtue of a user having sent the code electronically to the printer, over the network110, from the requestor computer or another network connected computing device.

In examples, the print request118, content120, release code122, print job information124, network address128, and payment validation notice134, content sending request126, and/or the printer identifier validation information132are transmitted over the network114via a networking protocol, including but not limited to Transmission Control Protocol/Internet Protocol (“TCP/IP”), HyperText Transfer Protocol (“HTTP”), Simple Mail Transfer Protocol (“SMTP”), Extensible Messaging and Presence Protocol (“XMPP”) and/or Session Initiation Protocol (“SIP”).

The functions and operations described with respect to the print fulfillment service112and the print fulfillment computer system102may be implemented as a non-transitory computer-readable storage medium containing instructions executed by a processor (e.g., processor114) and stored in a memory (e.g., memory116). In a given implementation, processor114may represent multiple processors, and memory116may represent multiple memories. Processor114represents generally any instruction execution system, such as a computer/processor based system or an ASIC, a computer, or other system that can fetch or obtain instructions or logic stored in memory116and execute the instructions or logic contained therein. Memory116represents generally any memory configured to store program instructions and other data.

FIG. 2is a block diagram illustrating a system according to various embodiments.FIG. 2includes particular components, modules, etc. according to various embodiments. However, in different embodiments, more, fewer, and/or other components, modules, arrangements of components/modules, etc. may be used according to the teachings described herein. In addition, various components, modules, etc. described herein may be implemented as one or more software modules, hardware modules, special purpose hardware (e.g., application specific hardware, application specific integrated circuits (ASICs), embedded controllers, hardwired circuitry, etc.), or some combination of these.

FIG. 2shows a print fulfillment server system202electronically connected to a requestor mobile computing device204, a payment validation computer system206, and a printer208via an internet210. Print fulfillment server system202represents generally any computing device or group of computing devices configured to send and receive network requests, send and receive data, and/or otherwise communicate with, requestor mobile computing device204, payment validation computer system206, and printer208. In examples, print fulfillment server system202may be or include a server, desktop computer, notebook computer, mobile device, tablet computer, and/or any other computing device.

Requestor mobile computing device204represents generally a computing device configured to send and receive network requests, send content to, and otherwise communicate with, print fulfillment server system202and payment validation computer system206. In examples, requestor mobile computing device204may be a smartphone, tablet computer, notebook computer, or any other computing device.

Payment validation computer system206represents generally any computing device or group of computing devices configured to send and receive network requests, send and receive data, and/or otherwise communicate with, print fulfillment server system202and requestor mobile computing device204. In examples, requestor mobile computing device204may be or include a server, desktop computer, notebook computer, mobile device, tablet computer, and/or any other computing device.

Printer208represents generally an internet connected printer that is operable to produce a printed print job or printed content. Internet connected printer208is additionally operable to send network requests, print jobs and other content to, receive network requests, print jobs, and other content from, and otherwise communicate with print fulfillment server system202over internet210.

Internet210represents generally hardware components and computers interconnected by communications channels that allow sharing of resources and information over an internet or intranet network, or over a combination of both. Internet210may include a cable, wireless, fiber optic, or remote connection via a telecommunication link, an infrared link, a radio frequency link, or some combination of these, or any other connectors or systems that provide electronic communication. Internet210may also include intermediate proxies, routers, switches, load balancers, and the like. The paths followed by internet210between the print fulfillment server system202, requestor mobile computing device204, payment validation computer system206, and printer208as depicted inFIG. 2represent the logical communication paths between these devices, not necessarily the physical paths between the devices.

Print fulfillment server system202is shown to include a print fulfillment service212, a release code/job information association database236, a processor214, and a memory216. Print fulfillment service212represents generally any combination of hardware and programming configured to provide a cloud-based printing service that can interact with a number of disparate payment validation services hosted at payment validation computer systems distinct from the print fulfillment system. The service212includes a print request receipt module238, a release code and address sending module240, a release code receipt module242, a job information sending module244, a payment validation receipt module246, and a content sending module248. Release code/job information association database236represents generally a database, registry, lookup table or list that associates release codes and print job information in association with one another. Processor214represents generally any instruction execution system, such as a computer/processor based system or an ASIC, a computer, or other system that can fetch or obtain instructions or logic stored in memory216and execute the instructions or logic contained therein. Memory216represents generally any memory configured to store program instructions and other data.

In the example ofFIG. 2, a user250at requestor mobile computing device204accesses a job originating web application252executing at requestor mobile computing device204. In an example, the job originating web application252may be a print fulfillment web page hosted by print fulfillment server system202. In an example, the job originating web application252may be a print fulfillment web page hosted by print fulfillment server system202. The user250, via interaction with the job originating web page252, causes sending of a print request218from the requestor mobile computing device204to the print fulfillment server system202, via the internet210. The print request218is a request to print at internet connected printer208specific content220that is referenced (e.g., via a URL or other network address within the print request218.

FIG. 3provides an example of a print request218including print job information224, according to various embodiments The print request218includes print job information224regarding parameters or requirements for the requested print job including but not limited to the number of pages to be printed302, the number of copies to be printed304, document formatting specifics306(e.g. image orientation on the media, black and white versus color printing, etc.), and media type308. The print job information224also includes a pricing table310to be provided to a payment validation service232hosted at payment validation computer system206. The payment validation service232may utilize the pricing table310to calculate a fee for the print job that is customized for a particular user, a particular type of print job, or a particular printer.

Returning toFIG. 2, the print request receipt module238included within the print fulfillment service212and executing at print fulfillment server system202receives the print request218from the requestor mobile computing device204. Responsive to receipt of the print request218, the print request receipt module238creates a release code222. In examples, the release code222may be a string of alphabetic, numeric, or alphanumeric characters. Also responsive to receipt of the print request218, the print request receipt module causes the print job information224relating to the print request218, and data226associating the job information224with the release code222, to be stored in memory. In this example, the print job information224and the data226are caused to be stored in the release code/job information association database236included within print fulfillment server system202.

The release code and address sending module240sends to the requestor mobile computing device204, via the internet210, the created release code222and a URL network address228to connect the requestor mobile computing device204to a web site230hosted by a payment validation service232executing at the payment validation computer system206. In an example, the web site230is a web site to process fees or charges relating to the print request218. In this example, the sending of the URL228causes the requestor mobile computing device204to launch a web browser and access the payment validation web site230via the web browser. In the example ofFIG. 2, the web browser that accesses the payment validation web site230is launched as an in-application web browser254with respect to the job originating web application252that was already being accessed by the user250at the requestor mobile computing device204. The requestor mobile computing device204then sends the release code222to the payment validation service232at the payment validation computer system206via the web site230. In this example, after the payment validation service232that hosts the payment validation web site230receives the release code222via the web page220, the payment validation service232sends the release code222to the print fulfillment system202.

Responsive to the release code receipt module242's receipt of the release code222at the print fulfillment system202, the job information sending module244sends the print job information224relative to the print request218, stored at the release code/job information association database236, to the payment validation computer system206.

In this example, the payment validation service232executing at the payment validation computer system206utilizes the print job information224including the number of pages to be printed302, the number of copies to be printed304, the document formatting specifics306, the media type308, and the custom pricing table310to determine a price for the printing of the content220at the printer208.

The payment validation service232next provides a graphic user interface, via the web site230, to implement a payment dialogue with a user250at the requestor mobile computing device204.FIGS. 4A-4D, in view ofFIG. 2, depict examples of graphic user interfaces utilized to implement a payment dialogue with a user, according to various embodiments. In an example, the payment validation web site230(FIG. 2) hosted by the payment validation service232is a web site to process charges relating to the print request to a user account for a guest at a hotel.FIG. 4Aillustrates the interface at a “pre-payment” stage, and includes for display to the user250a release code222set forth as “Code 301291” and a “Pay” message402indicating that payment is due.FIG. 4Billustrates the interface at a “payment” stage, and includes for display to the user250a payment text entry box404in which the user250is to enter his/her hotel room number to accomplish payment for the print job.FIG. 4Cillustrates the interface at a “post-payment” stage, and includes for display to the user250the “Code 301291” release code222, and a “Paid” message406indicating that payment for the printing of the content220at the printer208was successful or was accomplished.FIG. 4Dillustrates another example of a graphic user interface at a “payment” stage, and includes for display to the user250a payment text entry box404in which the user250is to enter credit card information408to accomplish payment for the print job. Upon completion of the payment dialogue, the payment validation service232sends a payment validation notice234to the print fulfillment system202.

Responsive to receipt of the payment validation notice234from the validation system, the print fulfillment service212sends to the printer208, via the network220, the content220that the user desires to print. The content220is printed at the printer208following a provision of the release code222at the printer208by user250or another user that has access to the release code222.

The functions and operations described with respect to the print fulfillment service212and the print fulfillment server system202may be implemented as a non-transitory computer-readable storage medium containing instructions executed by a processor (e.g., processor214) and stored in a memory (e.g., memory216). In a given implementation, processor214may represent multiple processors, and memory216may represent multiple memories. Processor214represents generally any instruction execution system, such as a computer/processor based system or an ASIC, a computer, or other system that can fetch or obtain instructions or logic stored in memory216and execute the instructions or logic contained therein. Memory216represents generally any memory configured to store program instructions and other data.

FIG. 5is a flow diagram of operation in a system according to various embodiments. In discussingFIG. 5, reference may be made to the diagram ofFIG. 2to provide contextual examples. Implementation, however, is not limited to those examples. Starting withFIG. 5, upon receipt, from a requestor computer system via a network of a request to print content at a network connected printer, a release code is created. Job information is stored in memory. Data associating the job information with the release code is stored in memory (block502). Referring back toFIG. 2, the print request receipt module238may be responsible for implementing block502.

Continuing withFIG. 5, the code, and a network address to connect the requestor system to a web site hosted by a payment validation computer system, are sent to the requestor system via the network (block504). Referring back toFIG. 2, the release code and address sending module240may be responsible for implementing block504.

Continuing withFIG. 5, the code is received from the validation system. The code was previously provided to the validation system by the requestor system (block506). Referring back toFIG. 2, the release code receipt module242may be responsible for implementing block506.

Continuing withFIG. 5, the job information is sent to the validation system (block508). Referring back toFIG. 2, the job information sending module244may be responsible for implementing block508.

Continuing withFIG. 5, a payment validation is received from the validation system (block510). Referring back toFIG. 2, the payment validation receipt module246may be responsible for implementing block510.

Continuing withFIG. 5, the content is sent to the printer, for printing upon provision of the code at the printer (block512). Referring back toFIG. 2, the content sending module248may be responsible for implementing block512.

Various modifications may be made to the disclosed embodiments and implementations without departing from their scope. Therefore, the illustrations and examples herein should be construed in an illustrative, and not a restrictive, sense.