stripe-rust-fgribreau

Crates.iostripe-rust-fgribreau
lib.rsstripe-rust-fgribreau
version0.4.5
sourcesrc
created_at2018-06-09 22:33:03.973422
updated_at2018-06-09 22:33:03.973422
descriptionAPI bindings for the Stripe v1 HTTP API
homepage
repositoryhttps://github.com/rapiditynetworks/stripe-rs
max_upload_size
id69398
size115,800
Francois-Guillaume Ribreau (FGRibreau)

documentation

https://docs.rs/stripe-rust

README

stripe-rust

stripe-rust on Travis CI stripe-rust on crates.io stripe-rust on docs.rs

Rust API bindings for the Stripe v1 HTTP API.

This is compatible with all currently supported versions of Stripe's client-side libraries including https://js.stripe.com/v2/ and https://js.stripe.com/v3/.

Usage

Put this in your Cargo.toml:

[dependencies]
stripe-rust = "0.4.5"

And this in your crate root:

extern crate stripe;

To see how the library is used, look through the examples folder.

Getting Started

To get started, we need to create a client:

  let client = stripe::Client::new("sk_test_YOUR_STRIPE_SECRET");

Then we can begin making requests as we'd like. Most Stripe requests accept many optional parameters, so we usually get the ::default() params and then set the ones we want from there.

Most requests for creating or updating a Stripe object use the same Rust struct, so you may frequently need to refer to the official API docs to determine which fields are required for either request.

  /* Creating a Stripe Charge */

  let token = "TOKEN_FROM_CHECKOUT";
  let mut params = stripe::ChargeParams::default();
  // NOTE: Stripe represents currency in the lowest denominations (e.g. cents)
  params.amount = Some(1095); // e.g. $10.95
  params.source = Some(stripe::CustomerSource::Token(token));

  // Example: Override currency to be in Canadian Dollars
  params.currency = Some(stripe::Currency::CAD);
  let charge = stripe::Charge::create(&client, params).unwrap();
  println!("{:?}", charge); // =>  Charge { id: "ch_12345", amount: 1095, .. }
  /* Listing Stripe Charges */

  let params = stripe::ChargeListParams::default();
  let charges = stripe::Charge::list(&client, params).unwrap();
  println!("{:?}", charges); // =>  List { data: [Charge { id: "ch_12345", .. }] }

Using Custom Connect accounts

This crate supports impersonating a custom connect account.

To impersonate the account get a new Client and pass in the account id.

  let client = client.with(stripe::Params{stripe_account: Some("acct_ABC")});

  // Then, all requests can be made normally
  let params = stripe::CustomerListParams::default();
  let customers = stripe::Customer::list(&client, params).unwrap();
  println!("{:?}", customers); // =>  List { data: [Customer { .. }] }
Commit count: 156

cargo fmt