paypal-rust

Crates.iopaypal-rust
lib.rspaypal-rust
version0.0.9-alpha
sourcesrc
created_at2022-09-29 16:33:33.004467
updated_at2023-05-30 09:53:10.155113
descriptionRust bindings for the PayPal REST API
homepagehttps://github.com/HannTechGmbH/paypal-rust/
repositoryhttps://github.com/HannTechGmbH/paypal-rust/
max_upload_size
id676767
size301,326
Sean Steinke (Avejack)

documentation

README

paypal-rust


Downloads Version

Rust bindings for the PayPal REST API.

This library is a work in progress. While functional, it is not yet advised to be used in production (The API will change, tests are not yet complete, etc).

For more information on the PayPal REST API, visit the PayPal Developer Portal. We aren't affiliated with PayPal in any way and this library is not endorsed by them.

Usage

use dotenv::dotenv;
use paypal_rust::client::AppInfo;
use paypal_rust::{
    AmountWithBreakdown, Client, CreateOrderDto, CurrencyCode, Environment, Order,
    OrderApplicationContext, OrderIntent, PurchaseUnitRequest
};

#[tokio::main]
async fn main() {
    dotenv().ok();
    let username = std::env::var("CLIENT_ID").expect("CLIENT_ID must be set");
    let password = std::env::var("CLIENT_SECRET").expect("CLIENT_SECRET must be set");

    let client = Client::new(username, password, Environment::Sandbox)
        .unwrap()
        .with_app_info(AppInfo {
            name: "PayPal Rust Test App".to_string(),
            version: "1.0".to_string(),
            website: None,
        });

    client.authenticate().await.unwrap();

    let order = Order::create(
        &client,
        CreateOrderDto {
            intent: OrderIntent::Capture,
            payer: None,
            purchase_units: vec![PurchaseUnitRequest::new(AmountWithBreakdown::new(
                CurrencyCode::Euro,
                "10.00".to_string(),
            ))],
            application_context: Some(
                OrderApplicationContext::new()
                    .return_url("https://example.com/#/return".to_string())
                    .cancel_url("https://example.com/#/cancel".to_string()),
            ),
        },
    ).await.unwrap();

    println!("Created order: {:?}", order);
}

Features

This library offers a "utils" feature that enables the utils module. This module contains some useful functions for working with the PayPal API.

Commit count: 39

cargo fmt