#binance #api-bindings #bpay #binance-pay-api

binance-pay-rs

Unofficial Rust Library for the Binance Pay API

7 releases

0.3.2 May 16, 2022
0.3.1 May 13, 2022
0.2.2 May 11, 2022
0.1.0 May 8, 2022

#13 in #binance

MIT license

88KB
2K SLoC

binance-pay-rs

Unofficial Rust Library for the Binance Pay API

Crates.io Build Status Discord chat

⚠️ The APIs are expected to work fine, still, You might encounter bugs. Please use at your own risk.
The current version implements all the API endpoints as documented in the Binance pay developer documentation.

Quickstart

Make sure the following env variables are set:

To generate the api key visit Developers

  • BINANCE_PAY_API_KEY
  • BINANCE_PAY_API_SECRET

In your Cargo.toml file

[dependencies]
binance-pay-rs = "^0"
tokio = { version = "1.18.0", features = ["rt-multi-thread", "macros"] }

In your main.rs file

use bpay::api::order::create::{
    Currency, Env, Goods, GoodsCategory, GoodsType, Request as OrderRequest, TerminalType,
};
use bpay::api::Binance;
use bpay::client::Client;
use bpay::errors::Result;
use bpay::utils::create_nonce;
use tokio;

#[tokio::main]
async fn main() -> Result<()> {
    let order = OrderRequest {
        env: Env {
            terminal_type: TerminalType::Web,
        },
        merchant_trade_no: create_nonce(10),
        order_amount: 10.0,
        currency: Currency::USDT,
        goods: Goods {
            goods_type: GoodsType::VirtualGoods,
            goods_category: GoodsCategory::Electronics,
            reference_goods_id: "sku1234".into(),
            goods_name: "Laptop".into(),
            goods_detail: None,
        },
    };

    let client = Client::from_env();
    let create_order_result = order.create(&client).await?;
    println!(
        "This url can be sent across to complete the payment procedure: {}",
        create_order_result.universal_url
    );
    Ok(())
}

To run an example:

cargo run --example notification_axum_server

Contributing:

Simply create a pull request. Properly documented code and tests.

To run the tests:

cargo t

Dependencies

~15–30MB
~570K SLoC