fix payment ack

This commit is contained in:
ThomasV 2014-05-07 18:59:51 +02:00
parent a03b85a513
commit 370bdbe855
3 changed files with 34 additions and 28 deletions

View File

@ -71,6 +71,7 @@ class ElectrumGui:
self.app = QApplication(sys.argv)
self.app.installEventFilter(self.efilter)
init_plugins(self)
self.payment_request = None
def build_tray_menu(self):

View File

@ -121,7 +121,6 @@ class ElectrumWindow(QMainWindow):
set_language(config.get('language'))
self.funds_error = False
self.payment_request = None
self.completions = QStringListModel()
self.tabs = tabs = QTabWidget(self)
@ -874,10 +873,11 @@ class ElectrumWindow(QMainWindow):
return
def broadcast_thread():
if self.payment_request:
if self.gui_object.payment_request:
print "sending ack"
refund_address = self.wallet.addresses()[0]
self.payment_request.send_ack(str(tx), refund_address)
self.payment_request = None
self.gui_object.payment_request.send_ack(str(tx), refund_address)
self.gui_object.payment_request = None
# note: BIP 70 recommends not broadcasting the tx to the network and letting the merchant do that
self.tx_broadcast_result = self.wallet.sendtx(tx)
self.emit(SIGNAL('send_tx3'))

View File

@ -184,6 +184,7 @@ class PaymentRequest:
if CA_match:
print 'Signed By Trusted CA: ', CA_OU
print "payment url", pay_det.payment_url
return True
@ -191,9 +192,10 @@ class PaymentRequest:
def send_ack(self, raw_tx, refund_addr):
pay_det = self.payment_details
if pay_det.payment_url:
paymnt = paymentrequest_pb2.Payment()
if not pay_det.payment_url:
return
paymnt = paymentrequest_pb2.Payment()
paymnt.merchant_data = pay_det.merchant_data
paymnt.transactions.append(raw_tx)
@ -216,9 +218,12 @@ class PaymentRequest:
try:
paymntack = paymentrequest_pb2.PaymentACK()
paymntack.ParseFromString(r.content)
print "PaymentACK message received: %s" % paymntack.memo
except Exception:
print "PaymentACK could not be processed. Payment was sent; please manually verify that payment was received."
return
print "PaymentACK message received: %s" % paymntack.memo
return paymntack.memo