Jake Foley
Мой дом здесь!
- Регистрация
- 14 Дек 2006
- Сообщения
- 747
- Реакции
- 395
- Автор темы
- #1
Приветствую,
Ради интереса решил потратить вечер выходных и зарелизить рабочий модуль оплаты через платежную систему Bitcoin.
Simpla 2.1.5 - 2.3.7
Оффтоп:
или Зарегистрируйся.
Регистрируемся там на свой почтовый ящик, внимательно запоминаем и сохраняем все данные.
Войдя в кабинет нажимаем на кнопку Show API Keys
И копируем API ключ для Bitcoin.
Скачиваем и заливаем файлы на сервер:
Заходим в админ.панель, создаем новый метод оплаты и заходим в его настройки.
Пример файла "номерзаказа.txt"
Файлы которые нужно изменить вручную:
Как видим там есть таймер который мы установили в настройках модуля в админ.панели Simpla.
Я рекомендую устанавливать значение на 1200 (20 минут) - этого как раз достаточно.
После нажатия на кнопку "Я оплатил, проверить поступление средств"
Файл "номерзаказа.txt" переименовывается в "номерзаказа.check" и им уже будет заниматься крон файл - BTCPaycron.php
Крон файл берет из файла "номерзаказа.check" сумму к оплате и сверяет ее с блокчейном по апи.
Я указал что если сумма оплаты будет >= суммы оплаты - чтобы заказ засчитывался оплаченным.
Сделал имеено >= т.к. попросту человек из-за комиссии может отправить сумму больше чем нужно.
Сам крон 1 раз в Х минут (смотря как вы установите) будет в течение часа проверять поступление средств и дожидаться 2 подтверждений транзакции. Только тогда будет передан запрос в callback с информацией что заказ оплачен и покупателю также как и вам придет уведомление на почту.
У себя я установил крон так:
*/08 * * * * curl Для просмотра ссылки Войдиили Зарегистрируйся >/dev/null 2>&1
Если в течение часа - подтверждения транзакции не будет - "номерзаказа.check" файл будет удален, а при заходе по ссылке на заказ у пользователя появится вновь форма оплаты с обновленной информацией для оплаты в зависимости от курса. Сам номер кошелька для оплаты будет таким же, изменится только сумма.
На заметку: у Blockio можно создавать на бесплатном аккаунте до 100 кошельков. Соответственно нужно будет время от времени удалять не используемые кошельки (старых заказов) и переносить балансы на основной кошелек в той же системе Block.io
Для новых версий > 2.1.5 - нужно просто сравнить callback.php файл с другой платежной системы и возможно подправить 2-3 строки.
UPD: Сравнил с callback.php из новой версии, вроде бы все одинаково, работать будет и на новых версиях
С меня все. Вроде бы ничего не забыл
UPD2: Модуль был обновлен, вся информация на офф.форуме
===============
На вопросы работы данного модуля здесь я скорее всего отвечать не буду - только на Для просмотра ссылки Войдиили Зарегистрируйся
Ради интереса решил потратить вечер выходных и зарелизить рабочий модуль оплаты через платежную систему Bitcoin.
Simpla 2.1.5 - 2.3.7
Оффтоп:
- Первый раз писал такой сложный модуль заточенный для Simpla
- Первый раз писал модуль оплаты для Simpla
- Код запутанный и сложный, я много работал с криптовалютой и постарался предусмотреть все возможные подводные камни.
- И самое главное - код рабочий!
- Нужен curl на сервере
Регистрируемся там на свой почтовый ящик, внимательно запоминаем и сохраняем все данные.
Войдя в кабинет нажимаем на кнопку Show API Keys
И копируем API ключ для Bitcoin.
Скачиваем и заливаем файлы на сервер:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
Заходим в админ.панель, создаем новый метод оплаты и заходим в его настройки.
- Указываем свой API KEY
- Указываем валюту
- Корректировка цены - это насколько % мы будем изменять актуальный курс Bitcoin учитывая что он прыгает и изменяется каждую секунду
- Сколько времени мы ожидаем оплату - по сути это кеширование курса, соответственно цены товара, кошелька для оплаты и другой информации. Важно: кешируется все в папку /payment/BTCPay/temp - на моем сервере для папки temp необходимо было выставить владельца apache и права 777 для успешной работы
- Заполняем почту для уведомлений.
Пример файла "номерзаказа.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 Для просмотра ссылки Войди
Если в течение часа - подтверждения транзакции не будет - "номерзаказа.check" файл будет удален, а при заходе по ссылке на заказ у пользователя появится вновь форма оплаты с обновленной информацией для оплаты в зависимости от курса. Сам номер кошелька для оплаты будет таким же, изменится только сумма.
На заметку: у Blockio можно создавать на бесплатном аккаунте до 100 кошельков. Соответственно нужно будет время от времени удалять не используемые кошельки (старых заказов) и переносить балансы на основной кошелек в той же системе Block.io
Для новых версий > 2.1.5 - нужно просто сравнить callback.php файл с другой платежной системы и возможно подправить 2-3 строки.
UPD: Сравнил с callback.php из новой версии, вроде бы все одинаково, работать будет и на новых версиях
С меня все. Вроде бы ничего не забыл
UPD2: Модуль был обновлен, вся информация на офф.форуме
===============
На вопросы работы данного модуля здесь я скорее всего отвечать не буду - только на Для просмотра ссылки Войди
Последнее редактирование: