summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/blog.py
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-07-10 12:46:17 -0300
committerSebastian <sebasjm@gmail.com>2023-07-10 12:46:17 -0300
commitc07742666ac10f972be94f3b46a5a4a609f1ba06 (patch)
tree94d30431bdcacaf0d7f3cf2a78fb2ed593256ea9 /talermerchantdemos/blog/blog.py
parent4a526409d21be191b3e4d3f0500be4ad43ea7d8c (diff)
downloadtaler-merchant-demos-c07742666ac10f972be94f3b46a5a4a609f1ba06.tar.gz
taler-merchant-demos-c07742666ac10f972be94f3b46a5a4a609f1ba06.tar.bz2
taler-merchant-demos-c07742666ac10f972be94f3b46a5a4a609f1ba06.zip
check if refunded
Diffstat (limited to 'talermerchantdemos/blog/blog.py')
-rw-r--r--talermerchantdemos/blog/blog.py37
1 files changed, 26 insertions, 11 deletions
diff --git a/talermerchantdemos/blog/blog.py b/talermerchantdemos/blog/blog.py
index 5784ab1..493ffac 100644
--- a/talermerchantdemos/blog/blog.py
+++ b/talermerchantdemos/blog/blog.py
@@ -378,6 +378,9 @@ def article(article_name, lang=None, data=None):
order_id = flask.request.cookies.get("order_id")
# Check if cookies are expected for this request.
+ new_if_refunded = request.args.get("new_if_refunded")
+
+ # Check if cookies are expected for this request.
maybe_expect_state = request.args.get("expect_state")
if maybe_expect_state == "yes":
if not order_id:
@@ -445,24 +448,36 @@ def article(article_name, lang=None, data=None):
)
order_status = pay_status.get("order_status")
- if order_status == "paid":
- refunded = pay_status["refunded"]
- if refunded:
- return flask.render_template(
- "blog-article-refunded.html.j2",
- page_title=gettext("GNU Taler Demo: Refunded"),
- article_name=article_name,
- order_id=order_id,
- )
- response = render_article(
+ if order_status == "paid" and not pay_status["refunded"]:
+ return render_article(
article_name,
lang,
data,
order_id,
refundable(pay_status)
)
- return response
+ #If the order is refunded show the status, unless the user is already aware
+ #and notified using the query parameter to create a new order
+ if pay_status["refunded"]:
+ if new_if_refunded == "yes":
+ order_resp = post_order(article_name, lang)
+ order_id = order_resp["order_id"]
+ pay_status = backend_get(
+ BACKEND_URL,
+ f"private/orders/{order_id}",
+ params=dict(session_id=session_id),
+ auth_token=APIKEY,
+ )
+ else:
+ return flask.render_template(
+ "blog-article-refunded.html.j2",
+ page_title=gettext("GNU Taler Demo: Refunded"),
+ article_name=article_name,
+ article_lang=lang,
+ order_id=order_id,
+ )
+
# Checking repurchase case. That happens when the client
# visits this page in the same session where the article
# was paid already.