summaryrefslogtreecommitdiff
path: root/talerdonations/donations
diff options
context:
space:
mode:
Diffstat (limited to 'talerdonations/donations')
-rw-r--r--talerdonations/donations/donations.py21
1 files changed, 11 insertions, 10 deletions
diff --git a/talerdonations/donations/donations.py b/talerdonations/donations/donations.py
index 99c5589..d5c8c3e 100644
--- a/talerdonations/donations/donations.py
+++ b/talerdonations/donations/donations.py
@@ -18,6 +18,7 @@
from urllib.parse import urljoin, parse_qsl
import logging
import os
+import uuid
import base64
import random
import requests
@@ -131,27 +132,25 @@ def donate():
payment_system = expect_parameter("payment_system")
if payment_system != "taler":
return flask.redirect(flask.url_for("provider_not_supported"))
- fulfillment_url = flask.url_for("fulfillment", order_id=order_id, receiver=donation_receiver, _external=True)
+ fulfillment_url = flask.url_for("fulfillment", receiver=donation_receiver, _external=True)
order = dict(
amount=donation_amount,
- extra=dict(donor=donation_donor, receiver=donation_receiver),
+ extra=dict(donor=donation_donor, receiver=donation_receiver, amount=donation_amount),
fulfillment_url=fulfillment_url,
instance=donation_receiver,
summary="Donation to {}".format(donation_receiver),
)
proposal_resp = backend_post("proposal", dict(order=order))
order_id = proposal_resp["order_id"]
- return flask.redirect(flask.url_for("fulfillment", order_id=order_id))
+ return flask.redirect(flask.url_for("fulfillment", receiver=donation_receiver, order_id=order_id))
-@app.route("/fulfillment/<receiver>/<int:order_id>")
-def fulfillment(order_id):
+@app.route("/fulfillment/<receiver>")
+def fulfillment(receiver, order_id):
+ order_id = expect_parameter("order_id")
pay_params = dict(
instance=INSTANCE,
order_id=order_id,
- resource_url=flask.request.base_url,
- session_id=session_id,
- session_sig=session_sig,
)
pay_status = backend_get("check-payment", pay_params)
@@ -160,10 +159,12 @@ def fulfillment(order_id):
return flask.redirect(pay_status["payment_redirect_url"])
if pay_status.get("paid"):
+ extra = pay_status["contract_terms"]["extra"]
return flask.render_template(
"templates/fulfillment.html",
- donation_receiver=data["donation_receiver"],
- donation_amount=data["donation_amount"],
+ donation_receiver=extra["receiver"],
+ donation_amount=extra["amount"],
+ donation_donor=extra["donor"],
order_id=order_id,
currency=CURRENCY)