binance-pay-rs

Crates.iobinance-pay-rs
lib.rsbinance-pay-rs
version0.3.2
sourcesrc
created_at2022-05-08 11:49:53.104793
updated_at2022-05-16 02:09:19.691275
descriptionUnofficial Rust Library for the Binance Pay API
homepage
repositoryhttps://github.com/akarsh1995/binance-pay-rs
max_upload_size
id582453
size131,209
Akarsh (akarsh1995)

documentation

README

binance-pay-rs

Unofficial Rust Library for the Binance Pay API

Crates.io Build Status Discord chat

:warning: 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
Commit count: 85

cargo fmt