1 个不稳定版本
0.1.0 | 2022年6月27日 |
---|
#19 in #reqwest-client
32KB
648 行
🦀 lazerpay
一个用于集成激光支付API的Rust SDK
概述
激光支付允许您在Rust中集成 lazerpay api
。
要在您的应用程序中使用SDK,请将以下内容添加到您的 Cargo.toml
[dependencies]
lazerpay = "0.1.0"
您还需要从您的激光支付仪表板获取API密钥(SECRET_KEY
和 PUBLIC_KEY
)并将它们添加到 .env
文件中。
SDK包含 misc
、link
、swap
、payments
和 transfer
模块。每个模块都包含负载和响应结构体。
用法: misc::Misc
。
此用于从激光支付API获取接受的货币、获取汇率和获取用户余额。
响应结构体
这些是包含在 misc::response
子模块中的响应结构体
名称 | 描述 |
---|---|
GetRateResponse |
get_rate 的响应 |
BalanceData |
用户余额数据的结构 |
示例
use std::env;
use dotenv::dotenv;
use lazerpay::{config::ApiConfig, error::Error};
use lazerpay::{misc::*};
use reqwest::Client;
type ResultType = Result<(), Error>;
#[tokio::main]
async fn main() -> ResultType {
dotenv().ok();
// You can replace the `SECRET_KEY` & `PUBLIC_KEY` with the name in your .env file.
let secret_key = env::var("SECRET_KEY").unwrap();
let public_key = env::var("PUBLIC_KEY").unwrap();
let config = ApiConfig {
secret_key,
public_key,
};
let client = Client::new();
let _misc_client = Misc::new(&config, &client);
let _accepted_coins = _misc_client.get_accepted_coins().await?;
let _balance = _misc_client.get_balance("USDT").await?;
let _rate = _misc_client.get_rate("USDT", "USD").await?;
Ok(());
}
用法: link::PaymentLink
此模块用于创建和支付链接管理。
负载结构体
这些是包含在 link::payload
子模块中的负载结构体
名称 | 描述 |
---|---|
CreatePaymentLink |
创建支付链接的负载 |
UpdatePaymentLink |
更新支付链接的负载 |
响应结构体
这些是包含在 link::response
子模块中的响应结构体
名称 | 描述 |
---|---|
LinkData |
支付链接数据的结构 |
PaymentLinksResponse |
获取所有链接的响应结构体 |
use std::env;
use dotenv::dotenv;
use lazerpay::{config::ApiConfig, error::Error};
use lazerpay::{link::{payload::*, PaymentLink}};
use reqwest::Client;
type ResultType = Result<(), Error>;
#[tokio::main]
async fn main() -> ResultType {
dotenv().ok();
// You can replace the `SECRET_KEY` & `PUBLIC_KEY` with the name in your .env file.
let secret_key = env::var("SECRET_KEY").unwrap();
let public_key = env::var("PUBLIC_KEY").unwrap();
let config = ApiConfig {
secret_key,
public_key,
};
let client = Client::new();
let link_client = PaymentLink::new(&config, &client);
let _all_links = link_client.fetch_all().await?;
let create_data = CreatePaymentLink {
title: "Test".to_string(),
description: "Testing My Rust SDK.".to_string(),
amount: 40.0,
typ: "standard".to_string(),
currency: "USD".to_string(),
logo: None,
redirect_url: None,
};
let update_data = UpdatePaymentLink {
status: "inactive".to_string(),
};
// Create Payment Link
let _create_resp = link_client.create(&create_data).await?;
// Fetch Payment Link
let _link = link_client.fetch(&_create_resp.data.id).await?;
// Update Payment Link
let _updated = link_client.update(&_link.data.id, &_dat2).await?;
Ok(())
}
用法: payments::Payment
此模块用于创建和支付链接管理。
负载结构体
这些是包含在 payments::payload
子模块中的负载结构体
名称 | 描述 |
---|---|
InitializePayment |
初始化支付交易的负载 |
响应结构体
这些是包含在 link::response
子模块中的响应结构体
名称 | 描述 |
---|---|
PaymentData |
支付信息 |
VerifyPaymentData |
支付验证响应结构体 |
use std::env;
use dotenv::dotenv;
use lazerpay::{config::ApiConfig, error::Error};
use lazerpay::payments::{payload::*, Payment};
use lazerpay::utils::*;
use reqwest::Client;
type ResultType = Result<(), Error>;
#[tokio::main]
async fn main() -> ResultType {
dotenv().ok();
// You can replace the `SECRET_KEY` & `PUBLIC_KEY` with the name in your .env file.
let secret_key = env::var("SECRET_KEY").unwrap();
let public_key = env::var("PUBLIC_KEY").unwrap();
let config = ApiConfig {
secret_key,
public_key,
};
let client = Client::new();
let _payment_client = Payment::new(&config, &client);
let tx_ref = generate_reference();
let _dat = InitializePayment {
reference: tx_ref,
customer_name: "Test Customer".to_string(),
customer_email: "[email protected]".to_string(),
coin: "USDT".to_string(),
currency: "USD".to_string(),
amount: 4.0,
accept_partial_payment: true,
};
// Initialize Payment
let _init_resp = _payment_client.initialize(&_dat).await?;
// Verify Payment
let _ver_data = _payment_client.verify(&_dat.reference).await?;
Ok(())
}
有关其他模块的使用示例代码,请查看 tests
文件夹。
许可证
本项目采用 MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
依赖项
~6–18MB
~271K SLoC