summaryrefslogtreecommitdiff
path: root/contrib/request_payment.en.must
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-05-17 12:47:57 +0200
committerFlorian Dold <florian@dold.me>2021-05-17 12:47:57 +0200
commitd972af515950c2df6b677f631db674757d74684a (patch)
tree53fdc2629897edf657fe0ef7ffffaa3d9f3c25ed /contrib/request_payment.en.must
parent5104ecf39a713f318862135628e70a5fb63fecae (diff)
downloadmerchant-d972af515950c2df6b677f631db674757d74684a.tar.gz
merchant-d972af515950c2df6b677f631db674757d74684a.tar.bz2
merchant-d972af515950c2df6b677f631db674757d74684a.zip
JS: make sure we retry only once per failed attempt
Diffstat (limited to 'contrib/request_payment.en.must')
-rw-r--r--contrib/request_payment.en.must19
1 files changed, 13 insertions, 6 deletions
diff --git a/contrib/request_payment.en.must b/contrib/request_payment.en.must
index 4223a05f..b77e8fb3 100644
--- a/contrib/request_payment.en.must
+++ b/contrib/request_payment.en.must
@@ -89,10 +89,17 @@ body {
<body>
<script>
- let delayMs = 60000;
+ let longpollDelayMs = 60000;
let checkUrl = new URL("{{& order_status_url }}");
- checkUrl.searchParams.set("timeout_ms", delayMs.toString());
+ checkUrl.searchParams.set("timeout_ms", longpollDelayMs.toString());
function check() {
+ let retried = false;
+ function retryOnce() {
+ if (!retried) {
+ retried = true;
+ check();
+ }
+ }
let req = new XMLHttpRequest();
req.onreadystatechange = function () {
if (req.readyState === XMLHttpRequest.DONE) {
@@ -123,20 +130,20 @@ body {
console.error("could not parse response:", e);
}
}
- setTimeout(check, delayMs);
+ setTimeout(retryOnce, 500);
}
};
req.onerror = function () {
- setTimeout(check, 5);
+ setTimeout(retryOnce, 500);
}
req.ontimeout = function () {
- setTimeout(check, 5);
+ setTimeout(retryOnce, 500);
}
req.timeout = delayMs;
req.open("GET", checkUrl.href);
req.send();
}
- setTimeout(check, 5);
+ setTimeout(check, 500);
</script>
<section id="main" class="content">