summaryrefslogtreecommitdiff
path: root/src/frontend_blog
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend_blog')
-rw-r--r--src/frontend_blog/essay_cc_pay.php2
-rw-r--r--src/frontend_blog/essay_contract.php27
-rw-r--r--src/frontend_blog/essay_fulfillment.php129
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>