diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-01-24 19:57:09 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-01-24 19:57:09 +0100 |
commit | 5f996fedbc7542e1ba757a5a5856e43931ad7939 (patch) | |
tree | 59bb9bc99253dadee2d8778dcefeaa1a7e0f6424 /extension/content_scripts/notify.js | |
parent | 53654b3622de38c6cca5d29f9969eb9a67caf8a0 (diff) |
parse json fulfillment url from payment
Diffstat (limited to 'extension/content_scripts/notify.js')
-rw-r--r-- | extension/content_scripts/notify.js | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/extension/content_scripts/notify.js b/extension/content_scripts/notify.js index e3ed81c81..9118f499a 100644 --- a/extension/content_scripts/notify.js +++ b/extension/content_scripts/notify.js @@ -75,21 +75,29 @@ document.addEventListener('taler-execute-payment', function (e) { switch (r.status) { case 200: detail.success = true; - // Not supported by some browsers ... - detail.fulfillmentUrl = r.responseURL; - break; - case 301: - detail.success = true; - console.log("Headers:", r.getAllResponseHeaders()); - detail.fulfillmentUrl = r.getResponseHeader('Location'); + var respJson = JSON.parse(r.responseText); + console.log("respJson:", JSON.stringify(respJson)); + if (!respJson) { + console.log("Invalid JSON in response from $pay_url"); + detail.success = false; + break; + } + if (!respJson.fulfillment_url) { + console.log("Missing 'fulfillment_url' in response from $pay_url"); + detail.success = false; + break; + } + detail.fulfillmentUrl = respJson.fulfillment_url; break; default: + console.log("Unexpected status code for $pay_url:", r.status); detail.success = false; break; } detail.status = r.status; detail.responseText = r.responseText; - document.dispatchEvent(new CustomEvent("taler-payment-result", { detail: detail })); + detail.fulfillmentUrl = + document.dispatchEvent(new CustomEvent("taler-payment-result", { detail: detail })); }; }); }); |