You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为网站付费墙场景的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:16:19