Принимаем оплату в bitcoin: Часть первая, теоретическая

Принимаем оплату в bitcoin: Часть первая, теоретическая

Интернет полон статей о том, какое прекрасное будущее готовит нам blockchain, как это "стильно, модно и инновационно". Однако информации, как практически воспользоваться всем этим великолепием, крайне мало. Попробуем частично восполнить этот пробел.

Рассмотрим основные вехи большого пути на примере интеграции bitcoin в качестве способа приема платежей.  

Предположим вы - разработчик, и ваш продвинутый и небедный заказчик, начитавшись о том как круто принимать платежи в криптовалюте, пришел к вам с простенькой просьбой - "А прикрути-ка нам биткоин!".

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

Вот неполный список проблем, с которыми вы столкнетесь: 

-постоянно меняющийся курс 

-время прохождения транзакции по сети

-полное отсутствие контроля над суммой, которую отправляет покупатель 

-отсутствие внятного и прозрачного механизма, который позволит просто организовать отслеживание платежа


Но давайте представим, чисто теоретически, что заказчик готов мириться со всеми этими и еще десятком других проблем, и отвертеться от него не получилось.

Тогда  для начала рассмотрим, как, собственно, мы будем принимать платежи. Как всегда, есть как минимум два пути. Первый, относительно простой, мало чем отличающийся от интеграции, например, PayPal или Privat24. Воспользоваться готовым сервисом, например - bitpay. Сервисов таких немало, многие из них, помимо bitcoin, позволяют принимать несколько разных криптовалют. Все прозаично и достаточно просто, документация и примеры есть чаще всего на сайте сервиса в достаточном объеме.

Но мы не ищем легких путей, да? К тому же сумму, выставленную настойчивому заказчику, нужно отработать ( или сделать вид, что отработали).


Поэтому рассмотрим второй путь, полный трудностей, проблем и неочевидных решений

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

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

Пользователь выбрал интересующие его товары, добавил их в корзину и нажал заветную кнопку "купить". Заполнил все необходимые поля, такие как адрес доставки, телефон, адрес электронной почты, и наконец добрался до оплаты. Тут начинается немного магии. 

Программное обеспечение сайта продавца формирует специальную форму, чаще всего именуемую SCI (Shopping Cart interface). После клика по кнопке "Оплатить" эта форма перенаправит покупателя на сайт платежной системы (к примеру PayPal), с заранее заданными данными о платеже. Очевидно это будет как минимум - номер заказа, сумма к оплате и, вероятно, какое-то примечание к платежу, например "Инвойс за теннисные мячики №00012". 

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

Что нам важно в этой последовательности? 

Три ключевых момента. 

Первое - сумма оплаты задается продавцом. 

Второе -платеж происходит с достаточно точной идентификацией за какой именно заказ. 

И третье - уведомление, которое получает сервер продавца практически невозможно подделать. 


Такая система сформировалась не сразу, но в более-менее похожей форме она реализована в большинстве платежных шлюзов и электронных платежных систем, таких как Skrill или PayPal. 


Теперь посмотрим, что нас ожидает, когда мы собираемся интегрировать bitcoin в качестве средства платежа.

Во-первых, в bitcoin (и во всех криптовалютах, построенных на его основе) нет прямого способа, позволяющего передать идентификатор платежа. 

Во-вторых - вы практически не контролируете, какую сумму отправит пользователь (с небольшими оговорками).


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

Вы получаете новый адрес bitcoin и передаете его пользователю, вместе с рассчитанной суммой к оплате. Хорошим тоном считается указывать на протяжении какого времени платежные реквизиты валидны (мы ведь помним, курс криптовалют очень нестабилен), обычно это 15 минут. Далее, вы регулярно проверяете состояние этого адреса, получена ли на него необходимая сумма или нет. В случае, если сумма поступила - платеж можно считать совершившимся, и перейти к обработке дальнейшей заказа (отправка товара, пополнение мобильного счета и так далее)

Учитывая особенности функционирования криптовалют, потенциально нас ожидают некоторые подводные камни.

 Если пользователь отправил транзакцию в сеть - это еще не означает что вы её получили. До момента первого подтверждения ваш сервер может даже не узнать о том, что такая транзакция была. А от момента оплаты до момента включения транзакции в блок может пройти и несколько часов. Эта ситуация порождает массу неприятных последствий. 

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


В последующих статьях я расскажу как реализовать описанное выше на практике и что для этого понадобится.

Читайте также

45762020-11-15

Что такое блокчейн простым языком

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

Обучение
53812021-01-12

Что такое арбитраж криптовалют и как на нем заработать?

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

Обучение

Последние статьи из раздела Обучение

Свежее видео на канале

Выбор редакции

645462020-10-30

Топ 10 крипто кошельков в 2020 году

По мере роста популярности криптовалют растет и спрос на качественные и безопасные криптовалютные кошельки.

Кошельки
568502017-12-10

Bitcoin: пирамида или нет?

С января 2009 года, когда был сгенерирован первый генезиз-блок bitcoin-сети, прошло уже девять лет, но до сих пор всякого рода "эксперты" ломают копья в спорах: являются ли криптовалюты финансовой пирамидой или нет. Быстрый рост доходности bitcoin и прибыли тех, кто раньше стал участником этой системы, пугает схожестью с пирамидами 90-х.

Bitcoin
536102018-04-28

on-chain и off-chain управление: за и против

Чтобы понять важность управления блокчейном и дискуссии вокруг этого вопроса, сначала нужно определить что такое управление блокчейном, его роль и цели. Управление блокчейном в сфере криптовалют состоит из двух пунктов: правил протокола (кода) и экономических стимулов, на которых основана сеть.

Blockchain
418182021-05-08

Какие альткоины принесут своим держателям доход в 2021 году?

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

Альткоины
382372018-05-12

Эволюция человека и денег

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

Это интересно
186752024-02-03

Сканер блоков (Blockchain explorer) своими руками: Зачем он нужен?

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

Обучение, Bitcoin, Ethereum, Технологии