def get_btc_address(self, company_id): if self.pk and self.pk is not None: if self.btc_transaction_reference is not None and self.btc_transaction_reference != "": return self.btc_transaction_reference else: bitcoin_rpc = BitcoinRPC(settings.PAYMENT['bitcoin']['host'], settings.PAYMENT['bitcoin']['port'], settings.PAYMENT['bitcoin']['rpcuser'], settings.PAYMENT['bitcoin']['rpcpassword']) address = bitcoin_rpc.get_new_address(settings.PAYMENT['bitcoin']['account_prefix'] + str(company_id)) self.btc_transaction_reference = address self.save() return address return ""
import os import django from payment.service.Bitcoin import BitcoinRPC import settings django.setup() from common.functions import calculate_btc_price if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "webpos.settings") btc_price = calculate_btc_price("EUR", 0.5) print btc_price bitcoin_rpc = BitcoinRPC(settings.PAYMENT['bitcoin']['host'], settings.PAYMENT['bitcoin']['port'], settings.PAYMENT['bitcoin']['rpcuser'], settings.PAYMENT['bitcoin']['rpcpassword']) address = bitcoin_rpc.get_new_address("rokj_text")
else: cursor.execute("INSERT INTO bitcoin(key, value) VALUES (%s, %s)", (bitcoin_db_key, block, )) except Exception as e: print e return False cursor.close() return True # main program while True: last_checked_block = get_last_checked_block() try: bitcoin_client_rpc = BitcoinRPC(settings.PAYMENT['bitcoin']['host'], settings.PAYMENT['bitcoin']['port'], settings.PAYMENT['bitcoin']['rpcuser'], settings.PAYMENT['bitcoin']['rpcpassword']) transactions = bitcoin_client_rpc.list_since_block(last_checked_block) for transaction in transactions['transactions']: # POS Bills, POS Bills, POS Bills # POS Bills, POS Bills, POS Bills # POS Bills, POS Bills, POS Bills try: payment = Payment.objects.get(Q(status=WAITING) | Q(status=NOT_ENOUGH_MONEY_ARRIVED), btc_transaction_reference=transaction['address'], type="bitcoin") # transaction_reference is bitcoin reference in this case total_received_by_address = bitcoin_client_rpc.get_received_by_address(payment.btc_transaction_reference, confirmations) total_received_by_address = Decimal(total_received_by_address) # we try to get timestamp of payment transaction_datetime = None