From 3b31ee50a15ef9b0459771f576b781abf4605040 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 22 Jan 2018 04:04:36 +0100 Subject: payment logic --- talerdonations/donations/donations.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'talerdonations') 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//") -def fulfillment(order_id): +@app.route("/fulfillment/") +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) -- cgit v1.2.3