aaronbronow / stripe.cr

Stripe API Wrapper for crystal

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stripe

Stripe API wrapper for Crystal.

Installation

Add this to your application's shard.yml:

dependencies:
  stripe:
    github: confact/stripe.cr

Usage

require "stripe"

stripe = Stripe.new("YOUR_API_TOKEN")

token = stripe.create_card_token(card: {
  number: "4242424242424242",
  exp_month: 12,
  exp_year: 2019,
  cvc: 123,
})

customer = stripe.create_customer(source: token)
charge = stripe.create_charge(amount: 1000, currency: "usd", customer: customer)

custom API version

You can set custom api version if needed.

require "stripe"

stripe = Stripe.new("YOUR_API_TOKEN", "2019-03-29")

Example of setting up a subscription

Here is a simple way to setup a subscription by using setupintent.

  1. First create setup intent to get a secret we will give the frontend:
  intent = stripe.create_setup_intent
  1. Use stripe elements.js or checkout with the setup intent secret (client_secret).
  2. After the form is filled and stripe send the token to back to us with the card token, lets start create the stuff for that token.
  3. create a customer with that token:
  token = params['StripeToken'] # or what the param for the token is called for you.
  intent = stripe.retrieve_setup_intent(token)
  customer = stripe.create_customer(email: user.email,
                                     description: user.name,
                                     payment_method: intent.payment_method,
                                     invoice_settings: { default_payment_method: intent.payment_method })
  1. create a subscription with that customer
subscription = stripe.create_subscription(customer: customer, off_session: true, plan: STRIPE_PLAN_ID, trial_end: team.trial_due_at)

Progress

API methods

Core

Balance
  • Retrieve balance

  • Retrieve a balance transaction

  • List all balance history

Charges
  • Create a charge

  • Retrieve a charge

  • Update a charge

  • Capture a charge

  • List all charges

Subscriptions
  • Create a Subscription

  • Retrieve a Subscription

  • Update a Subscription

  • Delete a Subscription

  • List all Subscriptions

Setup Intent
  • Create a Setup Intent

  • Retrieve a Setup Intent

  • Confirm a Setup Intent

  • Update a Setup Intent

  • Delete a Setup Intent

  • List all Setup Intents

Customers
  • Create a customer

  • Retrieve a customer

  • Update a customer

  • Delete a customer

  • List all customers

Tokens
  • Create a card token

  • Create a bank account token

  • Create a PII token

  • Create an account token

  • Retrieve a token

Invoices
  • Create a invoice

  • Retrieve a invoice

  • Update a invoice

  • Delete a invoice

  • List all invoices

Objects

Core

  • Balance

  • Balance transaction

  • Charge

  • Customer

  • Dispute

  • Dispute evidence

  • Event

  • File

  • File link

  • Payout

  • Product

  • Refund

  • Token

Payment methods

  • Bank account

  • Card

  • Source

Connect

  • Account

  • Login link

  • Application fee refund

  • Application fee

  • Country spec

  • Top-up

  • Transfer

  • Transfer reversal

Development

TODO: Write development instructions here

Contributing

  1. Fork it (https://github.com/confact/stripe.cr/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

About

Stripe API Wrapper for crystal

License:MIT License


Languages

Language:Crystal 100.0%