pointofsale: generated bitcoin url might contain invalid characters

The bitcoin invoice url generated for the QR code might contain illegal
characters because the labels can have any text. In default it already
contains spaces (ie. the naming convention "Invoice - 0001").

The invalid URL did confuse e.g. the Bitcoin Wallet Android app, that
couldn't read bitcoin addresses from the generated QR code.

This is fixed by escaping the label text before displaying it as a
QR code.
This commit is contained in:
Gergely Imreh 2013-11-26 12:31:50 +08:00
parent 5b3603f3e4
commit cbfa921276
1 changed files with 5 additions and 2 deletions

View File

@ -1,6 +1,7 @@
import re
import platform
from decimal import Decimal
from urllib import quote
from PyQt4.QtGui import *
from PyQt4.QtCore import *
@ -89,9 +90,11 @@ class QR_Window(QWidget):
if self.amount is not None:
msg += '?amount=%s'%(str( self.amount))
if self.label is not None:
msg += '&label=%s'%(self.label)
encoded_label = quote(self.label)
msg += '&label=%s'%(encoded_label)
elif self.label is not None:
msg += '?label=%s'%(self.label)
encoded_label = quote(self.label)
msg += '?label=%s'%(encoded_label)
self.qrw.set_addr( msg )