Browse Source

Merge pull request #3374

bd70562 [Qt] add messages when handling local payment request files (Philip Kaufmann)
0.10
Wladimir J. van der Laan 11 years ago
parent
commit
f126973fd0
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 36
      src/qt/paymentserver.cpp
  2. 2
      src/qt/paymentserver.h

36
src/qt/paymentserver.cpp

@ -382,23 +382,30 @@ void PaymentServer::handleURIOrFile(const QString& s)
#else #else
QUrlQuery uri((QUrl(s))); QUrlQuery uri((QUrl(s)));
#endif #endif
if (uri.hasQueryItem("r")) if (uri.hasQueryItem("r")) // payment request URI
{ {
QByteArray temp; QByteArray temp;
temp.append(uri.queryItemValue("r")); temp.append(uri.queryItemValue("r"));
QString decoded = QUrl::fromPercentEncoding(temp); QString decoded = QUrl::fromPercentEncoding(temp);
QUrl fetchUrl(decoded, QUrl::StrictMode); QUrl fetchUrl(decoded, QUrl::StrictMode);
qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")";
if (fetchUrl.isValid()) if (fetchUrl.isValid())
{
qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")";
fetchRequest(fetchUrl); fetchRequest(fetchUrl);
}
else else
{
qDebug() << "PaymentServer::handleURIOrFile : Invalid URL: " << fetchUrl; qDebug() << "PaymentServer::handleURIOrFile : Invalid URL: " << fetchUrl;
emit message(tr("URI handling"),
tr("Payment request fetch URL is invalid: %1").arg(fetchUrl.toString()),
CClientUIInterface::ICON_WARNING);
}
return; return;
} }
else // normal URI
{
SendCoinsRecipient recipient; SendCoinsRecipient recipient;
if (GUIUtil::parseBitcoinURI(s, &recipient)) if (GUIUtil::parseBitcoinURI(s, &recipient))
emit receivedPaymentRequest(recipient); emit receivedPaymentRequest(recipient);
@ -409,13 +416,18 @@ void PaymentServer::handleURIOrFile(const QString& s)
return; return;
} }
}
if (QFile::exists(s)) if (QFile::exists(s)) // payment request file
{ {
PaymentRequestPlus request; PaymentRequestPlus request;
SendCoinsRecipient recipient; SendCoinsRecipient recipient;
if (readPaymentRequest(s, request) && processPaymentRequest(request, recipient)) if (readPaymentRequest(s, request) && processPaymentRequest(request, recipient))
emit receivedPaymentRequest(recipient); emit receivedPaymentRequest(recipient);
else
emit message(tr("Payment request file handling"),
tr("Payment request file can not be read or processed! This can be caused by an invalid payment request file."),
CClientUIInterface::ICON_WARNING);
return; return;
} }
@ -594,7 +606,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
.arg(reply->errorString()); .arg(reply->errorString());
qDebug() << "PaymentServer::netRequestFinished : " << msg; qDebug() << "PaymentServer::netRequestFinished : " << msg;
emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR); emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
return; return;
} }
@ -606,9 +618,16 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
PaymentRequestPlus request; PaymentRequestPlus request;
SendCoinsRecipient recipient; SendCoinsRecipient recipient;
if (request.parse(data) && processPaymentRequest(request, recipient)) if (request.parse(data) && processPaymentRequest(request, recipient))
{
emit receivedPaymentRequest(recipient); emit receivedPaymentRequest(recipient);
}
else else
{
qDebug() << "PaymentServer::netRequestFinished : Error processing payment request"; qDebug() << "PaymentServer::netRequestFinished : Error processing payment request";
emit message(tr("Payment request error"),
tr("Payment request can not be parsed or processed!"),
CClientUIInterface::MSG_ERROR);
}
return; return;
} }
@ -621,9 +640,10 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply)
.arg(reply->request().url().toString()); .arg(reply->request().url().toString());
qDebug() << "PaymentServer::netRequestFinished : " << msg; qDebug() << "PaymentServer::netRequestFinished : " << msg;
emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR); emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR);
} }
else { else
{
emit receivedPaymentACK(GUIUtil::HtmlEscape(paymentACK.memo())); emit receivedPaymentACK(GUIUtil::HtmlEscape(paymentACK.memo()));
} }
} }

2
src/qt/paymentserver.h

@ -102,7 +102,7 @@ public slots:
// Submit Payment message to a merchant, get back PaymentACK: // Submit Payment message to a merchant, get back PaymentACK:
void fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipient, QByteArray transaction); void fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipient, QByteArray transaction);
// Handle an incoming URI or file // Handle an incoming URI, URI with local file scheme or file
void handleURIOrFile(const QString& s); void handleURIOrFile(const QString& s);
private slots: private slots:

Loading…
Cancel
Save