Jump to content

Прием платежей Bitcoin


poiuty
 Share

Recommended Posts

В этой теме, бесплатно помогаю подключить прием платежей 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();
Edited by poiuty
Link to comment
Share on other sites

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

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

 

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

Link to comment
Share on other sites

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

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

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

 

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

 

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

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

Edited by poiuty
Link to comment
Share on other sites

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

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

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

 

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

 

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

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

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

Link to comment
Share on other sites

  • 2 weeks later...
  • 7 months later...

<? // 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);
Edited by zcambler
Link to comment
Share on other sites

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

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");
Edited by zcambler
Link to comment
Share on other sites

  • 3 months later...

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

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

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

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

 

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

 

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

Edited by gpufanat
Link to comment
Share on other sites

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

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

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

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

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

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

Edited by gpufanat
Link to comment
Share on other sites

  • 2 weeks later...

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

Edited by gpufanat
Link to comment
Share on other sites

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

Edited by poiuty
Link to comment
Share on other sites

 

 

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

Да хватит уже! И так примяли его, что дальше некуда :)
Link to comment
Share on other sites

  • 2 weeks later...

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

Edited by gpufanat
Link to comment
Share on other sites

  • 3 weeks later...

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

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

Добрый день!

 

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

Link to comment
Share on other sites

GustoElPeyote, можно указать адрес btc кошелька на странице. Если facebook позволяет вывести виджет - можно реализовать через него.
Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 2 weeks later...

Добрый день! 

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

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

 

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

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

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

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

Link to comment
Share on other sites

  • polym0rph unpinned this topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Similar Topics

    • Курс Bitcoin

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

      in Биткоин

    • Bitcoin Core

      Bitcoin Core - это полноценный клиент, составляющий основу сети. Для него характерен высокий уровень безопасности, конфиденциальности и стабильности. Однако, у него меньше опций и он занимает довольно много места на диске и оперативной памяти.   Официальный сайт  |  Исходный код  |  История версий  В теме действуют все Правила форума: перед тем как задать вопрос, посмотрите НОВИЧКИ Bits.Media, все сюда. Уважайте своё и чужое время; для обсуждения и поиск

      in Кошельки для криптовалют

    • Apirone.com — SegWit процессинг для биткоин-платежей

      Apirone.com — процессинг биткоин-платежей с поддержкой технологии SegWit.   В нашем проекте мы разработали сервис, полностью совместимый с Blockchain.info API v1.   Мы первыми сделали форвардинг платежей с применением технологии SegWit! В качестве адреса получателя можно указать любой тип биткоин-адреса, существующий на данный момент: стандартные адреса, начинающиеся на “1” (P2PKH); адреса Pay to Script Hash с поддержкой SegWit (P2SH-P2WPKH), начинающиеся на “3”; а также новые SegW

      in Магазины и сервисы (обсуждение, претензии)

    • ЦБ РФ изучает возможность токенизации безналичных платежей

      Ассоциация банков России предложила ЦБ РФ проводить безналичные расчеты в токенизированной форме. Для начала, для социальных выплат и проведения денег по госконтрактам. Банк России принял предложения к сведению. По мнению регулятора, токенизация безналичных платежей позволит увеличить прозрачность расходования средств и бюджетными организациями, и частными компаниями.   Впервые предложение было озвучено представителями Ассоциации банков России во главе со Сбером еще в начале 2021 год

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

    • Восстановление кошелька Bitcoin

      Многие задаются вопросом как сделать резервную копию кошелька. В этой статье мы и обсудим несколько вариантов сохранения кошельков, а также их ремонта в случае повреждения. Итак, приступим: Вся информация о кошельке, адрес, количество монет, транзакции находится в одном файле, который называется wallet.dat, который, по умолчанию, находится в папке по пути C:/users/appdata/roaming/НазваниеМонеты. (Для быстрого перехода в папку appdata в windows 7 можно нажать кнопку "Пуск" и набрать в строке по

      in Безопасность

×
×
  • Create New...