aboutsummaryrefslogtreecommitdiff
path: root/extension/content_scripts/notify.ts
diff options
context:
space:
mode:
Diffstat (limited to 'extension/content_scripts/notify.ts')
-rw-r--r--extension/content_scripts/notify.ts26
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