#private-key #api-key #com #api-client #credits #load #paid

get402

使用 Get402.com 建立付费 API 的客户端

5 个版本

0.1.2 2022年2月17日
0.1.1 2022年2月17日
0.1.0 2022年2月17日
0.0.2 2022年2月17日
0.0.1 2022年2月17日

#2 in #paid

每月下载 27 次

自定义许可证

17KB
250

Get402 客户端 Rust

轻松构建付费 API。此库简化了只能通过小额支付访问的 API 的提供

安装

cargo install get402

使用

查看https://get402.com/docs获取完整文档

您可以导入整个库或按需加载特定对象

use Get402;

身份验证

您的 Get402 API 由一对公钥/私钥标识,其中公钥地址用于识别您的 API,私钥用于对 get402.com 的请求进行签名。

使用现有的 API 私钥

let private_key = env::var("GET402_API_PRIVATE_KEY").unwrap();

let app: Get402::App = Get402::App::load(private_key);

生成新的 API 私钥

let app: Get402::App = Get402::App::generate();

加载您的应用程序使用其私钥后,就没有更多的工作要做,所有请求的签名都由库自动处理。

获取客户端 API 密钥余额

所有客户端开始时都有零余额可用,这可以随时查询

创建新的客户端

let client: Get402::Client = app.create_client();

获取现有客户端的余额

let client_identifier = env::var("GET402_API_CLIENT_IDENTIFIER").unwrap();

let client = app.get_client_from_identifier(&client_identifier);

let balance: u64 = client.get_balance().await.unwrap();

向客户端 API 密钥收费

当客户端使用您的 API 时,您应该向他们的 API 密钥收费,这将减少他们可用的信用余额。

let client = app.get_client_from_identifier();

let mut params = HashMap::new();

params.insert("credits", 1);

let response = client.charge_credit(&params);

如果他们的信用余额降至零,您将收到一个包含有关购买额外信用详情的 PaymentRequired 请求的错误。如果您不希望在这里收到错误,请始终先检查余额。

match client.charge_credit(&params).await {

    Err(Get402::APIError::InsufficientFunds(payment_request)) => {

        println!("Insufficient Funds!");
        // payment_request  includes outputs array, paymentUrl, and memo
    }

    Ok() => {

      println!("Sufficient Credit For Call");

    }

    other => {
       println!("Unexpected Error Occurred!");
    }
}

向客户端 API 密钥充值

获取购买更多信用的付款请求

要购买额外信用,只需为任何数量的信用请求一个新的付款模板。您将收到一个标准的付款请求,钱包知道如何完成。

let payment_request: PaymentRequired = client.request_buy_credits(10).await.unwrap();

使用客户端密钥直接购买更多信用

由于客户端 API 密钥实际上是具有直接持有资金能力的公钥/私钥对,因此此库提供了一种使用客户端私钥直接购买新信用的实用程序。首先,您必须通过向客户端标识地址发送 satoshis 来加载您的客户端资金。一旦资金到达,它们将可用于购买信用。



一旦付款发送,您的客户端 API 密钥将立即获得额外的信用

开发和测试

cargo build

要运行测试,您必须在壳或 .env 文件中设置 GET402_PRIVATE_KEY 环境变量

cargo test

依赖项

~26–38MB
~683K SLoC