Платёжные ссылки Blocknet: как запросить оплату в BNT

· 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:// — это URI Blocknet, удобный везде, где ссылка попадает прямо в кошелёк.

Как составить платёжную ссылку?

Ссылку можно составить вручную за четыре шага.

  1. Выберите получателя. Выполните address в консольном кошельке, чтобы вывести свой адрес, или используйте своё короткое имя Blocknet ID с префиксом $. Если кошелька ещё нет, руководство по кошельку Blocknet показывает, как его создать и найти адрес.
  2. Укажите сумму. Пишите её в BNT. Подходят и целые числа, и дробные, до восьми знаков после запятой, потому что один 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]. BNT уходят только тогда, когда плательщик вводит y.

Вот последовательность действий в консольном кошельке, шаг за шагом.

  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:// — это URI-схема Blocknet. Форма bntpay.com — обычный веб-адрес, который мессенджеры, почтовые клиенты и соцсети превращают в кликабельную ссылку.

Отправляет ли вставка платёжной ссылки BNT сразу?

Нет. Вставленная в кошелёк ссылка подготавливает платёж и останавливается на сводке с суммой, получателем, полным адресом, комиссией и мемо, за которой следует запрос подтверждения «да или нет». BNT уходят только после того, как плательщик введёт y. Любой другой ответ отменяет платёж и освобождает зарезервированные для него монеты.