3 个不稳定版本
0.2.0 | 2021 年 6 月 19 日 |
---|---|
0.1.1 | 2020 年 8 月 9 日 |
0.1.0 | 2019 年 11 月 10 日 |
#4 在 #readings
17KB
123 行
lnurl
文档
有关 lnurl 的阅读资料
- 规范 – lnurl 规范,由 Anton Kumaigorodski。
- lnurl 简介 – 一篇介绍各种 lnurl 类型的文章,由 fiatjaf。
进展
- lnurl-withdraw
- lnurl-auth
- lnurl-pay
- lnurl-channel
用法
您可能需要一些像这样的 crate
bech32 = "0.7.1"
lightning-invoice = "0.2.0"
serde = { version = "1.0.93", features =["derive"]}
serde_json = "1.0.39"
创建一个 bech32 二维码
use bech32::ToBase32;
use image::Luma;
use qrcode::QrCode;
pub fn create_lnurl_qrcode(url: &str, path: &str) {
let encoded = bech32::encode("lnurl", url.as_bytes().to_base32()).unwrap();
let code = QrCode::new(encoded.to_string()).unwrap();
let image = code.render::<Luma<u8>>().build();
image.save(path).unwrap();
}
使用 serde_json 在您的服务器 HTTP 响应体中编码您的 LNRUL 对象。
if let Err(_) = invoice.parse::<lightning_invoice::SignedRawInvoice>() {
let res = serde_json::to_string(
&lnurl::Response::Error{reason: "your invoice is wrong".to_string()}
).unwrap();
return Ok(Response::builder()
.status(StatusCode::BAD_REQUEST)
.header(header::CONTENT_TYPE, "application/json")
.body(Body::from(res)).unwrap())
}
依赖项
~0.6–2.2MB
~39K SLoC