Merge pull request #3374
bd70562
[Qt] add messages when handling local payment request files (Philip Kaufmann)
This commit is contained in:
commit
f126973fd0
@ -382,40 +382,52 @@ 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;
|
||||||
|
if (GUIUtil::parseBitcoinURI(s, &recipient))
|
||||||
|
emit receivedPaymentRequest(recipient);
|
||||||
|
else
|
||||||
|
emit message(tr("URI handling"),
|
||||||
|
tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."),
|
||||||
|
CClientUIInterface::ICON_WARNING);
|
||||||
|
|
||||||
SendCoinsRecipient recipient;
|
return;
|
||||||
if (GUIUtil::parseBitcoinURI(s, &recipient))
|
}
|
||||||
emit receivedPaymentRequest(recipient);
|
|
||||||
else
|
|
||||||
emit message(tr("URI handling"),
|
|
||||||
tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."),
|
|
||||||
CClientUIInterface::ICON_WARNING);
|
|
||||||
|
|
||||||
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()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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…
Reference in New Issue
Block a user