Как сделать оплату биткоинами на сайте

Как принимать платежи биткоинами на вашем сайте

Пиринговая платежная система, использующая одноименную расчетную единицу и одноименный протокол передачи данных, «Биткоин», многим полюбилась из-за криптографических методов, обеспечивающих защиту системы. Еще одним очевидным плюсом является то, что вся информация о транзакциях между адресами системы доступна в открытом виде. В этой статье мы рассмотрим способ добавления «Биткоин» на ваш сайт в качестве системы оплаты.

Биткоины — довольно привлекательный метод оплаты для онлайн-предпринимателей, в основном из-за того, что комиссия при использовании этого метода крайне незначительна в сравнении с PayPal или кредитными картами. Соответственно, это позволяет получить более высокую прибыль и предлагать услуги клиентам во всем мире по доступным ценам. Более того, биткоины формально не облагаются налогом, поскольку не представляют собой денежную форму, выдаваемую правительством. Также среди достоинств системы «Биткоин» можно выделить отсутствие необходимости обращения к посредникам.

В этой статье мы попробуем добавить биткоины в качестве способа оплаты на сайте. Для принятия платежей мы будем использовать Blockchain.info Receive Payments API V2, так как он прост, безопасен и может быть реализован менее чем за 10 минут.

Blockchain.info’s API V2

Paychanges API V2 Blockchain.info является самым простым и быстрым способом начать принимать платежи биткоинами от кого угодно в любой точке мира с помощью простого HTTP-GET-запроса. Стоит отметить, что одним из основных препятствий, связанных с принятием платежей биткойнами, является необходимость создания уникального адреса биткойнов для каждого нового пользователя или счета. Эти сгенерированные адреса должны быть под контролем и безопасно храниться. API приема платежей отвечает за создание и мониторинг биткоин-адресов. При получении платежей API позволяет уведомить сервер с помощью простой процедуры обратного вызова.

Как получить ключ API?

Чтобы использовать API Blockchain.info, вы должны заполнить форму заявки по адресу:

Обратите внимание, что этот ключ API предназначен только для получения платежей. Существует стандартный API кошелька, который доступен в Python, Java, .NET (C #), Ruby, PHP и Node и может использоваться для отправки и получения платежей. Однако он отличается от Receive Payments V2 API тем, что не подходит для генерации разных адресов для разных пользователей.

На рисунке ниже показана форма заявки на получение Receive Payments V2 API. Вам нужно будет ввести свое имя, адрес электронной почты, URL-адрес сайта, на котором вы будете внедрять API, а также описание товаров, которые вы продаете, или услуг, которые предлагаете на своем веб-сайте. В большинстве случаев заявка рассматривается в течение 2-3 рабочих дней.

Рисунок 1. Форма заявки на получение Receive Payments V2 API

Получение расширенного публичного ключа (Extended Public Key)

Чтобы иметь возможность получать платежи, вам потребуется учетная запись BIP32. Самый простой способ начать прием биткоинов — создать кошелек blockchain.info по адресу:

Вам нужно создать новую учетную запись, которая будет использоваться исключительно для получения транзакций, поддерживаемых API. При вызове API нужно использовать ключ xPub , который можно найти в «Настройки-> Учетные записи и адреса -> Дополнительные параметры -> Показать код xPub».

Рисунок 2. Получение ключа xPub

Создание новых адресов для ваших клиентов

Для каждого клиента у нас будет свой уникальный адрес, на который он будет отправлять платежи. При получении денег на любой из таких адресов вам будет отправлено HTTP-уведомление. Обратите внимание, что каждый вызов, сделанный на сервере, приведет к увеличению параметра index, это делается для того, чтобы убедиться, что один и тот же адрес не назначен более чем одному клиенту. Тем не менее все средства, отправленные на любой из созданных адресов, будут добавлены в один и тот же кошелек.

Следует учесть, что существует программное ограничение — кошелек не сканирует более 20 неиспользуемых адресов. Таким образом, API будет возвращать ошибку, если более 20 из ранее созданных адресов не были использованы. Если вы столкнулись с этой ошибкой, вам придется либо перейти на новый xPub (в том же блоке blockchain.info), либо начать получать платежи на один из ранее созданных неиспользуемых 20 адресов.

Это можно опционально контролировать, добавляя gap_limit в качестве дополнительного параметра URL, что не приведет к увеличению числа биткоин-адресов, которые могут отслеживаться серверами Blockahin.info. Добавление параметра gap_limit изменяет максимально допустимый интервал, после которого API больше не будет генерировать новые адреса.

Ниже рассмотрим параметры, используемые в приведенном URL:

  • xpub: ваш xPub (пункт назначения, куда будут отправляться платежи ваших клиентов).
  • callback_url: это URL-адрес обратной связи, на который будут приходить уведомления при получении платежа.
  • key: ваш ключ API-интерфейса получения платежей, который вы получите после того, как приложение будет успешно принято.
  • gap_limit: необязательный параметр, который определяет количество неиспользуемых адресов биткоинов, разрешенных до того, как будет возвращена ошибка.

С помощью xPub создаем неиспользуемый биткойн-адрес:

Теперь пусть ваши клиенты отправляют средства по адресу, указанному в ответе:

RESPONSE: 200 OK, APPLICATION/JSON

Ниже приведен пример реализации на PHP:

$my_callback_url = ‘INSERT YOUR CALLBACK URL HERE +/- that can include customer identification parameters such as ?invoice_id=058921123&secret=’.$secret;

$parameters = ‘xpub=’ .$my_xpub. ‘&callback=’ .urlencode($my_callback_url). ‘&key=’ .$my_api_key;

$response = file_get_contents($root_url . ‘?’ . $parameters);

echo ‘Send Payment To : ‘ . $object->address;

Реализация обратного вызова Blockchain.info

Всякий раз, когда вы получаете платеж, серверы blockchain.info будут проверять указанный вами обратный URL-адрес. URL обратного вызова ограничен длиной 255 символов.

  • transaction_hash: хэш платежа.
  • address: адрес назначения, который является частью учетной записи xPub.
  • confirmations: количество подтверждений транзакции.
  • value: значение полученного платежа в satoshis, что составляет 1/100 000 000 биткоина.
  • : эта функция может использоваться для добавления параметров к вашему URL обратного вызова, например, invoice_id или customer_id помогут отслеживать, какие платежи были совершены клиентами.

Ниже приведен пример PHP-кода обратного вызова, полученного в результате ранее представленного скрипта:

$invoice_id = $_GET[‘invoice_id’]; //invoice_id is passed back to the callback URL

$value_in_btc = $value_in_satoshi / 100000000;

//Commented out to test, uncomment when live

//create or open the database

$database = new SQLiteDatabase(‘db.sqlite’, 0666, $error);

//Add the invoice to the database

$stmt = $db->prepare(“replace INTO invoice_payments (invoice_id, transaction_hash, value) values(?, ?, ?)”);

$stmt->bind_param(“isd”, $invoice_id, $transaction_hash, $value_in_btc);

Ответ обратного вызова

Чтобы подтвердить, что обратный вызов был успешно обработан, ваш сервер должен отвечать ok в текстовом формате, а не HTML. Если ваш сервер возвращает какой-либо другой ответ или бездействует, сервер blockchain.info будет повторно отправлять запрос каждые 10 минут в течение одной недели. Домены, не возвращающие никакого ответа, могут быть полностью заблокированы службой.

Проверка промежутков между адресами

Теперь нам нужно будет проверить индекс разрыва между последним адресом, на который был успешно отправлен платеж, и последним сгенерированным адресом. Используем xPub следующим образом:

Безопасность

Мы должны добавить уникальный параметр $secret в URL обратного вызова. Этот параметр будет проверен кодом проверки действительности для того, чтобы предотвратить ситуации, когда недобропорядочные пользователи попытаются пометить счет оплаченным.

В дополнение к биткоинам вы можете использовать свою местную валюту. Для этого нужно будет воспользоваться API обменного курса Blockchain.info .

Срок действия адресов

До тех пор, пока адрес возвращает в ответе ok, срок действия адреса не истечет и будет постоянно отслеживаться. В целом, система создана таким образом, что может отслеживать миллионы биткоин-адресов.

В этой статье мы кратко рассмотрели один из возможных путей добавления платежей «Биткоин» на ваш сайт, узнали все плюсы, минусы и нюансы использования этой системы. Это поможет вам упростить процесс оплаты ваших услуг или товаров, предлагаемых на сайте. Стоит отметить, что мы работали с реализацией на PHP, но это можно сделать и в Python, и в Ruby.

Подпишитесь

Содержание раздела

Обзоры и сравнения

Полное или частичное использование материалов сайта допускается только с письменного разрешения администрации!

Свидетельство о регистрации СМИ ЭЛ № ФС 77 – 68398, выдано федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) 27.01.2017

Как сделать магазин с оплатой биткоинами и другими криптовалютами

Одним из вопросов, связанных с более широким внедрением биткоинов, является отсутствие компаний, которые принимают криптовалюту в качестве оплаты. Это проблема курицы и яйца: если бы больше предприятий могли принимать цифровые монеты, это побудило бы потребителей покупать биткоины и другие валюты и тратить их.

Мы публикуем гид для внедрения в физический магазин оплаты биткоинами.

Индивидуальные платежи

Самый простой способ принять биткойн-платежи — это персональный перевод, когда клиент должен отправить нужное количество биткоинов на ваш цифровой кошелек. Это похоже на оплату наличными, подходит как для интернет-магазинов, так и для физических.

Это можно сделать с помощью множества приложений для смартфонов, таких как приложение «Bitcoin Wallet app» на Android. Подобные варианты также доступны в магазине приложений Windows Phone для пользователей этой ОС.

Несколько месяцев назад Apple удалила все приложения биткоин-кошельков из своего App Store. Однако 2 июня компания отменила такую политику, снова позволив размещать кошельки для устройств на iOS. Они уже начинают появляться, теперь доступны приложения Blockchain, Coinbase и другие.

Другой альтернативой является CoinBox, который специально предназначен для продавцов. В этом случае:

  • торговец вводит цену товара или услуги в телефон,
  • генерируется QR-код, содержащий сумму к оплате, и адрес, на который направляются средства,
  • клиент сканирует QR-код с помощью своего кошелька и отправляет платеж.

Эти простые системы идеально подходят для малых предприятий, тестирующих биткоина, или для тех, кто оказывает небольшие услуги. Крупномасштабный бизнес требует специальных решений, которые вписываются в существующие POS-системы.

Решения для торговых точек с поддержкой криптовалюты

Разрабатывается все большее число специфических вариантов для бизнеса, которые созданы упростить прием платежей через криптовалюты (Point-of-sale (POS) — торговая точка). Следующие сервисы предлагают множество решений для торговых точек: как в Интернете, так и для физических магазинов.

Coinify, датская фирма, которая приобрела BIPS и Coinzone, предлагает решения POS для традиционных и интернет-магазинов. Торговцы могут получать деньги в биткоине или фиате — или сразу в этих двух. Мобильное приложение Coinify POS работает как с Android, так и с iOS-устройствами.

Для онлайн-продавцов Coinify предлагает различные инструменты интеграции, такие как кнопки оплаты, плагины корзины покупок или выставленные счета-фактуры.

CoinKite — это новый стартап, который предлагает терминал для биткоинов, который выглядит точно так же, как и обычные терминалы для карт оплаты. Это устройство считывает дебетовую карту, созданную для биткоинов, которую также предлагают CoinKite. Терминалы могут служить для лайткоина и некоторых других валют, а также предлагают возможность распечатывать QR-коды для клиентов, чтобы сканировать чек приложениями для смартфонов.

Coinbase — это еще один платежный инструмент, который создает приложение для традиционных магазинов. Хотя в настоящее время он поддерживает только банковские счета в США, но предлагает обширную поддержку в области электронной коммерции. Это не только код HTML для простой вставки кнопок оплаты на сайт, но также плагины для WordPress, WooCommerce, Megento и ZenCart.

BitPay — это международный платежный инструмент для предприятий и благотворительных организаций. Он интегрирован в систему POS SoftTouch для розничных магазинов. Тем не менее, у BitPay есть API, который может быть реализован в любой другой POS-системе с некоторой доработкой в коде. У BitPay есть различные тарифы, на которые могут подписаться продавцы, включая такие функции, как использование службы на пользовательском домене (для интернет-магазинов), экспорт транзакций в QuickBooks и т. д.

Blockchain Merchant

Blockchain также выпустили торговое приложение для устройств Android. Blockchain Merchant обещает мгновенные транзакции, 0% комиссии за платежи и несколько языков интерфейса для использования по всему миру.

Revel Systems предлагает ряд POS-решений для ресторанов быстрого обслуживания, киосков, продуктовых магазинов и торговых точек. Пакеты POS начинаются от 3000 долларов плюс ежемесячная плата за прошитый iPad, кассовый аппарат и сканер. Недавно было объявлено, что Revel также будет включать биткоины в качестве способа оплаты в своем ПО.

Немецкий стартап BitXatm объявил о Sumo Pro — криптовалютном банкомате с функцией POS, которая понравится продавцам, которые хотят легко принимать платежи от клиентов в цифровых валютах.

Стоимостью в € 2,900, автономное устройство предлагает большой 17-дюймовый сенсорный экран и имеет возможность принимать любую фиатную валюту. Кроме того, оно может принимать или переводить любую цифровую валюту, согласно веб-сайту компании.

Калифорнийский платежный онлайн-инструмент PayStand предоставляет веб-сайтам и мобильным приложениям другой способ принять платежи с электронных чеков, кредитных карт и биткоинов. Paystand получила 1 млн долларов инвестиций в рамках своего ICO.

Основанная в 2009 году, PayStand стремится стать мультиплатежным шлюзом, который устраняет комиссию за транзакции, частично благодаря поддержке цифровой валюты.

Coin of Sale

POS для оплаты биткоинами в магазинах, Coin of Sale пытается упростить прием крипто-платежей за свои товары и услуги.

Созданная сингапурским эмигрантом Томасом Форгаком, Coin of Sale работает как с Android, так и с iOS-устройствами. Когда пользователи регистрируются, они автоматически получают учетную запись с кошельком Electrum.

Продавец должен просто ввести сумму денег, которую нужно списать, и приложение автоматически генерирует QR-код. Затем клиент сканирует этот QR-код, чтобы завершить платеж.

XBTerminal

XBTerminal предоставляет устройство, которое позволяет клиентам платить через любой мобильный биткоин-кошелек по NFC или QR-коду. Оплата с автономных мобильных устройств поддерживается через Bluetooth. Платежи осуществляются на платформе компании и, при желании, биткоин можно мгновенно конвертировать в другую криптовалюту на момент продажи.

Компания также предоставляет веб-приложения и онлайн-интерфейс для своего платежного решения для тех, кто хочет инвестировать в стороннее оборудование.

We Accept Bitcoin / Здесь принимают биткоины

Не секрет, что магазины и торговые площадки, где доступны платежи в криптовалютах, пользуются особой симпатией и лояльностью пользователей. Так что вывеска «Мы принимаем биткоин» может стать частью маркетинговой стратегии. Кстати, ряд компаний предлагает тематические вывески, наклейки и даже коврики перед дверью с соответствующей надписью.

Инструкция: Как добавить оплату биткоинами на сайте

Команда рекламной сети Oblivki.biz о выборе сервиса и нюансах приёма платежей в криптовалюте.

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

У текущей моды на криптовалюты масса обоснованных плюсов:

  1. Безопасные онлайн-платежи: здесь отсутствует фрод и чарджбеки. Сеть устроена так, что отправленный платеж вернуть нельзя, достоверность транзакции подтверждают пользователи по всему миру, а каждая транзакция шифруется.
  2. Выгодные комиссии: стоимость проведения платежа не превышает 1%. И чем больше сумма перевода — тем меньше потери.
  3. Анонимность: средства клиентов не контролируют банки — никто не вправе блокировать транзакцию или добавить лишнюю комиссию.
  4. Платежи без ограничений: транзакции проводятся в неограниченных объемах, чего не позволяют другие платежные средства.

Существует множество сервисов, позволяющих принимать биткоины и другие валюты. Лишь малая часть из них:

Мы подключили оплату через API сервиса Bitaps, потому что через него это оказалось сделать проще. Если у Blockchain требуется писать заявку и ждать одобрения три банковских дня, то здесь изначально можно подключиться самостоятельно. В API найдется всё необходимое для этого.

Прием платежей

При формировании счета для клиента надо сгенерировать и мониторить уникальный адрес (временный кошелек) для каждого платежа. Как только платёж подтверждён сетью, сервер API перечисляет биткоины с временного кошелька на указанный кошелек (свой или корпоративный, куда вам удобно будет получать средства).

У каждого сервиса свой API, но выглядит схема примерно одинаково:

  • Сгенерируйте платеж, обратившись по специальной ссылке и передав параметры.
  • Создайте биткоин-адрес продавца, на который будут пересылаться деньги.
  • Создайте ссылку вашей системы (callback), которая будет вызываться при подтверждении платежа.
  • Укажите количество принятых подтверждений платежа в сети Bitcoin (опциональное поле, по умолчанию — 3).
  • Определите уровень комиссии сети (опциональное поле, по умолчанию — low). Чем он выше, тем быстрее произойдет перевод.

В итоге получается сгенерированный адрес для приёма оплаты, код платежа и счёт. Код вы используете в базе данных для записи, сортировки или поиска информации о платежах. Счёт может быть отправлен покупателю или использован для платёжной формы.

После зачисления средств по указанному счету происходит подтверждение в сети Bitcoin. На каждое подтверждение отправляется обращение к callback и передаются параметры, чтобы опознать платеж. При получении последнего подтверждения надо выполнить заказ или услугу клиента. Сумма передается в сатоши — самой маленькой части биткоина.

Для конвертации используйте методы получения курсов валют. Курс часто меняется, поэтому получите его во время зачисления и сделайте конвертацию.

Пример на языке PHP

Количество подтверждений

Необходимое количество подтверждений зависит от модели риска, клиентов и сумм. Если вы доверяете клиентам, то принимайте платежи без подтверждений или с одним подтверждением. При небольших переводах трех подтверждений достаточно.

Шесть подтверждений математически невозможно подделать, не имея 51% вычислительной мощности сети. Чем больше подтверждений необходимо, тем больше комиссия и время ожидания. В среднем платеж проходит 15-20 минут, а оплата для клиента будет выглядеть следующим образом:

  • Выбор товара или услуги.
  • Выставление счета клиенту (вывод на странице номера кошелька и суммы, необходимой для оплаты).
  • Перевод средств клиентом.
  • Ожидание трех подтверждений и завершение заказа или услуги (в нашем случае это пополнение счета рекламного кабинета).

Важные замечания

  1. Кроме комиссии сервиса приема платежей, существует биткоин-комиссия за перевод с временного кошелька на указанный вами. Об этом нигде, к сожалению, не написано, поэтому рекомендуем не проводить мелкие платежи. В нашей сети установлено минимальное пополнение — 1000 рублей.
  2. Курс биткоина, как и других криптовалют, ощутимо меняется каждую секунду. Рекомендуем пересчитывать курс и как можно чаще выводить биткоин в реальную валюту. Конечно, это работает для тех случаев, если вам важно работать с реальной валютой, конвертируя биткоин по курсу.
  3. Не каждый блокчейн-сервис разрешает использовать API для приема платежей без подтверждения. Критерии приема в тот или иной сервис неизвестны, поэтому подавайте заявки в несколько мест.
  4. В каждом сервисе комиссии на прием платежей отличаются. Изучите детально каждый, прежде чем решите подключиться.
  5. Не выставляйте число обязательных подтверждений для выполнения оплаты выше шести. Это приведет к большему времени ожидания для клиента и негативным отзывам. Для безопасности хватит трех.
  6. При уровне комиссии low перевод средств занимает тридцать минут. Если желаете сэкономить покупателям средства, не увеличивайте уровень комиссии.

Врядли ниже рынка, разве что в первое время. 5 рублей минута это минимальная цена, которая будет в 2 часа.

То есть, я вложил свои (!) деньги, потом забеспокоился, что они исчезнут, снял свои (!) деньги и теперь.

в пользу общения при помощи мемов

Нашли опечатку? Выделите фрагмент и отправьте нажатием Ctrl+Enter

ПОДЕЛИТЬСЯ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here