Приём оплаты NextCoin на своей стороне ====================================== Два файла, обе на стандартной библиотеке Python, зависимостей нет. nextcoin_merchant.py check(hash, recipient, amount) сверить конкретный перевод по хэшу find_payment(addr, amount, seen) найти оплату на точную сумму incoming(addr, limit) входящие переводы на адрес balance(addr) баланс адреса payuri.py build(address, amount_base, label, message) ссылка nextcoin: для QR parse(uri) разбор такой ссылки Как принимать оплату Способ первый, на один общий адрес. К сумме заказа добавляете уникальный хвост в младших разрядах и раз в несколько секунд зовёте find_payment. Memo в переводах NextCoin нет, поэтому заказы различаются именно суммой. Хвост подбирайте с оглядкой на уже открытые заказы, а не случайно: две живые заявки на одну сумму по факту прихода не различить. Способ второй, адрес на заказ. Адрес это bech32 от публичного ключа Ed25519, генерация мгновенная и бесплатная, ключи выводятся из одной мнемоники по BIP-39 и SLIP-0010, путь m/44'/2026'/0'/0'/index. Три вещи, на которых теряют деньги Не верьте хэшу из браузера. Страницу можно поменять в отладчике и вызвать обработчик успеха, не заплатив ни монеты. Проверять надо со своего сервера. Не засчитывайте один хэш дважды. Это единственная проверка, которую библиотека сделать не может: она не знает вашу базу. Храните засчитанные хэши у себя. Не берите перевод из очереди. Пока он не в блоке, его можно вытеснить другим с тем же номером операции, и товар уйдёт за деньги, которых не будет. Единицы Тикер NXT, шесть знаков, внутри всегда целые базовые единицы, 1 NXT это 1 000 000. Никаких float: 0.1 плюс 0.2 во float даёт не 0.3, и вы либо недосчитаетесь, либо засчитаете недоплату. Адреса приводите к нижнему регистру перед сравнением. Заглавный вариант bech32 законен и проверку проходит, но это другая строка. Узел https://nxt.stackworks.ru, без авторизации, блок 6 секунд. Описание ручек: https://nxt.stackworks.ru/api