xavior Опубликовано 29 октября, 2016 Жалоба Поделиться Опубликовано 29 октября, 2016 (изменено) Приветствую, Ради интереса решил потратить вечер выходных и зарелизить рабочий модуль оплаты через платежную систему Bitcoin. Оффтоп:Первый раз писал такой сложный модуль заточенный для Simpla Первый раз писал модуль оплаты для Simpla Код запутанный и сложный, я много работал с криптовалютой и постарался предусмотреть все возможные подводные камни. И самое главное - код рабочий! Нужен curl на сервереЧтобы не держать демон на сервере + всю базу блокчейна (привет всем кто в теме!) мы будем использовать бесплатный API от сервиса Block.io. Регистрируемся там на свой почтовый ящик, внимательно запоминаем и сохраняем все данные. Войдя в кабинет нажимаем на кнопку Show API KeysИ копируем API ключ для Bitcoin. Скачиваем и заливаем файлы на сервер: BTCPay-Simpla.rar Заходим в админ.панель, создаем новый метод оплаты и заходим в его настройки. Указываем свой API KEY Указываем валюту Корректировка цены - это насколько % мы будем изменять актуальный курс Bitcoin учитывая что он прыгает и изменяется каждую секунду Сколько времени мы ожидаем оплату - по сути это кеширование курса, соответственно цены товара, кошелька для оплаты и другой информации. Важно: кешируется все в папку /payment/BTCPay/temp - на моем сервере для папки temp необходимо было выставить владельца apache и права 777 для успешной работы Заполняем почту для уведомлений.Пример кешированого файла: Имеет завание "номерзаказа.txt", когда человек нажимает на кнопку что произвел оплату он переименовывается для крон файла в "номерзаказа.check" Пример файла "номерзаказа.txt" Файлы которые нужно изменить вручную:BTCPaycron.php - $work_directory = "payment/BTCPay"; - проверить ли верный путь payment/BTCPay/security.php - написать свой уникальный произвольный security ключПосле настройки вот как все выглядит: Как видим там есть таймер который мы установили в настройках модуля в админ.панели Simpla.Я рекомендую устанавливать значение на 1200 (20 минут) - этого как раз достаточно. После нажатия на кнопку "Я оплатил, проверить поступление средств"Файл "номерзаказа.txt" переименовывается в "номерзаказа.check" и им уже будет заниматься крон файл - BTCPaycron.php Крон файл берет из файла "номерзаказа.check" сумму к оплате и сверяет ее с блокчейном по апи.Я указал что если сумма оплаты будет >= суммы оплаты - чтобы заказ засчитывался оплаченным. Сделал имеено >= т.к. попросту человек из-за комиссии может отправить сумму больше чем нужно. Сам крон 1 раз в Х минут (смотря как вы установите) будет в течение часа проверять поступление средств и дожидаться 2 подтверждений транзакции. Только тогда будет передан запрос в callback с информацией что заказ оплачен и покупателю также как и вам придет уведомление на почту. У себя я установил крон так: */08 * * * * curl http://site.com/BTCPay_cron.php >/dev/null 2>&1 Если в течение часа - подтверждения транзакции не будет - "номерзаказа.check" файл будет удален, а при заходе по ссылке на заказ у пользователя появится вновь форма оплаты с обновленной информацией для оплаты в зависимости от курса. Сам номер кошелька для оплаты будет таким же, изменится только сумма (btc) к оплате исходя из обновленного курса. На заметку: у Blockio можно создавать на бесплатном аккаунте до 100 кошельков. Соответственно нужно будет время от времени удалять не используемые кошельки (старых заказов) и переносить балансы на основной кошелек в той же системе Block.io или на любой из своих кошельков - тут дело за вами. Для новых версий > 2.1.5 - нужно просто сравнить callback.php файл с другой платежной системы и возможно подправить 2-3 строки. UPD: Сравнил с callback.php из новой версии, вроде бы все одинаково, работать будет и на новых версиях С меня все. Вроде бы ничего не забыл Изменено 29 октября, 2016 пользователем xavior Цитата Ссылка на сообщение Поделиться на другие сайты
xavior Опубликовано 30 октября, 2016 Автор Жалоба Поделиться Опубликовано 30 октября, 2016 (изменено) Обновил платежный модуль: btcpayv2.rar В настройках теперь указывается дополнительно:Кол-во подтверждений транзакции (ранее было 2) теперь можно указывать в настройках Время ожидания подтв.транзакции - также указывается в секундах. Для 2 подтв. я рекомендую устанавливать 3600 (1 час) Также были устранены мелкие баги при работе с модулем, доработан платежный интерфейс. P.S. Систему за 5-20 минут можно элементарно дописать под Dogecoin / Litecoin и любые альтернативные криптовалюты, если вдруг появится в этом необходимость - говорите, не стесняйтесь, сделаю Изменено 30 октября, 2016 пользователем xavior Цитата Ссылка на сообщение Поделиться на другие сайты
xavior Опубликовано 30 октября, 2016 Автор Жалоба Поделиться Опубликовано 30 октября, 2016 Делаю "как для себя" по этому мигом еще один апдейт: В случае если не возможно получить курс валюты в национальной валюте через bitpay.com - используется 2й API сервис cryptonator.com - на нем курс всегда выше рыночного, сделал ему доп. корректировку. Добавлена проверка если курс не доступен. Исправлена проверка если получение номера кошелька не доступно по API.btcpayv3.rar Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 1 ноября, 2016 Жалоба Поделиться Опубликовано 1 ноября, 2016 рекомендую выложить на github еще Цитата Ссылка на сообщение Поделиться на другие сайты
xavior Опубликовано 1 ноября, 2016 Автор Жалоба Поделиться Опубликовано 1 ноября, 2016 Благодарю за совет, обдумаю, т.к. код не очень идеальный там внутри Мне кажется что мой модуль оплаты бы отлично подошел для людей которые продают цифровые товары (в т.ч. и доработки для Simpla) но скорее всего просто никто не хочет связываться с Bitcoin. Цитата Ссылка на сообщение Поделиться на другие сайты
weltrade Опубликовано 4 ноября, 2016 Жалоба Поделиться Опубликовано 4 ноября, 2016 Мне кажется что мой модуль оплаты бы отлично подошел для людей которые продают цифровые товары (в т.ч. и доработки для Simpla) но скорее всего просто никто не хочет связываться с Bitcoin.Очень хорошая задумка и шаг к развитию криптовалют. Просто они у нас еще не очень развиты, к сожалению... Цитата Ссылка на сообщение Поделиться на другие сайты
xavior Опубликовано 4 ноября, 2016 Автор Жалоба Поделиться Опубликовано 4 ноября, 2016 Очень хорошая задумка и шаг к развитию криптовалют. Просто они у нас еще не очень развиты, к сожалению... Начинают развиваться, просто вы возможно не знаете (имею ввиду скрывают) Пример из Украины: Еще один украинский нардеп в своей е-декларации указал биткоины в качестве принадлежащих ему активов. Им оказался председатель Интернет-партии Украины Дмитрий Голубов. Как указано в поданной Голубовым декларации, он владеет 4376 биткоинами (75,969 млн гривен), которые были приобретены 22 ноября 2012 года. или еще один кадр В электронной декларации народного депутата Алексея Мушака от Блока Петра Порошенко среди прочих сбережений указано 465 биткоинов. По сегодняшнему курсу это около 8 млн гривен. Цитата Ссылка на сообщение Поделиться на другие сайты
monex Опубликовано 7 февраля, 2017 Жалоба Поделиться Опубликовано 7 февраля, 2017 Спасибо за полезный модуль. После оплаты, когда производишь проверку вылезает - Warning: rename(payment/BTCPay/temp/62.txt,payment/BTCPay//temp/62.check): No such file or directory in /home/veloxped/public_html/payment/BTCPay/BTCPay.php on line 34 Не подскажите, что не так? Цитата Ссылка на сообщение Поделиться на другие сайты
monex Опубликовано 7 февраля, 2017 Жалоба Поделиться Опубликовано 7 февраля, 2017 И неправильно рассчитывается в биткоинах сумма заказа. Сумма заказа 100 дол, а в Биткоинах получается 1.04 биткоина, а должно быть 0.104. Цитата Ссылка на сообщение Поделиться на другие сайты
xavior Опубликовано 7 февраля, 2017 Автор Жалоба Поделиться Опубликовано 7 февраля, 2017 (изменено) 1. проверьте ли в папке создается файл 62.check, возможно на папке не проставлены права, укажите 777 2. Возможно из-за того, что у вас основная валюта USD и производится деление, для теста проверьте ли ошибка возникает если валюта RUB или UAH Изменено 7 февраля, 2017 пользователем xavior Цитата Ссылка на сообщение Поделиться на другие сайты
monex Опубликовано 8 февраля, 2017 Жалоба Поделиться Опубликовано 8 февраля, 2017 1. Файл присутствует. Права установлены 777. Меня смущает что в пути до файла два слеша //. Это может быть причиной? Пример:Warning: rename(payment/BTCPay/temp/68.txt,payment/BTCPay//temp/68.check): No such file or directory in /home/veloxped/public_html/payment/BTCPay/BTCPay.php on line 34 2. По второму пункту, изменил на рубли, также отображается неверно. Вместо 0.1 биткоин, выставляется счет на 1 биткоин. Буду благодарен, если поможете решить эти вопросы. Цитата Ссылка на сообщение Поделиться на другие сайты
GodlikeAnon Опубликовано 23 апреля, 2017 Жалоба Поделиться Опубликовано 23 апреля, 2017 Здравствуйте, сделал по инструкции. Цитата Ссылка на сообщение Поделиться на другие сайты
GodlikeAnon Опубликовано 23 апреля, 2017 Жалоба Поделиться Опубликовано 23 апреля, 2017 (изменено) Проблема встречается на всех версиях.Здравствуйте, сделал по инструкции. Изменено 23 апреля, 2017 пользователем GodlikeAnon Цитата Ссылка на сообщение Поделиться на другие сайты
xavior Опубликовано 23 апреля, 2017 Автор Жалоба Поделиться Опубликовано 23 апреля, 2017 (изменено) Здравствуйте, сделал по инструкции. Можете посмотреть еще ли что-то пишется в логах сервера ? + Проверить ли curl включен Насколько я вижу, в вашем случае не считается сумма к оплате в BTC исходя из того, что не получается "скачать" курс и соответственно произвести расчет То же самое - QR код не верный, не получается достать номер кошелька для оплаты. = Проблема явно в сURL библиотеке если вы все по инструкции сделали Изменено 23 апреля, 2017 пользователем xavior Цитата Ссылка на сообщение Поделиться на другие сайты
GodlikeAnon Опубликовано 23 апреля, 2017 Жалоба Поделиться Опубликовано 23 апреля, 2017 (изменено) Можете посмотреть еще ли что-то пишется в логах сервера ? + Проверить ли curl включен Насколько я вижу, в вашем случае не считается сумма к оплате в BTC исходя из того, что не получается "скачать" курс и соответственно произвести расчет То же самое - QR код не верный, не получается достать номер кошелька для оплаты. = Проблема явно в сURL библиотеке если вы все по инструкции сделалиЗаранее Спасибо!!И извиняюсь, новичёк в этой сфере. Где должны храниться логи?cURL Вроде работает, т.к. пробовал его выключить и были совсем другого рода ошибки.Как вы и сказали, проблема в получении курса валюты. Изменено 23 апреля, 2017 пользователем GodlikeAnon Цитата Ссылка на сообщение Поделиться на другие сайты
xavior Опубликовано 23 апреля, 2017 Автор Жалоба Поделиться Опубликовано 23 апреля, 2017 Заранее Спасибо!!И извиняюсь, новичёк в этой сфере. Где должны храниться логи?cURL Вроде работает, т.к. пробовал его выключить и были совсем другого рода ошибки.Как вы и сказали, проблема в получении курса валюты. Ошибка на последнем скрине связана исключительно с тем что модуль работает на локальном Вашем пк, на сервере / хостинге ее не должно быть. Насчет cURL - не скажу, так как скорее всего не пользовался Вашим локальным сервером. Попробуйте тестировать непосредственно на хостинге. Там все должно быть норм. У меня сходу все норм было на IspManager хостинге (только опять таки curl включал) и на локальном сервере OpenServer (https://ospanel.io) Цитата Ссылка на сообщение Поделиться на другие сайты
GodlikeAnon Опубликовано 23 апреля, 2017 Жалоба Поделиться Опубликовано 23 апреля, 2017 Ошибка на последнем скрине связана исключительно с тем что модуль работает на локальном Вашем пк, на сервере / хостинге ее не должно быть. Насчет cURL - не скажу, так как скорее всего не пользовался Вашим локальным сервером. Попробуйте тестировать непосредственно на хостинге. Там все должно быть норм. У меня сходу все норм было на IspManager хостинге (только опять таки curl включал) и на локальном сервере OpenServer (https://ospanel.io) Понял, Спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Just074 Опубликовано 6 июня, 2017 Жалоба Поделиться Опубликовано 6 июня, 2017 А с правовой точки зрения, в РФ, можно ли принимать платежи в Биткоинах? Есть ли нюансы какие для работы возможно с бухгалтерской точки зрения ? Цитата Ссылка на сообщение Поделиться на другие сайты
artbe Опубликовано 7 июня, 2017 Жалоба Поделиться Опубликовано 7 июня, 2017 Возможно ли реализация модуля под Litecoin / ETH и другую крипту? Цитата Ссылка на сообщение Поделиться на другие сайты
xikarx Опубликовано 12 июля, 2017 Жалоба Поделиться Опубликовано 12 июля, 2017 (изменено) сделал по инструкции, вроде все работает но картинка QR-код чет сильно маленькая получается, а на мобильных устройствах вообще пропадает.почему так? как победить?С размером картинки на десктопе проблему решил правкой файла BTCPay/page.php А вот на мобильном картинка QR-кода так и не появилась. Изменено 12 июля, 2017 пользователем xikarx Цитата Ссылка на сообщение Поделиться на другие сайты
freeseh84 Опубликовано 17 октября, 2019 Жалоба Поделиться Опубликовано 17 октября, 2019 Этот модуль работает вообще?? Есть еще какие-то решения? не переходит на страницу оплаты даже Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.