diff options
Diffstat (limited to 'extension/content_scripts/notify.ts')
-rw-r--r-- | extension/content_scripts/notify.ts | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/extension/content_scripts/notify.ts b/extension/content_scripts/notify.ts index c45797db3..45e9145fb 100644 --- a/extension/content_scripts/notify.ts +++ b/extension/content_scripts/notify.ts @@ -63,24 +63,32 @@ document.addEventListener('taler-execute-payment', function(e: CustomEvent) { }, }; chrome.runtime.sendMessage(msg, (resp) => { - console.log("got backend response to execute-payment:", JSON.stringify(resp)); if (!resp.success) { console.log("failure!"); return; } + console.log("Making request to ", resp.payUrl); let r = new XMLHttpRequest(); r.open('post', resp.payUrl); r.send(JSON.stringify(resp.payReq)); - let evt; + let detail: any = {}; r.onload = (e) => { - if (r.status != 200) { - console.log("non-200 error"); - console.log(r.responseText); - alert("merchant returned HTTP status " + r.status); - } else { - evt = new CustomEvent("taler-payment-result", {detail: resp}); + switch (r.status) { + case 200: + detail.success = true; + break; + case 301: + detail.success = true; + console.log("Headers:", r.getAllResponseHeaders()); + detail.fulfillmentUrl = r.getResponseHeader('Location'); + break; + default: + detail.success = false; + break; } - document.dispatchEvent(evt); + console.log("status was:", r.status); + console.log("detail:", JSON.stringify(detail)); + document.dispatchEvent(new CustomEvent("taler-payment-result", {detail: detail})); }; }); });
\ No newline at end of file |