Skip to content

drager/swish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swish

Build Status crates.io API docs MIT/Apache-2.0 licensed

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

Usage

A simple usage example:

extern crate swish_api;
extern crate tokio_core;

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

fn main() {
    let core = Core::new().unwrap();
    let handle = core.handle();
    let current_dir = env::current_dir()?;
    let cert_path = current_dir.join("./test_cert.p12");

    let swish_client = cert_path
        .into_os_string()
        .to_str()
        .map(|cert_path_string| {
            client::SwishClient::new("1231181189", 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: