Skip to end of metadata
Go to start of metadata

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

Zend Framework: Zend_Service_Chargify Component Proposal

Proposed Component Name Zend_Service_Chargify
Developer Notes http://framework.zend.com/wiki/display/ZFDEV/Zend_Service_Chargify
Proposers Dan Bowen
Zend Liaison TBD
Revision 1.0 - 19 May 2011: Initial Draft. (wiki revision: 4)

Table of Contents

1. Overview

Chargify.com is a subscription billing system that allows web application developers to charge customer credit cards on a recurring basis.
 
The Zend_Service_Chargify component makes it easy for developers to interact with the Chargify.com REST API for seamless integration into their website or application (as opposed to using hosted payment pages).

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

The component will wrap the entire Chargify REST API.
The component will provide response objects that implment ArrayAccess, Iterator, Countable for easy iteration.
The component will allow for both JSON and XML requests and responses.
The component will respond appropriately to HTTP response codes returned by the Chargify API
The component will provide an expressive API (setters) so it is obvious what parameters need to be sent with a given request.

4. Dependencies on Other Framework Components

  • Zend_Service_Abstract
  • Zend_Http_Client
  • Zend_Http_Response
  • Zend_Json

5. Theory of Operation

The Application Developer has an account with Chargify.com
The Application Developer instantiates Zend_Service_Chargify with their API key & password (and possibly other options)
The Application Developer uses API functionality to create customers, create subscriptions and view transaction history (and more)

6. Milestones / Tasks

Milestone 1: [DONE] Supporting Documentation, Use Cases, Class Skeletons, uploaded.
Milestone 2: Check in working Code to support the basic Zend_Service_Chargify instantiation
Milestone 3: Check in working code to support Products functionality
Milestone 4: Check in working code to support Components functionality
Milestone 5: Check in working code to support Coupons functionality
Milestone 6: Check in working code to support Customers functionality
Milestone 7: Check in working code to support Subscriptions functionality
Milestone 8: Check in working code to support Transactions functionality
Milestone 9: Check in working code to support Migrations functionality
Milestone 10: Check in working code to support Charges functionality
Milestone 11: Check in working code to support Adjustments functionality
Milestone 12: Check in working code to support Metered Usage functionality
Milestone 13: Check in working code to support Quantity Component Allocations functionality
Milestone 14: Check in working code to support Refunds functionality
Milestone 15: Check in working code to support Statements functionality
Milestone 16: Redesign and update code based off community feedback.
Milestone 17: PHPUnit Tests exist.
Milestone 18: Solidify DocBlox API documentation

7. Class Index

  • Zend_Service_Chargify
  • Zend_Service_Chargify_Abstract
  • Zend_Service_Chargify_Adjustment
  • Zend_Service_Chargify_Charge
  • Zend_Service_Chargify_Component
  • Zend_Service_Chargify_Coupon
  • Zend_Service_Chargify_Customer
  • Zend_Service_Chargify_Exception
  • Zend_Service_Chargify_Product
  • Zend_Service_Chargify_Refund
  • Zend_Service_Chargify_Statement
  • Zend_Service_Chargify_Subscription
  • Zend_Service_Chargify_Transaction

8. Use Cases

UC-01

Create new customer and subscription at the same time

UC-02

Cancel a subscription

 

9. Class Skeletons

]]></ac:plain-text-body></ac:macro>

]]></ac:plain-text-body></ac:macro>

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Dec 30, 2010

    <p>Hi, afaik is ZendFramework 1.x is feature freeze, so new contributions of components will go to ZendFramework 2. See more here <a href="http://framework.zend.com/wiki/display/ZFDEV2/Home">http://framework.zend.com/wiki/display/ZFDEV2/Home</a></p>