This library allows you to process donations with stripe. While baseline functionality is included, you'll probably need to clone and customize some pieces. Features:
- Creates customers upon donation
- Create one time donations
- Create recurring donations
- Writes Donor, Donation, and Subscription data in OSDI format
- Writes data to Firebase Database
- Uses firebase cloud functions, which is free for X invocations
- ... So it runs on Google's cloud, which has remarkable uptime.
- Uses the Open Supporter Data Interface so data is portable
- TODO: Process changes made in the Stripe UI. Including refunds, cancelling subscriptions, and reverting plan changes to prevent unexpected changes to uses subscriptions
- TODO: Works with Fired Up Donate Form out of the box
- Verbose in communicating donor/donation transaction data to Stripe, so Stripe data can be exported or a Stripe analytics provider can provide value
yarn add fired-up-stripe
git clone
yarn && cd functions && yarn && cd ..
firebase init
(Take care to not overwrite anything)firebase functions:config:set stripe.private="%STRIPE_PRIVATE" stripe.connect="%STRIPE_CLIENT%"
(Connect is optional, only use if you're connecting accounts)- Send the following JSON to your new donation processing route
https://us-central1-%yourappname%.cloudfunctions.net/FUPDonateOnce
{
"amount":"25",
"email":"test@test.com",
"given_name":"Test",
"family_name":"User",
"mailing_street1":"Street Address 1",
"mailing_locality":"Anytown",
"mailing_postal_code":"00000",
"mailing_region":"CA",
"mailing_country":"US",
"employer":"Test",
"occupation":"Test",
"use_mailing":true,
"token":"tok_xxxxxxxxxxxxx",
"url":"http://localhost/your-donate-page",
"source":"refering_person_name",
"website":"localhost:3000",
"referrer":"http://localhost:3000/your-donate-page",
"recipient":"Your Org Name Here"
}
The freely-available Ultrahook service makes building with webhooks a breeze. To develop in this repo, do the following:
gem install ultrahook
ultrahook stripe 4000
(You may need to login/create an account here)- Add
https://stripe.%your-ultrahook-slug%.ultrahook.com/stripe/webhook
- Send test webhooks via the UI OR use stripe's testing info to simulate various recurring donation failures