diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-08-27 01:13:44 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-08-27 01:13:44 +0200 |
commit | 381f245b7b8beb82a0c6d83412c4103c2f6e56e6 (patch) | |
tree | 50d2e76be161888d3118e84ab08ae7995efd692a | |
parent | ea51f6caf7f025d70423341a9b73901ac9b134bc (diff) | |
download | blog-381f245b7b8beb82a0c6d83412c4103c2f6e56e6.tar.gz blog-381f245b7b8beb82a0c6d83412c4103c2f6e56e6.tar.bz2 blog-381f245b7b8beb82a0c6d83412c4103c2f6e56e6.zip |
check response instead of request for status; parse JSON robustly
-rw-r--r-- | talerblog/blog/blog.py | 2 | ||||
-rw-r--r-- | talerblog/blog/templates/request_payment.html | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/talerblog/blog/blog.py b/talerblog/blog/blog.py index d652808..ba10453 100644 --- a/talerblog/blog/blog.py +++ b/talerblog/blog/blog.py @@ -243,7 +243,7 @@ def check_status(order_id, session_id): order_id=order_id, session_id=session_id) pay_status = backend_get("check-payment", pay_params) - return flask.jsonify(paid=pay_params["paid"]) + return flask.jsonify(paid=pay_status["paid"]) ## # Trigger a article purchase. The logic follows the main steps: diff --git a/talerblog/blog/templates/request_payment.html b/talerblog/blog/templates/request_payment.html index 6c14456..f138877 100644 --- a/talerblog/blog/templates/request_payment.html +++ b/talerblog/blog/templates/request_payment.html @@ -17,9 +17,13 @@ req.onreadystatechange = function () { if (req.readyState === XMLHttpRequest.DONE && req.status === 200) { if (req.status === 200) { - let resp = JSON.parse(req.responseText); - if (resp.paid) { - document.location.reload(true); + try { + let resp = JSON.parse(req.responseText); + if (resp.paid) { + document.location.reload(true); + } + } catch (e) { + console.error("could not parse response:", e); } } setTimeout(check, delayMs); |