A rust library that wraps the paypal api asynchronously in a strongly typed manner.
Go to file
Edgar 285963397b
deps
2023-03-23 08:23:51 +01:00
.github check fmt 2023-01-11 13:46:55 +01:00
examples chore: update deps and use dotenvy instead of dotenv 2022-11-09 10:07:28 +01:00
src update deps 2023-01-11 13:43:22 +01:00
tests cleanup 2022-11-11 10:28:11 +01:00
.gitignore initial commit 2020-06-08 22:31:40 +02:00
Cargo.toml deps 2023-03-23 08:23:51 +01:00
LICENSE-APACHE relicense to MIT OR APACHE-2.0 2021-07-02 11:27:57 +02:00
LICENSE-MIT relicense to MIT OR APACHE-2.0 2021-07-02 11:27:57 +02:00
README.md comment out tests that talk to the api directly 2022-11-09 10:40:25 +01:00
SECURITY.md Update SECURITY.md 2022-08-02 12:49:07 +02:00
rustfmt.toml progress with orders 2020-06-10 12:29:13 +02:00

README.md

paypal-rs

Version Downloads License Rust Docs

A rust library that wraps the paypal api asynchronously in a strongly typed manner.

If there is a missing endpoint that you need, you may try to implement the Endpoint and pass it to Client::execute

Currently in early development.

Example

use paypal_rs::{
    Client,
    api::orders::*,
    data::orders::*,
    data::common::Currency,
    PaypalEnv,
};

#[tokio::main]
async fn main() {
    dotenvy::dotenv().ok();
    let clientid = std::env::var("PAYPAL_CLIENTID").unwrap();
    let secret = std::env::var("PAYPAL_SECRET").unwrap();

    let mut client = Client::new(clientid, secret, PaypalEnv::Sandbox);

    client.get_access_token().await.unwrap();

    let order = OrderPayloadBuilder::default()
        .intent(Intent::Authorize)
        .purchase_units(vec![PurchaseUnit::new(Amount::new(Currency::EUR, "10.0"))])
        .build().unwrap();

    let create_order = CreateOrder::new(order);

    let _order_created = client
        .execute(&create_order).await.unwrap();
}

Testing

You need the enviroment variables PAYPAL_CLIENTID and PAYPAL_SECRET to be set.

cargo test

Roadmap

  • Orders API - 0.1.0
    • Create order
    • Update order
    • Show order details
    • Authorize payment for order
    • Capture payment for order
  • Invoicing API - 0.2.0
    • Generate Invoice number
    • Create Draft Invoice
    • Show Invoice Details (Get Invoice)
    • List Invoices
    • Delete Invoice
    • Update Invoice
    • Cancel Invoice
    • Send Invoice
    • Send Invoice Reminder
    • List Templates
    • Create Template
    • Delete Template
    • Fully Update Template
    • Show Template Template
  • Payments API - 0.3.0
  • Tracking API - 0.4.0
  • Subscriptions API - 0.5.0
  • Identity API - 0.6.0
  • Disputes API - 0.7.0
  • Catalog Products API - 0.8.0
  • Partner Referrals API - 0.9.0
  • Payouts API - 0.10.0
  • Transaction Search API - 0.11.0
  • Referenced Payouts API - 0.12.0
  • Vault API - 0.13.0
  • Webhooks Management API - 0.14.0
  • Payment Experience Web Profiles API - 1.0.0

License: MIT OR Apache-2.0