9 个版本 (5 个重大变更)
0.14.0 | 2024 年 7 月 4 日 |
---|---|
0.13.0 | 2023 年 7 月 24 日 |
0.12.1 | 2023 年 6 月 23 日 |
0.12.0 | 2023 年 3 月 19 日 |
0.10.0 | 2021 年 11 月 21 日 |
#6 在 #monero
每月 28 次下载
275KB
6K SLoC
AcceptXMR
: 在您的应用程序中接受 Monero
AcceptXMR
是一个用于构建支付网关的库。
有关包含所有功能的网关,请参阅 AcceptXMR-Server
.
入门指南
要在 Rust 项目中使用 AcceptXMR
,首先将其添加到您的 Cargo.toml
文件中。例如,如果您打算使用 Sqlite
存储后端并需要 serde
支持,您应该在 Cargo.toml
文件中添加以下内容:
[dependencies]
acceptxmr = { version = "0.12", features = ["serde", "sqlite"] }
然后,您可以创建并运行一个 PaymentGateway
use acceptxmr::{PaymentGateway, storage::stores::Sqlite};
use std::time::Duration;
let private_view_key =
"ad2093a5705b9f33e6f0f0c1bc1f5f639c756cdfc168c8f2ac6127ccbdab3a03";
let primary_address =
"4613YiHLM6JMH4zejMB2zJY5TwQCxL8p65ufw8kBP5yxX9itmuGLqp1dS4tkVoTxjyH3aYhYNrtGHbQzJQP5bFus3KHVdmf";
let store = Sqlite::new("AcceptXMR_DB", "invoices")?;
let payment_gateway = PaymentGateway::builder(
private_view_key.to_string(),
primary_address.to_string(),
store
)
.daemon_url("https://node.example.com") // Specify a node.
.scan_interval(Duration::from_millis(500)) // Scan for updates every 500 ms.
.build()?;
payment_gateway.run()?;
最后,您可以创建发票并订阅它们,以便知道何时收到付款
// Oh hey, a customer is checking out!
let invoice_id = payment_gateway.new_invoice(
100 * 10 ** 9, // We'll charge 100 millineros,
0, // require 0 confirmations,
10, // expire in 10 blocks,
"Large Cheese Pizza".to_string() // and get the order right.
).await?;
// We can now subscribe to updates to the pizza invoice.
let subscriber = payment_gateway.subscribe(invoice_id)?
.expect("invoice doesn't exist");
// Have we been paid yet?
let update = subscriber.recv().await.expect("channel closed");
if update.is_confirmed() {
// Great, ship the pizza and stop tracking the invoice.
println!("Invoice for \"{}\" paid", update.description());
payment_gateway.remove_invoice(invoice_id).await?;
}
依赖关系
~21–33MB
~605K SLoC