diff options
Diffstat (limited to 'src/frontend_blog')
-rw-r--r-- | src/frontend_blog/essay_cc_pay.php | 2 | ||||
-rw-r--r-- | src/frontend_blog/essay_contract.php | 27 | ||||
-rw-r--r-- | src/frontend_blog/essay_fulfillment.php | 129 |
3 files changed, 136 insertions, 22 deletions
diff --git a/src/frontend_blog/essay_cc_pay.php b/src/frontend_blog/essay_cc_pay.php index 90cd080f..dd134efd 100644 --- a/src/frontend_blog/essay_cc_pay.php +++ b/src/frontend_blog/essay_cc_pay.php @@ -11,7 +11,7 @@ if (!isset($_SESSION['allowed_articles'])) $_SESSION['allowed_articles'] = array ($article => true); else $_SESSION['allowed_articles'] = array_merge($_SESSION['allowed_articles'], array ($article => true)); http_response_code (301); -$url = 'http://' . $_SERVER['HTTP_HOST'] . "/essay_fulfillment.php?article=$article"; +$url = 'http://' . $_SERVER['HTTP_HOST'] . "/essay_cc_fulfillment.php?article=$article"; header("Location: " . $url); echo $url; die(); diff --git a/src/frontend_blog/essay_contract.php b/src/frontend_blog/essay_contract.php index 265b5007..478e70fb 100644 --- a/src/frontend_blog/essay_contract.php +++ b/src/frontend_blog/essay_contract.php @@ -24,6 +24,7 @@ * */ include("../frontend_lib/merchants.php"); +include("../frontend_lib/util.php"); include("./blog_lib.php"); session_start(); if (!isset($_GET['article'])){ @@ -42,18 +43,30 @@ $teatax = array ('value' => 1, 'currency' => "KUDOS"); $now = new DateTime('now'); $teaser = get_teaser($article); -$pay_url = "essay_pay.php"; -$exec_url = "execute.php"; -$contract_json = generate_contract(1, - 0, - "KUDOS", + +$amount_value = 1; +$amount_fraction = 0; +$currency = "KUDOS"; +$transaction_id = rand(0, 1001); +// Include all information so we can +// restore the contract without storing it +$fulfillment_url = url_rel("essay_fulfillment.php") + . '?uuid=${H_contract}' + . '&article=' . urlencode($article) + . '&aval=' . urlencode($amount_value) + . '&afrac=' . urlencode($amount_fraction) + . '&acurr=' . urlencode($currency) + . '&tid=' . $transaction_id; +file_put_contents("/tmp/debg1", $fulfillment_url); +$contract_json = generate_contract($amount_value, + $amount_fraction, + $currency, $transaction_id, trim($teaser->nodeValue), $p_id, $teatax, $now, - $pay_url, - $exec_url); + $fulfillment_url); $resp = give_to_backend($_SERVER["HTTP_HOST"], "backend/contract", $contract_json); diff --git a/src/frontend_blog/essay_fulfillment.php b/src/frontend_blog/essay_fulfillment.php index 205cffec..611990b7 100644 --- a/src/frontend_blog/essay_fulfillment.php +++ b/src/frontend_blog/essay_fulfillment.php @@ -1,20 +1,121 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <title>Taler's "Demo" Shop</title> + <link rel="stylesheet" type="text/css" href="style.css"> + <script type="application/javascript" src="taler-presence.js"></script> + <script type="application/javascript"> + function executePayment(H_contract, pay_url, offering_url) { + var detail = { + H_contract: H_contract, + pay_url: pay_url, + offering_url: offering_url + }; + var eve = new CustomEvent('taler-execute-payment', {detail: detail}); + document.dispatchEvent(eve); + } + </script> +</head> +<body> + + <header> + <div id="logo"> + <svg height="100" width="100"> + <circle cx="50" cy="50" r="40" stroke="darkcyan" stroke-width="6" fill="white" /> + <text x="19" y="82" font-family="Verdana" font-size="90" fill="darkcyan">S</text> + </svg> + </div> + + <h1>Toy Store - Product Page</h1> + </header> + + <aside class="sidebar" id="left"> + </aside> + + <section id="main"> + <article> <?php +/* + This file is part of GNU TALER. + Copyright (C) 2014, 2015 GNUnet e.V. -include("./blog_lib.php"); -session_start(); -if (!isset($_GET['article'])){ + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Lesser General Public License as published by the Free Software + Foundation; either version 2.1, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License along with + TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/> + */ + +include '../frontend_lib/util.php'; + +$hc = get($_GET["uuid"]); + +if (empty($hc)) +{ http_response_code(400); - echo "No article specified"; - die(); + echo "<p>Bad request (UUID missing)</p>"; + return; +} + +session_start(); + +$payments = get($_SESSION['payments'], array()); +$my_payment = get($payments[$hc]); + +// This will keep the query parameters. +$pay_url = url_rel("essay_pay.php"); + +/* +FIXME: in the blog's case, that should be just the homepage +$offering_url = url_rel("checkout.php", true); + +if (null === $my_payment) +{ + echo "<p>you do not have the session state for this contract: " . $hc . "</p>"; + echo "<p>Asking the wallet to re-execute it ... </p>"; + echo "<script>executePayment('$hc', '$pay_url', '$offering_url');</script>"; + return; +}*/ + +if (true !== get($my_payment["is_payed"], false)) +{ + echo "<p>you have not payed for this contract: " . $hc . "</p>"; + echo "<p>Asking the wallet to re-execute it ... </p>"; + echo "<script>executePayment('$hc', '$pay_url');</script>"; + return; } -$article = $_GET['article']; -/* check if the client is allowed to get the wanted article */ -if(!isset($_SESSION['allowed_articles'][$article])){ - http_response_code(401); // unauthorized - echo "Not allowed to read this article"; - die(); + +$article = $my_payment["article"]; + +$news = false; +switch ($receiver) +{ + case "Taler": + $news = "https://taler.net/news"; + break; + case "GNUnet": + $news = "https://gnunet.org/"; + break; + case "Tor": + $news = "https://www.torproject.org/press/press.html.en"; + break; +} + +$msg = "<p>Thanks for donating to " . $receiver . ".</p>"; +if ($news) +{ + $msg .= "<p>Check our latest <a href=\"" . $news . "\">news!</a></p>"; } -// get the article -$article_doc = get_article($article); -echo $article_doc->saveHTML(); + +echo $msg; + ?> + </article> + </section> +</body> +</html> |