Перейти к содержанию

Прием платежей Bitcoin (мерчант). Для тех, кто хочет сделать всё своими руками


poiuty

Рекомендуемые сообщения

В этой теме, бесплатно помогаю подключить прием платежей bitcoin на ваш сайт.

Если вы разбираетесь в данной теме и хотите сами реализовать прием платежей - ниже есть пример.

Не смущайтесь, что написано для litecoin. Логика та же и для bitcoin.

 

По мере сил, буду помогать и тем, кто не может сам модифицировать исходники сайта, запустить bitcoind и т.д.

Но очень хочет начать приминать bitcoin. Для этого свяжитесь со мной по icq: 450420625

 

Отдельно отмечу, что для запуска bitcoind -> нужен VPS с диском как минимум 40Gb.

 

 

Ставим litecoin wallet.

apt-get install build-essential libssl-dev libdb5.1-dev libdb5.1++-dev libboost-all-dev git
git clone git://github.com/litecoin-project/litecoin.git
cd litecoin/src
make -j2 -f makefile.unix USE_UPNP=
cp litecoind /usr/bin/litecoind
mkdir ~/.litecoin

Создаем /root/.litecoin/litecoin.conf c правами 0600

server=1
rpcallowip=127.0.0.1
rpcuser=HardToGuessUsername
rpcpassword=Str0ngS3cur3Passw0rd1

Запускаем

litecoind -daemon

Чтобы отправлять команды на API -> воспользуемся jsonRPCClient.

Всем пользователям делаем отдельный адрес (чтобы определить, кто оплатил).

$litecoin->getnewaddress("NAME");

ltc1.png

Далее раз в N минут проверяем транзакции, где количество подтверждений от 6 до 1000.

Если получили такие транзакции -> проверяем txid в базе. Если в базе нет txid -> увеличиваем баланс. Если есть -> игнорируем.

ltc2.png

Пример кода (проверка оплаты)

<? // example by poiuty 
require_once('jsonRPCClient.php');

$litecoin = new jsonRPCClient('http://USER:PASSWD@127.0.0.1:9332/');

// Получаем массив и делаем цикл
$i = 0;
$a = $litecoin->listtransactions("*", 100000));

while(count($a) > $i){

// Проверяем тип транзакции, количество подтверждений + сумму
if($a["$i"]["category"] != "receive" || $a["$i"]["confirmations"] < 6 || $a["$i"]["amount"] < 0.001) continue;

// Есть ли в базе эта транзакция?
$select_query = $db->prepare("SELECT * FROM `billing_log` WHERE `payment_id` =:id");
$select_query->bindParam(':id', $a["$i"]["txid"], PDO::PARAM_STR);
$select_query->execute();
if($select_query->rowCount() > 0){ $i++; continue; }

// Кто оплачивает?
$select_query = $db->prepare("SELECT * FROM `users` WHERE `ltc` =:address");
$select_query->bindParam(':address', $a["$i"]["address"], PDO::PARAM_STR);
$select_query->execute();
if($select_query->rowCount() != 1){ $i++; continue; }
$row = $select_query->fetch();
$user_id = $row['user_id'];

// Узнаем курс
$select_query = $db->prepare("SELECT * FROM `ltc` WHERE `id` = '1'");
$select_query->execute();
$row = $select_query->fetch();
$ltc_val = $row['value'];

// Увеличим баланс
$money = round($a["$i"]["amount"]*$ltc_val);
$update_query = $db->prepare("UPDATE `users` SET `money` = `money`+:money WHERE `user_id` = :user_id");
$update_query->bindParam(':money', $money, PDO::PARAM_STR);
$update_query->bindParam(':user_id', $user_id, PDO::PARAM_STR);
$update_query->execute();

// Запишем лог
$insert_query = $db->prepare("insert into `billing_log`(`payment_id`, `amount`, `date`, `system`, `user_id`) VALUES ( :id, :money, UNIX_TIMESTAMP(), 'Litecoin', :user_id)");
$insert_query->bindParam(':id', $a["$i"]["txid"], PDO::PARAM_STR);
$insert_query->bindParam(':money', $money, PDO::PARAM_STR);
$insert_query->bindParam(':user_id', $user_id, PDO::PARAM_STR);
$insert_query->execute();

$i++;
}

 

Узнаем средний курс по BTC-E

<? // example by poiuty
$i = file_get_contents("https://btc-e.com/api/2/ltc_rur/ticker");
if($i === false) die;
$i = json_decode($i, true);
$i = (int) $i["ticker"]['avg'];

$update_query = $db->prepare("UPDATE `ltc` SET `value` = :ltc WHERE `id` = '1'");
$update_query->bindParam(':ltc', $i, PDO::PARAM_STR);
$update_query->execute();
Изменено пользователем Helber
Ссылка на комментарий
Поделиться на другие сайты

Далее раз в N минут проверяем транзакции, где количество подтверждений от 6 до 1000.

Если получили такие транзакции -> проверяем txid в базе. Если в базе нет txid -> увеличиваем баланс. Если есть -> игнорируем.

 

А можно поподробнее на этом месте ? Особенно со второго предложения, если не затруднит.

Ссылка на комментарий
Поделиться на другие сайты

@condor2zero, можно поставить выполнение скрипта по крону, который будет толкать скрипт раз в N минут.

Wallet -> один, адресов можно сделать сколько угодно.

С помощью listunspent 6 1000 -> получаем транзакции у которых количество подтверждений больше или равно 6, но меньше или ровно 1000.

 

Для LTC подтвержденный платеж = 6 confirmations. Ограничиваем верхним числом -> чтобы не получить слишком много данных.

 

Теперь, когда мы получили некие данные -> проверим транзакцию, возможно мы ее уже обрабатывали.

Делаем запрос в базу, если не находим -> значит обрабатываем -> увеличиваем баланс пользователю и записываем лог.

Изменено пользователем poiuty
Ссылка на комментарий
Поделиться на другие сайты

@condor2zero, можно поставить выполнение скрипта по крону, который будет толкать скрипт раз в N минут.

Wallet -> один, адресов можно сделать сколько угодно.

С помощью listunspent 6 1000 -> получаем транзакции у которых количество подтверждений больше или равно 6, но меньше или ровно 1000.

 

Для LTC подтвержденный платеж = 6 confirmations. Ограничиваем верхним числом -> чтобы не получить слишком много данных.

 

Теперь, когда мы получили некие данные -> проверим транзакцию, возможно мы ее уже обрабатывали.

Делаем запрос в базу, если не находим -> значит обрабатываем -> увеличиваем баланс пользователю и записываем лог.

Спасибо за развернутый ответ. Big Thanks !!!!

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
  • 7 месяцев спустя...

<? // example by poiuty
$i = file_get_contents("https://btc-e.com/api/2/ltc_rur/ticker");
if($i === false) die;
$i = json_decode($i, true);
$i = (int) $i["ticker"]['avg'];

$update_query = $db->prepare("UPDATE `ltc` SET `value` = :ltc WHERE `id` = '1'");
$update_query->bindParam(':ltc', $i, PDO::PARAM_STR);
$update_query->execute();

 

через file_get_contents () вы можете не получить результата по https:. нужно использовать cURL,

примерно такого вида:

$json = curl_init('https://btc-e.com/api/2/ltc_usd/ticker');
	curl_setopt($json, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($json, CURLOPT_SSL_VERIFYPEER, 0);
	curl_setopt($json, CURLOPT_SSL_VERIFYHOST, 0);
	
        $result = curl_exec($json);
	curl_close($json);

	$data = json_decode($result, true);
Изменено пользователем zcambler
Ссылка на комментарий
Поделиться на другие сайты

Без проблем забирает результат

echo file_get_contents("https://btc-e.com/api/2/ltc_rur/ticker");

http://poiuty.com/test.php

Ссылка на комментарий
Поделиться на другие сайты

Без проблем забирает результат

echo file_get_contents("https://btc-e.com/api/2/ltc_rur/ticker");

http://poiuty.com/test.php

 

не спорю на btc-e.com прокатывает, на других может и непрокатить, правильней будет через cURL точнее универсальней

echo file_get_contents("https://blockchain.info/en/ticker");
Изменено пользователем zcambler
Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Скачал твой исходник с гитхуба так и не сбог Базу даных подключить пишет на сайте ошибка  mysql

2момента-так вот в какой папке лежит сама база и где указать конфигурацию  для её подключения?

исходник тут https://github.com/poiuty/midas-processing

Если кто разберётся буду рад отблагодарить доджикоинами.

 

Ещё ищу статью ЛЕКСИКУСА ник непомню или на биткоинталке или где он там пример реализаци ивыкладывал на ПХП чтобы принимать битки на сайте!Ссылку бы найти тоже помощи ищу!

 

имено интересуют статьи работы через Биткоинд клиент напрямую на своём хостинге !

Изменено пользователем gpufanat
Ссылка на комментарий
Поделиться на другие сайты

А чо не разобраца!раздел Разработка!

ТУТ не дураки сидят!И знают чо почём!

Ху*рят кода поти по 1000-2000 строчек в день и не знают как установить? Да хоть не смеши меня ЛИОН74

Просто кто делал этот скрипт он хорошо понимал как он работает.

И делал чтобы порвать всех и изменить мир к лучшему!

И хватит меня преследовать и подкалывать во всех темах форума!

Изменено пользователем gpufanat
Ссылка на комментарий
Поделиться на другие сайты

Информация удалена.

Изменено пользователем poiuty
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Спасибо уже научился. Статью ЛЕКСИКУСА о подкл биткоин платежей на сайт с примером на гит хабе скачал.

Изменено пользователем gpufanat
Ссылка на комментарий
Поделиться на другие сайты

Обновил первый пост. Теперь в этой теме буду бесплатно помогать подключить прием платежей bitcoin на ваш сайт.
Модеров прошу закрепить тему в этом разделе.

Изменено пользователем poiuty
Ссылка на комментарий
Поделиться на другие сайты

 

 

Но очень хочет начать приминать bitcoin

Да хватит уже! И так примяли его, что дальше некуда :)
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

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

Изменено пользователем gpufanat
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Обновил первый пост. Теперь в этой теме буду бесплатно помогать подключить прием платежей bitcoin на ваш сайт.

Модеров прошу закрепить тему в этом разделе.

Добрый день!

 

Подскажи пожалуйста, есть ли возможность пришить прием платежей в битках прям к странице в фейсбуке?

Ссылка на комментарий
Поделиться на другие сайты

GustoElPeyote, можно указать адрес btc кошелька на странице. Если facebook позволяет вывести виджет - можно реализовать через него.
Ссылка на комментарий
Поделиться на другие сайты

Думаю фейсбук позволяет. А на вордпрессе как можно реализовать эту возможность? Он точно позволяет.

Ссылка на комментарий
Поделиться на другие сайты

Хорошо, спасибо. Но фейсбук тоже очень актуален. Есть мысли как реализовать?

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Добрый день! 

Не могли бы Вы рассказать о приеме биткойнов на сайте простым русским языком, без скриптов и технических особенностей?!  )))

Если такое возможно!

 

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

К примеру вот есть пустой хостинг и идея проекта. Что дальше?

Связываться с мерчантами не хочу, интересно сделать все независимо!

Спасибо заранее так сказать! ) 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Similar Topics

    • Курс Bitcoin (только про Bitcoin)

      В данной ветке предлагаю вести обсуждение курса Bitcoin Для желающих безнаказанно оффтопить был создан топик Курсы криптовалют в разделе флейма, там можно уходить в рассуждения сколь угодно далеко от основной темы, так что велком! Также у нас есть ветка по обсуждению "справедливого курса" Bitcoin     Несколько полезных инструментов для отслеживания курса: bitcoin.clarkmoody отображает стакан Mt.Gox и строит в реалтайме японские свечи bitcoinchain сравнение курсов на разных биржах н

      в Биткоин

    • Комиссии Bitcoin

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

      в Биткоин

    • [Top-10 Bitcoin Майнинг пул] [emcd. Mining pool] - FPPS, комиссия 1.5%, без мин. порога на вывод

      Экосистема для майнеров и пользователей криптовалют, в которой можно добывать криптовалюту с низкой комиссией, хранить добытые монеты с выгодой до 12% годовых и экономить на выводе в фиатные валюты внутри одного приложения. Майнинг-пул  Добывай BTC, LTC, DOGE, ETC и другие монеты с высоким хешрейтом и минимальной комиссией 1,5%. Накопительный счёт  Безопасно храни криптовалюту и получай пассивный доход до 12% годовых.  Быстрый вывод  Выводи активы на карту - Visa, Maste

      в Пулы совместного майнинга

    • Coinbase запустит торговлю фьючерсами на Dogecoin, Litecoin и Bitcoin Cash

      Американская криптовалютная биржа Coinbase направила Комиссии по торговле товарными фьючерсами (CFTC) три письма, в котором сообщила о планах запуска фьючерсов на Dogecoin, Litecoin и Bitcoin Cash с 1 апреля. Выбор Dogecoin представители Coinbase объяснили «преодолением пределов мемкоина» и растущей популярностью этой криптовалюты. То есть, по мнению руководства биржи, DOGE давно вышла за пределы «криптовалюты-шутки» и стала одним из основополагающих элементов криптоиндустрии.   Фьюч

      в Новости криптовалют

    • Суд присяжных признал владельца криптомиксера Bitcoin Fog Романа Стерлингова виновным

      Роман Стерлингов, основатель и оператор миксера Bitcoin Fog, был осужден Окружным судом США за отмывание $400 млн в период с 2011 по 2021 годы. 12 марта суд присяжных Окружного суда округа Колумбия вынес обвинительный приговор в отношении владельца криптомиксера Bitcoin Fog Романа Стерлингова. Присяжные согласились с доказательствами обвинения, что Стерлингов владел и управлял миксером Bitcoin Fog с октября 2011 года по апрель 2021 года, а также содействовал отмыванию денег преступников, ст

      в Новости криптовалют

×
×
  • Создать...