Bitcoin Forum
November 01, 2024, 01:23:54 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Связка bitcoind + MySQL + PHP  (Read 6139 times)
Woland1987 (OP)
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
June 30, 2014, 06:55:20 AM
 #1

Всем привет!
Если кто сталкивался подскажите как отработать событие прихода средств на адрес аккаунта в bitcoin кошельке?

Суть такова: пользователю создается аккаунт на сайте и с таким же именем в кошельке, кошельку отдается команда getnewaddress("username"), это понятно. В любой момент пользователь может себе сгенерировать новый адрес для депозита, это тоже элементарно.

Но встал в ступор на такой стадии: когда пользователь отправил монеты на свой адрес, как дать понять скрипту что надо сделать запись этого значения в БД MySQL? то есть сколько пришло монет на адрес, столько должно попасть в числовом эквиваленте в БД сайта. Как отработать это событие?

Спасибо мужики, если поможете.
icreator
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
June 30, 2014, 10:58:16 AM
Last edit: September 04, 2014, 05:20:09 AM by icreator
 #2

я использую
Code:
listunspent 

как только пришел блок, а его можно поймать если задать запуск команды в конфиге клиента
Code:
blocknotify	=start /LOW /MIN C:\web2py-m\applications\...\!notify-curl.cmd BTC %s >nul

в комнадном файле
Code:
curl_nossl http://localhost..../УРЛ/%1/%2 --connect-timeout 10 -m 10 --no-keepalive --no-sessionid -j >>%to_out%


у меня как только пришел блок кошелек запускает открытие УРЛ на локальном сервисе и апачи запускает весь расчет который на фрэймворке web2py сделан (на питоне)

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
pianist
Legendary
*
Offline Offline

Activity: 954
Merit: 1003


View Profile
July 13, 2014, 06:26:30 PM
 #3

Ужас какой, питон под виндой... кошмар...

По делу — способ так себе, так как не будет ловить не подтвержденные транзакции, а люди любят, когда сразу приходит хотя бы как "не подтвержденное".

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

Вот код на пхп:

Code:
        $txs = false;
        try
        {
                $block_count = $W->getblockcount();
                $block_since = $W->getblockhash($block_count - 600);
                $txs = $W->listsinceblock($block_since);
        }
        catch (Exception $e)
        {
                echo "ERROR: " . $e->getMessage() . "\n";
        }

        if (!$txs) return;

        foreach ($txs['transactions'] as $t)
        {
...
        }
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
September 04, 2014, 04:06:19 AM
 #4

А зачем
Code:
$block_since = $W->getblockhash($block_count - 600);
?
У нас ведь подтверждение транзакции 6 блоков, а не 600?

Was mich nicht umbringt macht mich stärker [F.N.]
icreator
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
September 04, 2014, 05:22:25 AM
 #5

тоже не то - делать двойную работу, ведь кошелек уже все сделал за нас
поэтому я использую lisunspent
хотя с таким подходом много нюансов

работает и с нулевыми подтверждениями
пример работы можно тут глянуть
http://cryptopay.in/shop/bill/show/240
при оплате любой покажет и с нулевым подтверждением
но зачтет в баланс при 1-м подтверждении

для отлова нулевых подтверждений - запускаем цикл бесконечный и каждые 10-30 сек делаем проверку

а не проще нам скооперироваться и бесплатно поставить вам на сайт наш мерчант приема платежей

там то всего 2 строчки кода будет:
- создать счет
- проверить оплату по счету

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
pianist
Legendary
*
Offline Offline

Activity: 954
Merit: 1003


View Profile
September 11, 2014, 10:45:51 AM
 #6

а не проще нам скооперироваться и бесплатно поставить вам на сайт наш мерчант приема платежей

вы в своем уме?
becool
Legendary
*
Offline Offline

Activity: 1442
Merit: 1016


View Profile
September 14, 2014, 06:45:39 PM
 #7

Ужас какой, питон под виндой... кошмар...

По делу — способ так себе, так как не будет ловить не подтвержденные транзакции, а люди любят, когда сразу приходит хотя бы как "не подтвержденное".

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

Вот код на пхп:

Code:
        $txs = false;
        try
        {
                $block_count = $W->getblockcount();
                $block_since = $W->getblockhash($block_count - 600);
                $txs = $W->listsinceblock($block_since);
        }
        catch (Exception $e)
        {
                echo "ERROR: " . $e->getMessage() . "\n";
        }

        if (!$txs) return;

        foreach ($txs['transactions'] as $t)
        {
...
        }

Написали бы что класс добавлять надо какой человеку, а то он может не в курсе.

Ivanech
Hero Member
*****
Offline Offline

Activity: 808
Merit: 1014


View Profile
October 05, 2014, 02:28:59 PM
 #8

Ужас какой, питон под виндой... кошмар...

По делу — способ так себе, так как не будет ловить не подтвержденные транзакции, а люди любят, когда сразу приходит хотя бы как "не подтвержденное".

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

Вот код на пхп:

Code:
        $txs = false;
        try
        {
                $block_count = $W->getblockcount();
                $block_since = $W->getblockhash($block_count - 600);
                $txs = $W->listsinceblock($block_since);
        }
        catch (Exception $e)
        {
                echo "ERROR: " . $e->getMessage() . "\n";
        }

        if (!$txs) return;

        foreach ($txs['transactions'] as $t)
        {
...
        }

Написали бы что класс добавлять надо какой человеку, а то он может не в курсе.

JSON-RPC PHP ведь?
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!