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 api_key = env::var("PAYSTACK_API_KEY").unwrap();
     let client = PaystackClient::new(api_key);

     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).