#payment #cryptocurrency #crypto #api-bindings #api-key #sdk #reqwest-client

lazerpay

一个用于在Rust中集成激光支付加密货币API的SDK

1 个不稳定版本

0.1.0 2022年6月27日

#19 in #reqwest-client

MIT 许可证

32KB
648

🦀 lazerpay

一个用于集成激光支付API的Rust SDK

Lazerpay-sdk License: MIT Crates.io Rust

概述

激光支付允许您在Rust中集成 lazerpay api

要在您的应用程序中使用SDK,请将以下内容添加到您的 Cargo.toml

[dependencies]
lazerpay = "0.1.0"

您还需要从您的激光支付仪表板获取API密钥(SECRET_KEYPUBLIC_KEY)并将它们添加到 .env 文件中。

SDK包含 misclinkswappaymentstransfer 模块。每个模块都包含负载和响应结构体。

用法: 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::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-MIThttps://opensource.org/licenses/MIT)

依赖项

~6–18MB
~271K SLoC