fallback to BIP21 if fetching PayPro fails
This commit is contained in:
parent
291404a7fb
commit
92de23e63b
1 changed files with 26 additions and 12 deletions
|
|
@ -953,11 +953,13 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setFromPayPro = function(uri) {
|
this.setFromPayPro = function(uri, cb) {
|
||||||
|
if (!cb) cb = function() {};
|
||||||
|
|
||||||
var fc = profileService.focusedClient;
|
var fc = profileService.focusedClient;
|
||||||
if (isChromeApp) {
|
if (isChromeApp) {
|
||||||
this.error = gettext('Payment Protocol not supported on Chrome App');
|
this.error = gettext('Payment Protocol not supported on Chrome App');
|
||||||
return;
|
return cb(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
var satToUnit = 1 / this.unitToSatoshi;
|
var satToUnit = 1 / this.unitToSatoshi;
|
||||||
|
|
@ -973,23 +975,25 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
self.setOngoingProcess();
|
self.setOngoingProcess();
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
$log.warn(err);
|
$log.warn('Could not fetch payment request:', err);
|
||||||
self.resetForm();
|
self.resetForm();
|
||||||
var msg = err.toString();
|
var msg = err.toString();
|
||||||
if (msg.match('HTTP')) {
|
if (msg.match('HTTP')) {
|
||||||
msg = gettext('Could not fetch payment information');
|
msg = gettext('Could not fetch payment information');
|
||||||
}
|
}
|
||||||
self.error = msg;
|
self.error = msg;
|
||||||
} else {
|
return cb(true);
|
||||||
self._paypro = paypro;
|
|
||||||
self.setForm(paypro.toAddress, (paypro.amount * satToUnit).toFixed(self.unitDecimals),
|
|
||||||
paypro.memo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self._paypro = paypro;
|
||||||
|
self.setForm(paypro.toAddress, (paypro.amount * satToUnit).toFixed(self.unitDecimals), paypro.memo);
|
||||||
|
return cb();
|
||||||
});
|
});
|
||||||
}, 1);
|
}, 1);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setFromUri = function(uri) {
|
this.setFromUri = function(uri) {
|
||||||
|
var self = this;
|
||||||
function sanitizeUri(uri) {
|
function sanitizeUri(uri) {
|
||||||
// Fixes when a region uses comma to separate decimals
|
// Fixes when a region uses comma to separate decimals
|
||||||
var regex = /[\?\&]amount=(\d+([\,\.]\d+)?)/i;
|
var regex = /[\?\&]amount=(\d+([\,\.]\d+)?)/i;
|
||||||
|
|
@ -1010,16 +1014,26 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
|
||||||
return uri;
|
return uri;
|
||||||
}
|
}
|
||||||
var parsed = new bitcore.URI(uri);
|
var parsed = new bitcore.URI(uri);
|
||||||
var addr = parsed.address.toString();
|
|
||||||
|
var addr = parsed.address ? parsed.address.toString() : '';
|
||||||
var message = parsed.message;
|
var message = parsed.message;
|
||||||
if (parsed.r)
|
|
||||||
return this.setFromPayPro(parsed.r);
|
|
||||||
|
|
||||||
var amount = parsed.amount ?
|
var amount = parsed.amount ?
|
||||||
(parsed.amount.toFixed(0) * satToUnit).toFixed(this.unitDecimals) : 0;
|
(parsed.amount.toFixed(0) * satToUnit).toFixed(this.unitDecimals) : 0;
|
||||||
|
|
||||||
this.setForm(addr, amount, message);
|
|
||||||
return addr;
|
if (parsed.r) {
|
||||||
|
this.setFromPayPro(parsed.r, function(err) {
|
||||||
|
if (err && addr && amount) {
|
||||||
|
self.setForm(addr, amount, message);
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.setForm(addr, amount, message);
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.onAddressChange = function(value) {
|
this.onAddressChange = function(value) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue