用連結請求 Blocknet 付款

· 5 分鐘閱讀

Blocknet 付款連結把付款人需要的一切放進一行:付給誰、付多少 BNT,以及選填的備註,例如發票號碼。把它傳到聊天中、放在發票上或個人檔案裡,付款人把它貼到錢包並確認即可。本指南介紹兩種連結格式、如何用你的地址或 $name 編寫連結,以及有人貼上連結時錢包具體會做什麼。

什麼是 Blocknet 付款連結?

簡短回答

Blocknet 付款連結是一行文字,包含收款人、金額與選填的備註,寫成 blocknet://recipient?amount=25&memo=invoice-42 或 bntpay.com/recipient?amount=25&memo=invoice-42。收款人是錢包地址或 Blocknet ID 名稱。把它貼到命令列錢包中,就會變成一筆待確認的發送。

Blocknet 命令列錢包接受兩種形式:

blocknet://<address-or-$name>?amount=<BNT>&memo=<text>
bntpay.com/<address-or-$name>?amount=<BNT>&memo=<text>

兩種形式攜帶相同的欄位:

欄位 位置 必填 內容
收款人 緊接在 blocknet:// 或 bntpay.com/ 之後 是 你的錢包地址,或寫成 $name 的短名稱
amount 查詢字串 是 請求的 BNT 數額,最多八位小數
memo 查詢字串 否 付款備註的文字,最多 124 位元組

錢包對連結的寫法很寬鬆。它能辨識 blocknet:// 和更短的 blocknet:;對於網址形式,它接受單獨的 bntpay.com/,也接受前面加上 www.、http:// 或 https:// 的寫法。前綴不分大小寫,amount 和 memo 的順序也沒有關係。

bntpay.com 形式是一般的網址,所以大多數聊天應用程式、電子郵件用戶端和社群個人檔案都會把它變成可以點擊的連結。blocknet:// 形式是 Blocknet URI,適合直接貼進錢包的場合。

如何編寫付款連結?

你可以依照四個步驟手動寫出連結。

  1. 選擇收款人。 在命令列錢包中執行 address 印出你的地址,或使用帶 $ 前綴的 Blocknet ID 短名稱。如果還沒有錢包,Blocknet 錢包指南介紹了如何建立錢包並找到你的地址。
  2. 設定金額。 以 BNT 為單位填寫。整數和小數都可以,最多八位小數,因為 1 BNT 等於 100,000,000 個原子單位。
  3. 視需要加上備註。 訂單編號、發票號碼或一句簡短的感謝,都能幫你在收款時對上這筆付款。備註不超過 124 位元組。
  4. 把各部分連起來。 在前綴後寫收款人,接著是 ?amount=,有備註的話再加上 &memo=。

一張付給名稱的 25 BNT 發票,兩種形式如下:

https://bntpay.com/$yourname?amount=25&memo=invoice-42
blocknet://$yourname?amount=25&memo=invoice-42

同樣的請求付給完整地址:

bntpay.com/<address>?amount=25&memo=invoice-42

備註中的字元編碼

如果備註裡有空格或標點,其中幾個字元需要用 URL 編碼書寫,因為連結本身要用到它們。錢包會在建立付款前把它們解碼回來。

字元 寫成 原因
空格 %20 分享時讓連結保持完整
& %26 & 代表下一個欄位的開始
# %23 # 代表查詢字串的結束
+ %2B 單獨的 + 會被讀成空格

例如,memo=Order%20%231042 送達時是 Order #1042。字母、數字、連字號、底線和句點都不需要編碼,所以像 invoice-42 這樣的備註可以直接使用。

連結應該用地址還是 $name?

兩者都可以,各自適合不同的用途。

名稱讓連結夠短,方便閱讀、口頭告訴別人或放進個人簡介。在連結中用 $ 前綴寫名稱:$yourname 和 @yourname 是同一個名稱,而 $ 是兩種連結都能原樣交給錢包的形式。付款人貼上帶名稱的連結時,錢包會透過 blocknet.id 解析該名稱,檢查紀錄上的 Ed25519 簽章,並印出標記為已驗證的完整地址。由於名稱是在付款時解析的,長期使用的連結(例如個人檔案中的打賞連結)在你之後把名稱指向新錢包時依然有效。

完整地址把收款目標固定在連結裡。這適合一次性的發票,你希望連結指向某一個確定的錢包。

無論哪種方式,鏈上的付款都是一筆一般的 Blocknet 交易,付到一次性隱身地址,與其他任何付款享有同樣的隱私。

有人貼上付款連結時會發生什麼事?

簡短回答

錢包從連結中讀取收款人、金額與備註,並用它們執行一次一般的發送。如果有名稱,它會先解析名稱,然後建立交易,顯示金額、收款人、完整地址、手續費與備註,並詢問 Confirm [y/N]。只有付款人輸入 y 之後,BNT 才會轉出。

以下是命令列錢包中的完整流程。

  1. 付款人在錢包提示字元處貼上連結。 錢包看到 blocknet: 或 bntpay.com/ 前綴,就把這一行當作發送。一個付給 $yourname、金額 25 BNT、備註為 invoice-42 的連結,等同於輸入 send $yourname 25 invoice-42。
  2. 解析名稱。 對於帶名稱的連結,錢包會印出 Resolved $yourname -> <address>,並附上已驗證標記。
  3. 錢包檢查餘額並建立付款。 它選擇要花用的幣,建立隱私交易,並計算手續費。
  4. 付款人看到摘要。 摘要列出金額和收款人、手續費、使用名稱時的完整地址、找零(如果有)以及備註,最後是 Confirm [y/N]。
  5. 付款人確認。 輸入 y 會送出交易,並印出交易 ID 以及 explorer.blocknetcrypto.com 上的區塊瀏覽器連結。輸入其他任何內容會印出 Cancelled,並釋放錢包保留的幣。

摘要讓付款人有機會核對請求,所以在他們看過之前,什麼都不會離開錢包。每個連結都需要金額:沒有金額時,錢包會回覆 payment link missing amount,並在建立任何內容之前停止。

你放進連結的備註會作為 Blocknet 的加密備註隨付款一起送出。BNT 入帳後,你錢包的 history 指令會在這筆收款下列出它,方便你對應到發票或訂單。

分享前先測試連結

把你自己的連結貼到自己的錢包裡,就能看到付款人將看到的內容。如果你的錢包裡至少有請求的金額,它會顯示完整摘要。核對收款人、金額與備註,然後輸入 n,就不會送出任何款項。

付款連結適用的情境

如果你也透過挖礦賺取 BNT,同一個名稱也能用在那裡。seine 和 bntpool.com 都接受 Blocknet ID 短名稱作為收款地址,所以挖礦收益和連結付款會進入同一個錢包。Blocknet 挖礦指南介紹了具體設定。

常見問題

Blocknet 付款連結一定要包含金額嗎?

是的。每個付款連結都帶有 amount 欄位,以 BNT 為單位,最多八位小數,例如 amount=25 或 amount=0.5。備註是選填的。如果貼上的連結沒有金額,命令列錢包會回覆 payment link missing amount,而且不會送出任何款項,所以付款人永遠不必猜測你請求的金額。

可以在付款連結裡使用我的 Blocknet ID 短名稱嗎?

可以。用錢字號前綴寫名稱,例如 bntpay.com/$yourname?amount=10 或 blocknet://$yourname?amount=10。錢包會在 blocknet.id 查詢該名稱,檢查簽章紀錄,並在付款人確認前顯示標記為已驗證的完整地址。帶名稱的連結一律付款到你的名稱當下指向的地址。

blocknet:// 連結和 bntpay.com 連結有什麼不同?

兩者攜帶相同的三個欄位:收款人、金額與備註,命令列錢包以同樣的方式讀取它們。blocknet:// 形式是 Blocknet URI 格式。bntpay.com 形式是一般的網址,聊天應用程式、電子郵件用戶端和社群個人檔案會把它變成可點擊的連結。

貼上付款連結會立刻送出 BNT 嗎?

不會。把連結貼到錢包後,錢包會準備好這筆付款,然後停在一份摘要,顯示金額、收款人、完整地址、手續費與備註,接著是一個是或否的確認提示。只有付款人輸入 y 之後,BNT 才會轉出。輸入其他任何內容都會取消付款,並釋放為它保留的幣。