如何为网站付费墙场景的WebLN发票指定收款方?
如何为WebLN发票指定收款方
你现在写的代码是调用用户的钱包生成发票,这是让用户收钱的场景,完全不符合付费墙网站自己收款的需求。要让网站作为收款方,得换个思路:先在自己的后端生成带有收款方信息的LN发票,再通过WebLN让用户支付这个发票。
具体步骤:
后端生成收款发票:
你得有自己的Lightning节点(比如LND、CLN),或者用第三方LN服务(比如LNBits)。通过节点的API生成发票时,收款方默认就是你的节点地址(也就是网站的收款账户)。举个LND API的伪代码例子:# 后端调用LND API生成发票 import requests invoice_params = { "value": 1000, # 金额单位是satoshi "memo": "付费墙内容访问权限" } # 替换成你的LND节点地址和认证信息 resp = requests.post("http://你的节点地址:8080/v1/invoices", json=invoice_params, auth=("用户名", "密码")) payment_request = resp.json()["payment_request"]这里得到的
payment_request就是包含你网站收款地址的完整发票字符串。前端用WebLN发起支付:
把后端生成的发票拿到前端,调用WebLN的sendPayment让用户完成支付:await webln.enable(); try { const result = await webln.sendPayment({ paymentRequest: "后端返回的payment_request字符串" }); if (result.success) { // 这里写解锁付费墙内容的逻辑 } } catch (err) { // 处理支付失败的情况 }
为啥你当前的代码不行:
webln.makeInvoice是让用户的钱包创建发票,收款方是用户自己的钱包地址,根本不是你的网站,所以这个方法不适合做付费墙收款。
内容的提问来源于stack exchange,提问作者chovy
相关产品推荐
相关产品推荐

