Crates.io | stripe-rust-fgribreau |
lib.rs | stripe-rust-fgribreau |
version | 0.4.5 |
source | src |
created_at | 2018-06-09 22:33:03.973422 |
updated_at | 2018-06-09 22:33:03.973422 |
description | API bindings for the Stripe v1 HTTP API |
homepage | |
repository | https://github.com/rapiditynetworks/stripe-rs |
max_upload_size | |
id | 69398 |
size | 115,800 |
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/.
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.
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", .. }] }
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 { .. }] }