diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-01-22 04:04:36 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-01-22 04:04:36 +0100 |
commit | 3b31ee50a15ef9b0459771f576b781abf4605040 (patch) | |
tree | a6e5516df4fc415987b035285ee40e9ef202f990 | |
parent | fe60098c065f6386ae36edb1289f76e8150255e5 (diff) | |
download | donations-3b31ee50a15ef9b0459771f576b781abf4605040.tar.gz donations-3b31ee50a15ef9b0459771f576b781abf4605040.tar.bz2 donations-3b31ee50a15ef9b0459771f576b781abf4605040.zip |
payment logic
-rw-r--r-- | talerdonations/donations/donations.py | 21 |
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) |