Здравствуйте!
В VamShop по умолчанию встроен модуль оплаты Ethereum, который позволяет без каких-либо посредников принимать оплату с помощью эфира, т.е. с помощью криптовалюты ethereum (eth).
В данной статье расскажу как настривается модуль оплаты Ethereum Blockchain в VamShop и как это выглядит со стороны посетителя, покупателя.
и в целом, немного о том как работает криптовалюта, блокчейн, подтверждение транзакций, для чего нужны майнеры и т.д.
В общем, небольшая вводная статья с привязкой к VamShop, если кому-то интересна тема блокчейн технологий.
Сразу покажу как всё это выглядит со стороны покупателя.
Процес оформления заказа в VamShop стандартный.
Добавляется товар в корзину:
Затем переходите на страницу оформления заказа и выбираете способ оплаты Ethereum
и переходите на страницу подтверждения заказа:
Вот здесь начинаются отличия, если сравнивать со стандартными модулями оплаты вроде Яндекс.Кассы и подобных.
В чём разница.
Нам необходимо провести транзакцию через blockchain эфира, т.е. оплатить заказ с помощью эфира (eth монет).
Для оплаты заказа с помощью eth монет у Вас уже должен быть создан эфир кошелёк, на балансе которого должна находиться необходимая сумма.
Кошелёк может быть любой, в любой системе, хоть «холодный» кошелёк, хоть на бирже, хоть локальный кошелёк, хоть myetherwallet.com, не важно.
Главное, что б этот кошелёк был зарегистрирован в блокчейне эфира и был виден в блокчейне, например в обозревателе https://etherscan.io/
На странице подтверждения заказа генерируется картинка с qr кодом, в котором зашифрован номер eth кошелька магазина, на который необходимо сделать перевод.
Для чего нужен qr код?!
На данный момент существует множество мобильных приложений для смартфонов, планшетов, с помощью которых Вы можете просто сканировать этот qr, т.е. qr код просто экономит время, что б не вводить номер кошелька вручную, можно просто сканировать qr код смартфоном, планшетом.
Ниже номер кошелька написан в открытом виде, просто текстом.
Номер кошелька магазина указывается в настройках модуля оплаты Ethereum в Админке — Настройки — Способы оплаты.
Затем на странице подтверждения заказа, ниже qr кода указывается сумма в eth монетах на момент оформления заказа, т.е. сумма заказа пересчитывается по курсу на момент оформления заказа и записывается в базу данных и уже не меняется, остаётся постоянной.
Данная сумма в eth монетах выводится для покупателя, что б он произвёл оплату заказа в eth монетах, любым доступным ему способом.
Например можно напрямую сдлать перевод с кошелька покупателя на кошелёк магазина. Можно оплатить через любые обменники, указав в качестве получателя eth кошелёк магазина, можно с различных бирж оплатить на кошелёк магазина, вариантов много.
Вот например оплата заказа может выглядеть например так:
- К примеру, это может быть какой-либо мобильный кошелёк на смартфоне, с помощью смартфона сканируете qr код кошелька, указывается сумму перевода и производите оплату заказа.
- Либо с помощью myetherwallet.com делаете перевод с Вашего кошелька на кошелёк магазина.
- Не важно, каким образом, главное, что б транзакция (оплата заказа) попала в blockchain эфира, т.е. в единую базу данных всех транзакций (переводов).
- Всё это можно отследить в любом blockchain обозревателе, например на https://etherscan.io/
- Всё, допустим, Вы оплатили Ваш заказа с помощью eth монет. Сумма оплаты должна быть точно такой как указано на странице подтверждения заказа.
- Убедиться в том, что Ваша оплата попала в blockchain ethereum можно просто посмотрев Ваш кошелёк и переводы из кошелька.
- Вот например как будет выглядеть перевод на кошелёк магазина.
т.е. перевод попал в blockchain сеть эфира, где с помощью майнеров данная транзакция будет подтверждена, т.е. будет информация, что да, действительно, покупатель X перевёл такую-то сумму продавцу Y.
Статус Pending — это ожидание подтверждения транзакции (перевода) майнерами.
Статус Success — значит транзакция (перевод) подтверждена и баланс на Вашем кошельке увеличился на указанную в переводе сумму.
т.е. баланс Вашего кошелька увеличивается на сумму оплаты заказа только когда статус транзакции Success.
Но по факту можно сказать, что даже если какое-то время транзакция находится в статусе Pending и ожидает подтвеждения майнерами, это ничего страшного, всё равно, можно сказать с большой долей вероятности, что эти деньги уже у Вас на кошельке, пусть и в статусе ожидания подтверждения со стороны майнеров.
Раз транзакция видна у Вас в кошельке, значит она попала в общую базу данных (в блокчейн), через некоторое время она будет подтверждена (зависит от суммы комиссии (gwei), которую Вы выставите), но по факту любые транзакции в блокчейне ethereum подтверждаются майнерами довольно быстро, т.е. можно сказать, что если транзакция зарегистрирована в блокчейне ethereum и она видна в Вашем кошельке, то с высокой долей вероятности это значит, что деньги (монеты eth) появятся в Вашем кошельке. В блокчейне ethereum по моему опыту переводы с кошелька на кошелёк занимают максимум 10 минут.
Кстати, в bitcoin блокчейне переводы между кошельками могут зависать на дни, а то и недели и так и висеть в неподтверждённых транзакциях.
В плане подтверждения операций майнерами ethereum быстрее и стабильнее работает (во всяком случае на момент написания статьи в марте 2018 года).
9. Всё, мы заплатити со своего кошелька eth на кошелёк eth магазина.
10. Заказ в админке магазина виден сразу же как только покупатель перешёл на страницу подтверждения заказа.
т.е. можно не бояться, что покупатель потеряется, у Вас в любом случае уже есть контактные данные клиента и состав заказа.
В модуле оплаты Ethereum реализована автоматическая смена статуса заказа на оплаченный.
Для этого на странице подтверждения заказа есть ссылка — Проверить статус оплаты заказа!
После оплаты заказа покупатель просто нажимает эту ссылку.
Это необязательно конечно делать, в админке магазина у Вас уже заказ и так виден и Вы можете связаться с клиентом в любом случае.
Эта ссылка необходима лишь для автоматической смены статуса заказа например на оплаченный.
Что происходит когда нажимает клиент эту ссылку.
При клике на ссылку идёт запрос в блокчейн эфира, с помощью api проверяются последние транзакции кошелька магазина.
и сравнивается сумма заказа с последними транзакциями на кошельке магазина.
Если есть совпадение по сумме заказа, то магазин меняет статус заказа на оплаченный.
в админке так же статус заказа меняется, в данном примере статус заказа автоматичес поменялся на Доставлен.
Статус оплаченного заказа меняется в настройках модуля оплаты Ethereum в Админке — Настройки — Модули — Оплаты.
Всё, на данный момент таким образом реализован модуль оплаты Ethereum в движке интернет-магазина VamShop.
т.е. максимально избавляемся от каких-либо посредников.
Всё делается только через официальный блокчейн ethereum, никаких посредников и никаких промежуточных кошельков, всё напрямую кошелёк покупателя -> кошелёк магазина.
Всё прозразчно и в любой момент можно проверить любые движения, транзакции в блокчейн обозревателе, например на https://etherscan.io/
P.S. Аналогичным образом работает модуль оплаты Bitcoin в VamShop.