[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [taler-merchant-frontend-examples] 01/02: python example sh
From: |
gnunet |
Subject: |
[GNUnet-SVN] [taler-merchant-frontend-examples] 01/02: python example shows order id on fulfillment page |
Date: |
Mon, 27 Mar 2017 22:47:01 +0200 |
This is an automated email from the git hooks/post-receive script.
marcello pushed a commit to branch master
in repository merchant-frontend-examples.
commit 7830e8bab3954e3aac8195854224d972a9b38f9e
Author: Marcello Stanisci <address@hidden>
AuthorDate: Mon Mar 27 22:28:11 2017 +0200
python example shows order id on fulfillment page
---
python/example/example.py | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/python/example/example.py b/python/example/example.py
index e151e42..2090e94 100644
--- a/python/example/example.py
+++ b/python/example/example.py
@@ -7,6 +7,7 @@ import os
import logging
import json
from random import randint
+from datetime import datetime
app = flask.Flask(__name__)
@@ -16,7 +17,7 @@ logger = logging.getLogger(__name__)
CURRENCY = "PUDOS"
BACKEND_URL = "http://backend.test.taler.net/"
-def make_url(page, query_params=dict()):
+def make_url(page, *query_params):
"""
Return a URL to a page in the current Flask application with the given
query parameters (sequence of key/value pairs).
@@ -48,9 +49,9 @@ def donate():
def generate_proposal():
DONATION = amount.string_to_amount("0.1:%s" % CURRENCY)
MAX_FEE = amount.string_to_amount("0.05:%s" % CURRENCY)
- ORDER_ID = str(randint(0, 999999))
+ ORDER_ID = "tutorial-%X-%s" % (randint(0, 0xFFFFFFFF),
datetime.today().strftime("%H_%M_%S"))
order = dict(
- order_id = ORDER_ID,
+ order_id=ORDER_ID,
nonce=flask.request.args.get("nonce"),
amount=DONATION,
max_fee=MAX_FEE,
@@ -62,7 +63,7 @@ def generate_proposal():
price=DONATION,
),
],
- fulfillment_url=make_url("/fulfillment",
query_params=dict(order_id=ORDER_ID)),
+ fulfillment_url=make_url("/fulfillment", ("order_id", ORDER_ID)),
pay_url=make_url("/pay"),
merchant=dict(
instance="tutorial",
@@ -79,7 +80,6 @@ def generate_proposal():
logger.error("failed to POST to '%s'", url)
return r.text, r.status_code
proposal_resp = r.json()
- flask.session["order_id"] = ORDER_ID
return flask.jsonify(**proposal_resp)
@@ -87,7 +87,7 @@ def generate_proposal():
def fulfillment():
paid = flask.session.get("paid", False)
if paid:
- return "Thank you!"
+ return "Thank you! Your order id is: <b>%s</b>." %
flask.session["order_id"]
response = flask.Response(status=402)
response.headers["X-Taler-Contract-Url"] = make_url("/generate-contract")
@@ -103,14 +103,13 @@ def pay():
if deposit_permission is None:
e = flask.jsonify(error="no json in body")
return e, 400
- if (flask.session["order_id"] != deposit_permission["order_id"]):
- e = flask.jsonify(error="Attempting to pay a product different \
- from the ordered one (%s != %s)" % (flask.session["order_id"],
deposit_permission["order_id"]))
- return e, 406
+
r = requests.post(urljoin(BACKEND_URL, 'pay'), json=deposit_permission)
if 200 != r.status_code:
return r.text, r.status_code
+ proposal_data = r.json()["proposal_data"]
flask.session["paid"] = True
+ flask.session["order_id"] = proposal_data["order_id"]
return flask.Response(status=200)
--
To stop receiving notification emails like this one, please contact
address@hidden