mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-31 17:31:36 +00:00
fix payment ack
This commit is contained in:
parent
a03b85a513
commit
370bdbe855
3 changed files with 34 additions and 28 deletions
|
@ -71,6 +71,7 @@ class ElectrumGui:
|
||||||
self.app = QApplication(sys.argv)
|
self.app = QApplication(sys.argv)
|
||||||
self.app.installEventFilter(self.efilter)
|
self.app.installEventFilter(self.efilter)
|
||||||
init_plugins(self)
|
init_plugins(self)
|
||||||
|
self.payment_request = None
|
||||||
|
|
||||||
|
|
||||||
def build_tray_menu(self):
|
def build_tray_menu(self):
|
||||||
|
|
|
@ -121,7 +121,6 @@ class ElectrumWindow(QMainWindow):
|
||||||
set_language(config.get('language'))
|
set_language(config.get('language'))
|
||||||
|
|
||||||
self.funds_error = False
|
self.funds_error = False
|
||||||
self.payment_request = None
|
|
||||||
self.completions = QStringListModel()
|
self.completions = QStringListModel()
|
||||||
|
|
||||||
self.tabs = tabs = QTabWidget(self)
|
self.tabs = tabs = QTabWidget(self)
|
||||||
|
@ -874,10 +873,11 @@ class ElectrumWindow(QMainWindow):
|
||||||
return
|
return
|
||||||
|
|
||||||
def broadcast_thread():
|
def broadcast_thread():
|
||||||
if self.payment_request:
|
if self.gui_object.payment_request:
|
||||||
|
print "sending ack"
|
||||||
refund_address = self.wallet.addresses()[0]
|
refund_address = self.wallet.addresses()[0]
|
||||||
self.payment_request.send_ack(str(tx), refund_address)
|
self.gui_object.payment_request.send_ack(str(tx), refund_address)
|
||||||
self.payment_request = None
|
self.gui_object.payment_request = None
|
||||||
# note: BIP 70 recommends not broadcasting the tx to the network and letting the merchant do that
|
# 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.tx_broadcast_result = self.wallet.sendtx(tx)
|
||||||
self.emit(SIGNAL('send_tx3'))
|
self.emit(SIGNAL('send_tx3'))
|
||||||
|
|
|
@ -184,6 +184,7 @@ class PaymentRequest:
|
||||||
if CA_match:
|
if CA_match:
|
||||||
print 'Signed By Trusted CA: ', CA_OU
|
print 'Signed By Trusted CA: ', CA_OU
|
||||||
|
|
||||||
|
print "payment url", pay_det.payment_url
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
@ -191,34 +192,38 @@ class PaymentRequest:
|
||||||
def send_ack(self, raw_tx, refund_addr):
|
def send_ack(self, raw_tx, refund_addr):
|
||||||
|
|
||||||
pay_det = self.payment_details
|
pay_det = self.payment_details
|
||||||
if pay_det.payment_url:
|
if not pay_det.payment_url:
|
||||||
paymnt = paymentrequest_pb2.Payment()
|
return
|
||||||
|
|
||||||
paymnt.merchant_data = pay_det.merchant_data
|
paymnt = paymentrequest_pb2.Payment()
|
||||||
paymnt.transactions.append(raw_tx)
|
paymnt.merchant_data = pay_det.merchant_data
|
||||||
|
paymnt.transactions.append(raw_tx)
|
||||||
|
|
||||||
ref_out = paymnt.refund_to.add()
|
ref_out = paymnt.refund_to.add()
|
||||||
ref_out.script = transaction.Transaction.pay_script(refund_addr)
|
ref_out.script = transaction.Transaction.pay_script(refund_addr)
|
||||||
paymnt.memo = "Paid using Electrum"
|
paymnt.memo = "Paid using Electrum"
|
||||||
pm = paymnt.SerializeToString()
|
pm = paymnt.SerializeToString()
|
||||||
|
|
||||||
payurl = urlparse.urlparse(pay_det.payment_url)
|
payurl = urlparse.urlparse(pay_det.payment_url)
|
||||||
|
try:
|
||||||
|
r = requests.post(payurl.geturl(), data=pm, headers=ACK_HEADERS, verify=ca_path)
|
||||||
|
except requests.exceptions.SSLError:
|
||||||
|
print "Payment Message/PaymentACK verify Failed"
|
||||||
try:
|
try:
|
||||||
r = requests.post(payurl.geturl(), data=pm, headers=ACK_HEADERS, verify=ca_path)
|
r = requests.post(payurl.geturl(), data=pm, headers=ACK_HEADERS, verify=False)
|
||||||
except requests.exceptions.SSLError:
|
except Exception as e:
|
||||||
print "Payment Message/PaymentACK verify Failed"
|
print "Payment Message/PaymentACK Failed"
|
||||||
try:
|
print e
|
||||||
r = requests.post(payurl.geturl(), data=pm, headers=ACK_HEADERS, verify=False)
|
return
|
||||||
except Exception as e:
|
try:
|
||||||
print "Payment Message/PaymentACK Failed"
|
paymntack = paymentrequest_pb2.PaymentACK()
|
||||||
print e
|
paymntack.ParseFromString(r.content)
|
||||||
return
|
except Exception:
|
||||||
try:
|
print "PaymentACK could not be processed. Payment was sent; please manually verify that payment was received."
|
||||||
paymntack = paymentrequest_pb2.PaymentACK()
|
return
|
||||||
paymntack.ParseFromString(r.content)
|
|
||||||
print "PaymentACK message received: %s" % paymntack.memo
|
print "PaymentACK message received: %s" % paymntack.memo
|
||||||
except Exception:
|
return paymntack.memo
|
||||||
print "PaymentACK could not be processed. Payment was sent; please manually verify that payment was received."
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue