#payment #api #api-bindings #http-client #paystack

paystack-rs

Paystack API的非官方客户端库

10次发布

0.2.2 2023年11月11日
0.2.1 2023年9月21日
0.1.6 2023年7月15日

42财务

每月下载 37

MIT 许可证

89KB
1.5K SLoC

paystack-rs

Rust paystack-rs on crates.io paystack-rs  on docs.rs License: MIT

为Paystack HTTP API提供方便的异步Rust绑定和类型,旨在支持整个API表面。如果不是这样?请提出一个问题。我每周更新定义。

客户端旨在使非洲企业或与非洲客户合作的企业使用Rust构建支付尽可能无烦恼。

客户端目前涵盖以下API部分,要实现的部分留空未勾选

  • 交易
  • 交易拆分
  • 终端
  • 客户
  • 专用虚拟账户
  • Apple Pay
  • 子账户
  • 计划
  • 订阅
  • 转账接收者
  • 转账
  • 转账控制
  • 批量收费
  • 集成
  • 收费
  • 争议
  • 退款
  • 验证
  • 杂项

文档

查看Rust API文档示例

安装

paystack-rs 在内部使用 reqwest HTTP客户端和 tokio 运行时进行异步操作。

[dependencies]
paystack-rs = "0.X.X"

如果您更喜欢,也可以下载源代码并将其直接用于您的代码库。

用法

初始化Paystack客户端实例并创建交易。

use std::env; 
use dotenv::dotenv; 
use paystack::{PaystackClient, InitializeTransactionBodyBuilder, Error, Currency, Channel};

#[tokio::main]
async fn main() -> Result<(), Error>{
    dotenv().ok();
    let api_key = env::var("PAYSTACK_API_KEY").unwrap();
    let client = PaystackClient::new(api_key);

    let body = InitializeTransactionBodyBuilder::default()
                .amount("10000".to_string())
                .email("[email protected]".to_string())
                .currency(Some(Currency::NGN))
                .channels(Some(vec![
                    Channel::ApplePay,
                    Channel::Bank,
                    Channel::BankTransfer
                ]))
                .build()
                .unwrap();

    let transaction = client
        .transaction
        .initialize_transaction(body)
        .await
        .expect("Unable to create transaction");
         
    Ok(())
}

贡献

有关向paystack-rs贡献的信息,请参阅CONTRIBUTING.md

许可证

在MIT许可证下许可 (LICENSE-MIT)。

依赖关系

~6–18MB
~280K SLoC