paystack-rs

CI paystack-rs on crates.io paystack-rs  on docs.rs License: MIT

Convenient Async rust bindings and types for the Paystack HTTP API aiming to support the entire API surface. Not the case? Please open an issue. I update the definitions on a weekly basis.

The client aims to make receiving payments for African business or business with African clients building with Rust as hassle-free as possible.

The client currently covers the following section of the API, and the sections to be implemented in order are left unchecked:

Documentation

See the Rust API docs or the examples.

Installation

paystack-rs uses the reqwest HTTP client under the hood and the tokio runtime for async operations.

toml [dependencies] paystack-rs = "0.X.X"

You can also download the source code and use in your code base directly if you prefer.

Usage

Initializing an instance of the Paystack client and creating a transaction.

```rust use std::env; use dotenv::dotenv; use paystack::{PaystackClient, InitializeTransactionBodyBuilder, Error, Currency, Channel};

[tokio::main]

async fn main() -> Result<(), Error>{ dotenv().ok(); let apikey = env::var("PAYSTACKAPIKEY").unwrap(); let client = PaystackClient::new(apikey);

let body = InitializeTransactionBodyBuilder::default()
            .amount("10000".to_string())
            .email("email@example.com".to_string())
            .currency(Some(Currency::NGN))
            .channels(Some(vec![
                Channel::ApplePay,
                Channel::Bank,
                Channel::BankTransfer
            ]))
            .build()
            .unwrap();

let transaction = client
    .transaction
    .initialize_transaction(body)
    .await
    .expect("Unable to create transaction");

Ok(())

} ```

Contributing

See CONTRIBUTING.md for information on contributing to paystack-rs.

License

Licensed under MIT license (LICENSE-MIT).