
После сканирования QR-кода кошелёк может заполнить не только адрес, но и сумму перевода. Это удобно, пока данные совпадают с действующим запросом получателя. Однако изображение кода само по себе не показывает, что внутри: обычный адрес, платёжная ссылка или веб-страница. До подтверждения полезно отдельно прочитать содержимое и сверить поля с источником, которому вы доверяете.
Сначала определите, что вы получили
Строка с началом bitcoin: — платёжная инструкция определённого формата, а не доказательство существования заказа. После адресной части могут идти параметры. В спецификации BIP 321, заменившей BIP 21, описан современный формат таких инструкций; историческое название BIP21 по-прежнему встречается в интерфейсах. Наличие знакомой схемы не подтверждает честность отправителя.
Если после сканирования открылся сайт, это другой сценарий: нужно оценивать адрес страницы и её подлинность. Инструмент ниже не загружает сайты и не переходит по ссылкам. Если сканер показывает просто адрес, без схемы bitcoin:, он тоже находится вне выбранной модели разбора. Отказ инструмента не означает, что обычный адрес неправильный.
| Часть | Практическая проверка | Ограничение вывода |
|---|---|---|
| Адресная строка | Полное совпадение с адресом действующего запроса | Совпадение не подтверждает владельца и не проверяет контрольную сумму |
| amount | Сумма в BTC, а не количество сатоши | Сетевая комиссия не вычисляется этим полем |
| label и message | Читаемый текст после декодирования | Название магазина или номер заказа можно вписать произвольно |
| Другие параметры | Выяснить назначение до использования | Их нельзя объявить безвредными только потому, что известные поля совпали |
Где взять ожидаемые данные
Сверка имеет смысл, когда ожидаемый адрес и сумма получены из независимого актуального источника: например, открытой вами карточки действующей заявки. Копировать ожидаемый адрес из той же подозрительной ссылки бессмысленно. Два одинаковых значения покажут только то, что вы дважды вставили одну строку.
Проверьте также срок и статус самой заявки. Сохранённый QR-код может относиться к прошлому обмену или уже изменённым условиям. Этот локальный инструмент не знает текущих заявок KOT.CASH и не проверяет их действительность. Для реального перевода используйте актуальные инструкции конкретной операции.
Одна и та же сумма может выглядеть по-разному
В учебной ссылке amount=0.00125000 соответствует 125000 сатоши. Запись 0.00125 означает ту же сумму: завершающие нули не меняют значение. Инструмент переводит обе строки в целое количество сатоши, поэтому сравнение не зависит от представления дроби и ошибок двоичной арифметики.
Если в ссылке нет суммы, это не сумма ноль. Запрос может предполагать ручной ввод, но утверждать совпадение суммы тогда нельзя. В этой демонстрации вводимые суммы должны быть положительными, с точкой и максимум восемью десятичными знаками. Дроби с запятой, экспоненциальная запись и более мелкие доли не поддерживаются.
Ограниченный разбор вместо обещания полной совместимости
Вставьте текст, уже прочитанный вашим QR-сканером, а рядом — ожидаемые адрес и сумму. Поддерживается непустая адресная часть и необязательные amount, label, message. Схема и имена параметров сравниваются без учёта регистра; адресная строка сохраняется как введена. Повтор известного параметра отвергается как неподдерживаемый случай.
Другие параметры показываются отдельно и выводят ссылку за пределы поддерживаемого набора. В частности, расширения с req- нельзя молча игнорировать при реальном использовании. Современные платёжные инструкции могут быть шире этой модели: ограничение демонстрации не означает недействительность всех остальных форматов. Lightning, дополнительные способы оплаты и запросы подтверждения здесь не исполняются.
Подпись не является проверкой получателя
Текст label или message может выглядеть убедительно, но не связывает адрес с организацией. Не используйте знакомое название как замену сверке. Так же и точное совпадение суммы не доказывает, что деньги будут отправлены в правильной сети, что получатель их ждёт или что вы сможете вернуть ошибочный перевод.
Проверка формата адреса — отдельная задача, для которой на сайте есть свой инструмент. Создание изображения QR — тоже отдельная операция. Здесь изображение не распознаётся и не генерируется: рассматривается содержимое уже полученной строки и расхождения с указанным вами ожиданием.
Последняя проверка проходит в кошельке
После разбора всё равно прочитайте экран подтверждения вашего кошелька: адрес, сумму, сеть и итоговые условия отправки. Если кошелёк показывает что-то иное, остановитесь и выясните причину, вместо того чтобы считать локальное совпадение разрешением на оплату. Никакой положительный результат этой страницы не подписывает транзакцию и не доказывает безопасность операции.
Полезный результат проверки — понятное различие между совпавшими строками, отсутствующей суммой и неподдерживаемыми полями. Это позволяет задать получателю конкретный вопрос. Неизвестные условия лучше уточнить до отправки, особенно если исходная инструкция и экран кошелька расходятся.
Разобрать и сравнить платёжную ссылку
DEMO_ADDRESS — заполнитель, не адрес. Только разбор непустой адресной части и amount/label/message; иные поля требуют отдельного разбора. Не валидирует адрес, сеть, получателя или заявку и не разрешает оплату. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.