You are looking at historical revision 28206 of this page. It may differ significantly from its current revision.

Striped Zebra

Description

An API for processing payments via Stripe.

Author

Thomas Hintz

Contact me at t@thintz.com.

Requirements

Notes

All procedures return a json object with fields set per the Stripe documentation.

List of user configurable parameters

api-endpoint

[parameter] (api-endpoint [string])

URL under which the api resides. Defaults to "https://api.stripe.com/". You shouldn't need to change this.

api-version

[parameter] (api-version [string])

URL to the api version of Stripe that you want to use. Defaults to "/v1/".

default-username

[parameter] (default-username [string])

This is your Stripe private api key. Defaults to "".

High-level procedures

charge

[procedure] (charge amount #!key (card-token #f) (customer #f) (username (default-username)) (description ""))

Charge a users card. As per Stripe's api, either card-token or customer are required. For more details see the Stripe charge documentation.

add-customer

[procedure] (add-customer card-token #!key (description #f) (email #f) (plan "") (username (default-username)) (description ""))

Add a customer to Stripe for further use. card-token is a token returned by Stripe's javascript api and is the card that will be associated with the customer's account. For more details see the Stripe customer documentation.

Low-level procedures

send-stripe-request

[procedure] (send-stripe-request #!key (method 'GET) endpoint (body #f) (username (default-username))

Send a custom request to Stripe. All of the high-level procedures use this.

Example (this is the body of charge):

(send-stripe-request method: 'POST endpoint: "charges" username: username
                     body: `((amount . ,amount)
                             (description . ,description)
                             (currency . "usd")
                             (card . ,card-token)
                             (customer . ,customer))))

License

Copyright (c) 2012-2013, Thomas Hintz All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THOMAS HINTZ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.