Crate paypal_rs[][src]

Expand description

Crates.io Rust Docs

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

Crate: https://crates.io/crates/paypal-rs

Documentation: https://docs.rs/paypal-rs

Currently in early development.

Example

use paypal_rs::{
    Client,
    HeaderParams,
    Prefer,
    orders::{OrderPayload, Intent, PurchaseUnit, Amount},
    common::Currency,
};

#[tokio::main]
async fn main() {
    dotenv::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, true);

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

    let order_payload = OrderPayload::new(
        Intent::Authorize,
        vec![PurchaseUnit::new(Amount::new(Currency::EUR, "10.0"))],
    );

    let order = client
        .create_order(
            order_payload,
            HeaderParams::default(),
        )
        .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
  • 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

Modules

Common paypal object definitions used by 2 or more APIs

Generated using https://github.com/edg-l/payhelper

Errors created by this crate.

Use the Invoicing API to create, send, and manage invoices. You can also use the API or webhooks to track invoice payments. When you send an invoice to a customer, the invoice moves from draft to payable state. PayPal then emails the customer a link to the invoice on the PayPal website. Customers with a PayPal account can log in and pay the invoice with PayPal. Alternatively, customers can pay as a guest with a debit card or credit card. For more information, see the Invoicing Overview and the Invoicing Integration Guide.

An order represents a payment between two or more parties.

Structs

Represents the access token returned by the OAuth2 authentication.

Stores OAuth2 information.

Represents a client used to interact with the paypal api.

Represents the optional header values used on paypal requests.

Represents the query used in most GET api requests.

Enums

The preferred server response upon successful completion of the request.

Constants

The paypal api endpoint used on a live application.

The paypal api endpoint used on when testing.