Receiving

使用 BTCPay 接受未定義的付款金額

  • December 12, 2020

根據本網站使用者的建議,我實施了一個 BTCPay 伺服器並設置它以接收付款。我很樂意使用 API。

我需要為許多客戶(1000+)設置接收地址,但客戶支付的金額不確定。也就是說,我無法為客戶生成固定金額的發票,因為他們支付了他們希望支付的任何金額。

我需要為每個客戶生成一個接收地址,然後在我的網站上記入他們的賬戶餘額(以美元計),無論他們在收到和結算後發送到 BTC 地址的多少。

有誰知道我如何在 BTCPay Server 中實現這一點?我在下面列出了我的想法,但我正在尋找“正確”的解決方案,而不是像黑客一樣的解決方案。

目前的想法

  1. 生成小額發票,然後處理客戶在發送 BTC 時多付的款項。多付的款項不得退還。
  2. 詢問客戶他們希望在網站上支付多少,並為此金額生成發票。我很想避免這種方法,因為案例是讓他們發送他們想要發送的任何內容。

我單獨從 BTCPay 伺服器支持渠道尋求有關此問題的幫助,並在他們的幫助下為這個問題設計了一個“解決方法”。

他們支持的初步回應如下:

BTCPay 伺服器目前不支持對錢包的 API 訪問,並且[目前]不可能以程式方式生成臨時接收地址。

經過討論,我在上面第 1 點建議的方法似乎最合適:

  1. 在 BTCPay 伺服器中生成一張價值非常低的發票(例如,0.000001BTC)。就我而言,我將發票有效期設置為 24 小時,因為我的客戶不一定會立即付款。
  2. 將支付地址\二維碼發送給客戶端進行支付。
  3. 客戶支付他們決定的任何金額。
  4. 發票被標記為“多付”。也就是說,客戶支付的金額超過了發票金額。
  5. 在我的軟體中,我將他們支付的實際金額記入他們的帳戶。
  6. 為客戶生成下一張發票(發票到期後需要每 24 小時完成一次)。

與 BitPay 不同,BTCPay Server不會自動退還多付的款項。這對於解決方案的工作至關重要 - 因為我希望客戶支付不確定的金額,但它肯定會超過非常低的發票金額。

參考

以下參考資料來自我與 BTCPay Server 支持人員在 Mattermost 支持頻道上的對話。

參考 1(接收地址和錢包 API):

所以我們還沒有錢包 API。BTCPay 在很大程度上與 BitPay 的 API 兼容。但是,該 API 無法充分發揮軟體的潛力,因此我們正在努力打造更好的 API。它仍處於起步階段,您可以在此處預覽文件,如果您有一些回饋,您可以加入 GitHub 上的討論。當新的 API 完全準備好時,我們沒有預計到達時間,可能在今年年底。

參考 2(我提出的解決方案)

感謝您的答复。我可以問一下我要描述的這個現在是否可行?

為每個客戶創建一張低金額(例如 0.00001BTC)的發票,然後客戶可以使用地址發送付款。他們發送付款(這將高於發票金額),然後發票被標記為多付。

這假定多付的金額不會自動退還給客戶。

收到後,我可以為該客戶生成一張全新的發票,以便他們收到一個新地址。

Ref 2a(他們的回應)

肯定會奏效

參考 3(發票超額付款)

退款由商家完成,而不是自動完成

引用自:https://bitcoin.stackexchange.com/questions/96568