summaryrefslogtreecommitdiff
path: root/talerblog/blog/blog.py
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-01-18 01:46:38 +0100
committerFlorian Dold <florian.dold@gmail.com>2018-01-18 01:46:38 +0100
commitb65bffe7c211ea3a615d9b9745acbe5566302309 (patch)
tree7f91a276a91707baf426db9ffd5a3ac708d8dfa7 /talerblog/blog/blog.py
parentbc47af73508845d57c4e8e9c9be0d2e69ca0fc90 (diff)
downloadblog-b65bffe7c211ea3a615d9b9745acbe5566302309.tar.gz
blog-b65bffe7c211ea3a615d9b9745acbe5566302309.tar.bz2
blog-b65bffe7c211ea3a615d9b9745acbe5566302309.zip
use cached order_id
Diffstat (limited to 'talerblog/blog/blog.py')
-rw-r--r--talerblog/blog/blog.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/talerblog/blog/blog.py b/talerblog/blog/blog.py
index b575b9c..893c9fc 100644
--- a/talerblog/blog/blog.py
+++ b/talerblog/blog/blog.py
@@ -132,7 +132,7 @@ def refund(order_id):
flask.abort(500)
-def render_article(article_name, data):
+def render_article(article_name, data, order_id):
article_info = ARTICLES.get(article_name)
if article_info is None:
flask.abort(500)
@@ -140,8 +140,7 @@ def render_article(article_name, data):
if data in article_info.extra_files:
return flask.send_file(get_image_file(data))
return "permission denied", 403
- # needed for refunds
- order_id = flask.request.args.get("order_id")
+ # the order_id is needed for refunds
return flask.render_template("templates/article_frame.html",
article_file=get_article_file(article_info),
article_name=article_name,
@@ -168,8 +167,9 @@ def article(article_name, data=None):
if not session_id:
session_id = flask.session["uid"] = str(uuid.uuid4())
- if paid_articles_cache.get(session_id + "-" + article_name):
- return render_article(article_name, data)
+ cached_order_id = paid_articles_cache.get(session_id + "-" + article_name)
+ if cached_order_id:
+ return render_article(article_name, data, cached_order_id)
if order_id and not session_sig:
# If there was an order_id but no session_sig, either the user played
@@ -187,7 +187,6 @@ def article(article_name, data=None):
proposal_resp = backend_post("proposal", dict(order=order))
order_id = proposal_resp["order_id"]
-
pay_params = dict(
instance=INSTANCE,
order_id=order_id,
@@ -206,8 +205,8 @@ def article(article_name, data=None):
article_name=article_name)
if pay_status.get("paid"):
- paid_articles_cache.set(session_id + "-" + article_name, True)
- return render_article(article_name, data)
+ paid_articles_cache.set(session_id + "-" + article_name, order_id)
+ return render_article(article_name, data, order_id)
# no pay_redirect but article not paid, this should never happen!
flask.abort(500)