2017-01-24 3 views
0

私は個人向け販売プラットフォームを提供しています。各個人はビットコインアドレスを登録し、各トランザクションの後にトランザクションIDを入力する必要があります。 私のコード -Djangoの1つのアドレスから別のアドレスへのBitcoin転送を確認してください

import urllib 
import re 
urlr = "https://blockchain.info/q/txresult/"+hash+"/"+receiver.bitcoin_account 
urls = "https://blockchain.info/q/txresult/"+hash+"/"+sender.bitcoin_account 
try: 
    res = urllib.urlopen(urls) 
    resread = res.read() 
    sen = urllib.urlopen(urlr) 
    senread = sen.read() 
except IOError: 
    resread = "" 
    senread = "" 

try: 
    resread = int(resread) 
    senread = int(senread) 
    if resread >= 5000000 and senread != 0: 
     ... 

私は

答えて

2

を得ることができる場合あなたはbitcoindを自分で実行した場合、より良い結果を得ることができ、そしてblockchain.infoのAPIに依存しない、よりよい解決策を必要としてください。あなたが初めてで-reindexを含める必要があります前に、あなたはすでにネットワークと同期されている場合

bitcoind -txindex -server 

:単純に次のオプションでbitcoindを開始します。 あなたは、その後の取引を照会するためにJSON-RPCインタフェースを使用することができます:

bitcoin-cli getrawtransaction 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b 

いっそのこと、あなたはbitcoin-cliに砲撃せずに取引を照会し、解析するpython-bitcoinlibライブラリを使用することができます。 blockchain.infoを信用しなくても、あなたにビットコインのblockchainのローカルコピーへの直接アクセスを提供し、より速く、よりスケーラブルである必要があり

from binascii import unhexlify 
from bitcoin.rpc Proxy 
p = Proxy("http://rpcuser:[email protected]:8332") 
h = unhexlify("4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b") 
print(p.gettransaction(h)) 

+0

ご返信ありがとうございます、ありがとうございます。買い手は支払い後に取引IDを提供します。私はトランザクションIDを使って、彼が実際にpython-bitcoinlibを使って売り手のアカウントに支払ったことを確認します。 – Harryface

+0

私の悪いことに、 'gettransaction'コールはバイナリハッシュが16進エンコードされたハッシュではないことを期待していますので、最初に' unhexlify'を使う必要があります。次に、このトランザクションが何回確認を受け取ったかを示す 'confirmations'キーを含め、関連するすべてのデータを含むdictを取得するだけです。値に応じて2-6の確認で十分です。 – cdecker

関連する問題