Expand Simple Abstraction Library for Integrating with Various Payment Gateways
Closed - This job posting has been filled.
We have a simple abstraction library for integrating with the AuthorizeNet and PayPal Payments Pro gateways, however we need to support several more gateways for simple credit card and echeck transactions. The current library uses the Factory Pattern to create child classes per Gateway, and when running a transaction returns a Response Object.
These libraries abstract away the differences between credit card Gateway requests, responses, and error handling. Our example code is clear (though not well documented) if the developer has an understanding of ecommerce and credit card gateways. This is absolutely required for this job - no exceptions.
We only require integration with the most basic of credit card charging services: auth-captures, auths, captures, voids, and credits, for credit cards and echeck, dependent on the feature set available per specific Gateway.
Initially we will build one additional Gateway, using job requirements, test, and then if we like your work, we will continue with the rest of the Gateways went to integrate with.
- Sign up for development/sandbox accounts with each gateway. Please contact us if you require assistance with any gateways.
- Provide a document with all credentials to each gateway including logins, passwords, API keys etc.
- Create Ftw_Service_Payment and Ftw_Service_Payment_Response subclasses for each gateway, using the AuthorizeNet and PaypalPro classes as working examples. The API is defined, so only the request and response handling needs to be written for each new gateway.
- All code must be properly and clearly documented.
- Create a full suite of unit tests to test the general functionality of the Ftw_Service_Payment system, incluing the existing libraries in place now (AuthorizeNet and PaypalPro). These tests should also include testing error responses, as gateway's always provide a way to use special test data to trigger declines and errors.
- Provide copies of all necessary external libraries, as provided by the gateway, where applicable.