Amazon DevPay is a system for charging users for access. It is very interesting because it allows micro payments, e.g., charging $1 USD per 1,000 uses. We have a web service that stores content using Amazon S3. We currently have the following PHP systems:
* A working user manager, sql based
* A working content manager which uploads to Amazon S3 - the Amazon "cloud" storage system.
We want to add a payment system, which bridges to Amazon's DevPay system. You will write this bridging code. Our existing code uploads file for a user. You will write the code that communicates with Amazon DevPay, update our user manager of payment changes, and update the stored files on S3 after payment.
Overall, this should be a few-day project.
Your new script will send a user to the Amazon DevPay site to set up payment, and upon return, will make a few API calls to our system, and update the existing item on the S3 cloud. You will store the authentication string, to make Pre-Signed URLs, so we can provide Query String Authentication for our customers.
The result is that our customers can publish a file for download on their web site, and they are charged a fee for every view.
Read about DevPay:
[url removed, login to view];categoryID=144
Read about Query String Authentication, in particular:
[url removed, login to view]
Amazon provides code examples in Ruby, Java, C++ and C#. (The Ruby code is ~1k lines; the Java code is ~5k lines; and C++ code is ~3k lines). NOT PHP. Amazon does provide PHP examples for other web services, which deal with curl and related functions, and you can adapt existing PHP code for Amazon's other services to work with DevPay.
* Familiarize yourself with Amazon DevPay
* Interfacing with Amazon's server, by adapting existing PHP code to work with the DevPay API -- you can refer to the non-PHP examples for reference.
* Writing the code for our application -- this will be brief, issuing a few function calls when payment is initiated or canceled. This updates our user db.
* Write a function to query Amazon's reports for a user, to report a user's usage reports. -- this is simple call.
* Updating our existing code for putting files to S3, to include x-amz-security-token and other new attributes.
I'm happy to answer any questions. Thanks,