diff options
author | Sebastian <sebasjm@gmail.com> | 2023-07-10 12:46:17 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-07-10 12:46:17 -0300 |
commit | c07742666ac10f972be94f3b46a5a4a609f1ba06 (patch) | |
tree | 94d30431bdcacaf0d7f3cf2a78fb2ed593256ea9 /talermerchantdemos/blog/blog.py | |
parent | 4a526409d21be191b3e4d3f0500be4ad43ea7d8c (diff) | |
download | taler-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.py | 37 |
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. |