Skip to content

Commit f126973

Browse files
committed
Merge pull request #3374
bd70562 [Qt] add messages when handling local payment request files (Philip Kaufmann)
2 parents a7973c9 + bd70562 commit f126973

File tree

2 files changed

+37
-17
lines changed

2 files changed

+37
-17
lines changed

src/qt/paymentserver.cpp

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -382,40 +382,52 @@ void PaymentServer::handleURIOrFile(const QString& s)
382382
#else
383383
QUrlQuery uri((QUrl(s)));
384384
#endif
385-
if (uri.hasQueryItem("r"))
385+
if (uri.hasQueryItem("r")) // payment request URI
386386
{
387387
QByteArray temp;
388388
temp.append(uri.queryItemValue("r"));
389389
QString decoded = QUrl::fromPercentEncoding(temp);
390390
QUrl fetchUrl(decoded, QUrl::StrictMode);
391391

392-
qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")";
393-
394392
if (fetchUrl.isValid())
393+
{
394+
qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")";
395395
fetchRequest(fetchUrl);
396+
}
396397
else
398+
{
397399
qDebug() << "PaymentServer::handleURIOrFile : Invalid URL: " << fetchUrl;
400+
emit message(tr("URI handling"),
401+
tr("Payment request fetch URL is invalid: %1").arg(fetchUrl.toString()),
402+
CClientUIInterface::ICON_WARNING);
403+
}
398404

399405
return;
400406
}
407+
else // normal URI
408+
{
409+
SendCoinsRecipient recipient;
410+
if (GUIUtil::parseBitcoinURI(s, &recipient))
411+
emit receivedPaymentRequest(recipient);
412+
else
413+
emit message(tr("URI handling"),
414+
tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."),
415+
CClientUIInterface::ICON_WARNING);
401416

402-
SendCoinsRecipient recipient;
403-
if (GUIUtil::parseBitcoinURI(s, &recipient))
404-
emit receivedPaymentRequest(recipient);
405-
else
406-
emit message(tr("URI handling"),
407-
tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."),
408-
CClientUIInterface::ICON_WARNING);
409-
410-
return;
417+
return;
418+
}
411419
}
412420

413-
if (QFile::exists(s))
421+
if (QFile::exists(s)) // payment request file
414422
{
415423
PaymentRequestPlus request;
416424
SendCoinsRecipient recipient;
417425
if (readPaymentRequest(s, request) && processPaymentRequest(request, recipient))
418426
emit receivedPaymentRequest(recipient);
427+
else
428+
emit message(tr("Payment request file handling"),
429+
tr("Payment request file can not be read or processed! This can be caused by an invalid payment request file."),
430+
CClientUIInterface::ICON_WARNING);
419431

420432
return;
421433
}
@@ -594,7 +606,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
594606
.arg(reply->errorString());
595607

596608
qDebug() << "PaymentServer::netRequestFinished : " << msg;
597-
emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR);
609+
emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
598610
return;
599611
}
600612

@@ -606,9 +618,16 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
606618
PaymentRequestPlus request;
607619
SendCoinsRecipient recipient;
608620
if (request.parse(data) && processPaymentRequest(request, recipient))
621+
{
609622
emit receivedPaymentRequest(recipient);
623+
}
610624
else
625+
{
611626
qDebug() << "PaymentServer::netRequestFinished : Error processing payment request";
627+
emit message(tr("Payment request error"),
628+
tr("Payment request can not be parsed or processed!"),
629+
CClientUIInterface::MSG_ERROR);
630+
}
612631

613632
return;
614633
}
@@ -621,9 +640,10 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
621640
.arg(reply->request().url().toString());
622641

623642
qDebug() << "PaymentServer::netRequestFinished : " << msg;
624-
emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR);
643+
emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
625644
}
626-
else {
645+
else
646+
{
627647
emit receivedPaymentACK(GUIUtil::HtmlEscape(paymentACK.memo()));
628648
}
629649
}

src/qt/paymentserver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public slots:
102102
// Submit Payment message to a merchant, get back PaymentACK:
103103
void fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipient, QByteArray transaction);
104104

105-
// Handle an incoming URI or file
105+
// Handle an incoming URI, URI with local file scheme or file
106106
void handleURIOrFile(const QString& s);
107107

108108
private slots:

0 commit comments

Comments
 (0)