Swish

Rust API bindings for the Swish API. Built using hyper and tokio.

Usage

A simple usage example:

```rust extern crate swish; extern crate tokio_core;

use swish::{client, error}; use tokio_core::reactor::Core;

fn main() { let core = Core::new().unwrap(); let handle = core.handle(); let currentdir = env::currentdir()?; let certpath = currentdir.join("./testcert.p12"); let rootcertpath = currentdir.join("./root_cert.der");

let swish_client = cert_path
    .into_os_string()
    .to_str()
    .and_then(|cert_path_string| {
        root_cert_path
            .into_os_string()
            .to_str()
            .map(|root_cert_path_string| {
                client::SwishClient::new(
                    "1231181189",
                    cert_path_string,
                    root_cert_path_string,
                    "swish",
                    handle,
                )
            })
    })
    .unwrap();


let mut payment_params = client::PaymentParams::default();
payment_params.amount = 100.00;
payment_params.payee_alias = "1231181189";
payment_params.payee_payment_reference = Some("0123456789");
payment_params.callback_url = "https://example.com/api/swishcb/paymentrequests";
payment_params.message = Some("Kingston USB Flash Drive 8 GB");

let payment = client.create_payment(payment_params);
let payment: Result<client::CreatedPayment, error::SwishClientError> = core.run(payment);

} ```

Features and bugs

Please file feature requests and bugs at the issue tracker.

License

Licensed under either of: