fix coinbase payment protocol

This commit is contained in:
Gabriel Bazán 2017-02-22 12:20:55 -05:00
commit 54751bd755

View file

@ -46,6 +46,26 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
return true; return true;
} }
function setForm(addr, amount, message) {
$state.go('tabs.send', {}, {
'reload': true,
'notify': $state.current.name == 'tabs.send' ? false : true
});
// Timeout is required to enable the "Back" button
$timeout(function() {
if (amount) {
$state.transitionTo('tabs.send.confirm', {
toAmount: amount,
toAddress: addr,
description: message
});
} else {
$state.transitionTo('tabs.send.amount', {
toAddress: addr
});
}
}, 100);
}
// data extensions for Payment Protocol with non-backwards-compatible request // data extensions for Payment Protocol with non-backwards-compatible request
if ((/^bitcoin:\?r=[\w+]/).exec(data)) { if ((/^bitcoin:\?r=[\w+]/).exec(data)) {
data = decodeURIComponent(data.replace('bitcoin:?r=', '')); data = decodeURIComponent(data.replace('bitcoin:?r=', ''));
@ -73,27 +93,13 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
if (parsed.r) { if (parsed.r) {
payproService.getPayProDetails(parsed.r, function(err, details) { payproService.getPayProDetails(parsed.r, function(err, details) {
if (err && addr && amount) {
setForm(addr, amount, message);
}
handlePayPro(details); handlePayPro(details);
}); });
} else { } else {
$state.go('tabs.send', {}, { setForm(addr, amount, message);
'reload': true,
'notify': $state.current.name == 'tabs.send' ? false : true
});
// Timeout is required to enable the "Back" button
$timeout(function() {
if (amount) {
$state.transitionTo('tabs.send.confirm', {
toAmount: amount,
toAddress: addr,
description: message
});
} else {
$state.transitionTo('tabs.send.amount', {
toAddress: addr
});
}
}, 100);
} }
return true; return true;
@ -140,7 +146,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
return true; return true;
} else if (data && data.indexOf(appConfigService.name + '://coinbase') === 0) { } else if (data && data.indexOf(appConfigService.name + '://coinbase') === 0) {
var code = getParameterByName('code', data); var code = getParameterByName('code', data);
$ionicHistory.nextViewOptions({ $ionicHistory.nextViewOptions({
disableAnimate: true disableAnimate: true
}); });
@ -170,13 +176,14 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
}).then(function() { }).then(function() {
switch (reason) { switch (reason) {
default: default:
case '0': /* For BitPay card binding */ case '0':
/* For BitPay card binding */
$state.transitionTo('tabs.bitpayCardIntro', { $state.transitionTo('tabs.bitpayCardIntro', {
secret: secret, secret: secret,
email: email, email: email,
otp: otp otp: otp
}); });
break; break;
} }
}); });
return true; return true;