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(¶ms);
如果他们的信用余额降至零,您将收到一个包含有关购买额外信用详情的 PaymentRequired 请求的错误。如果您不希望在这里收到错误,请始终先检查余额。
match client.charge_credit(¶ms).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