diff options
author | Marcello Stanisci <marcello.stanisci@inria.fr> | 2015-07-28 17:18:25 +0200 |
---|---|---|
committer | Marcello Stanisci <marcello.stanisci@inria.fr> | 2015-07-28 17:18:25 +0200 |
commit | 9c2a5666f9f3d83aae4ed0c41b53929f64406dcc (patch) | |
tree | 5b998b3fc5d58858614b56d358c8bd8e03fc4aa1 /src | |
parent | 38050d737309cc226e2668b1dc6e4433a46d522d (diff) | |
download | merchant-9c2a5666f9f3d83aae4ed0c41b53929f64406dcc.tar.gz merchant-9c2a5666f9f3d83aae4ed0c41b53929f64406dcc.tar.bz2 merchant-9c2a5666f9f3d83aae4ed0c41b53929f64406dcc.zip |
adapting existing merchant routines to the new website
Diffstat (limited to 'src')
-rw-r--r-- | src/website/new/cert.php | 29 | ||||
-rw-r--r-- | src/website/new/checkout.php | 194 | ||||
-rw-r--r-- | src/website/new/index.html | 3 | ||||
-rw-r--r-- | src/website/new/pay.php | 47 | ||||
-rw-r--r-- | src/website/new/shopping.html | 39 |
5 files changed, 312 insertions, 0 deletions
diff --git a/src/website/new/cert.php b/src/website/new/cert.php new file mode 100644 index 00000000..b0ab445a --- /dev/null +++ b/src/website/new/cert.php @@ -0,0 +1,29 @@ +<?php + +/* + + This file is part of TALER + Copyright (C) 2014, 2015 Christian Grothoff (and other contributing authors) + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/> + +*/ + +// recover the session + session_start(); + if(!isset($_SESSION['contract'])){ + http_response_code(404); + echo "Sorry page.."; + } + else echo $_SESSION['contract']; + +?> diff --git a/src/website/new/checkout.php b/src/website/new/checkout.php new file mode 100644 index 00000000..916858a5 --- /dev/null +++ b/src/website/new/checkout.php @@ -0,0 +1,194 @@ +<html> +<head> +<title>Choose payment method</title> +</head> +<body> + +<!-- + + This file is part of TALER + Copyright (C) 2014, 2015 Christian Grothoff (and other contributing authors) + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/> + +--> + +<!-- This page has to: + + 1. make known to the customer this transaction ID + + 2. Generate the relevant certificate + + 3. (JavaScript) implement the Pay button implementing only + the Taler payment + + 4. (JavaScript) request the certificate associated with this + ID, through "GET /certal/" + + + --> + +<?php + + // ID generation + $transId = rand(1, 15); + + // embedding trans ID in a hidden input HTML tag + //echo "<input type=\"hidden\" id=\"taler-trans-id\" value=\"$transId\" />"; + + // JSON certificate generation matching the product being sold + $item = $_POST['group0']; + + $toJSON = array('vendor' => "$item provider", 'item' => $item, 'price'=> rand(5, 66) . ' €', 'payUrl' => "http://" . $_SERVER['SERVER_NAME'] . "/payler/"); + + + // save certificate (retrievable through file naming convention) to the disk + // file_put_contents(getcwd() . "/cert." . $transId, json_encode($toJSON)); + + // time-expirable (15') tracking cookie definition + // setcookie("talkie", $transId, time()+ 15*60); + + // create session + + session_start(); + $_SESSION['contract'] = json_encode($toJSON); + + + + +?> + +<form name="tform" action="" method="POST"> +<div id="opt-form" align="left"><br> +<input type="radio" name="group1" value="Lisa">Lisa<br> +<input type="radio" name="group1" value="You Card" checked>You Card<br> +<input type="radio" name="group1" value="Card Me">Card Me<br> +<input id="t-button-id" type="radio" name="group1" value="Taler" disabled="true">Taler<br> +<input type="button" onclick="pay(this.form)" value="Ok"> +</div> +</form> + +<script type="text/javascript"> + + + function pay(form){ + + for(var cnt=0; cnt < form.group1.length; cnt++){ + + var choice = form.group1[cnt]; + + if(choice.checked){ + + if(choice.value == "Taler"){ + + var cert = new XMLHttpRequest(); + + /* request certificate */ + cert.open("GET", "certal/", true); + + cert.onload = function (e) { + + if (cert.readyState == 4) { + + if (cert.status == 200){ + + /* display certificate (i.e. it sends the JSON string + to the (XUL) extension) */ + sendContract(cert.responseText); + + } + + + + else alert("Certificate ready state: " + cert.readyState + ", cert status: " + cert.status); + + } + }; + + cert.onerror = function (e){ + console.error(cert.statusText); + }; + + cert.send(null); + + } + + else alert(choice.value + ": NOT available "); + + } + } + + + }; + + + + + /* the following event gets fired whenever a customer has a taler + wallet installed in his browser. In that case, the webmaster can decide + whether or not displaying Taler as a payment option */ + + function hasWallet(aEvent){ + + var eve = new Event('taler-currency'); + document.body.dispatchEvent(eve); + + /* old way of generating events ; left here in case of portability issues*/ + + /*var tevent = document.createEvent("Events"); + tevent.initEvent("taler-currency", true, false); + document.body.dispatchEvent(tevent);*/ + + + /* embedding Taler's availability information inside the form containing + items to be paid */ + var tbutton = document.getElementById("t-button-id"); + tbutton.removeAttribute("disabled"); + }; + + + + function sendContract(jsonContract){ + + var cevent = new CustomEvent('taler-contract', { 'detail' : jsonContract }); + document.body.dispatchEvent(cevent); + + + + /* old way of generating events ; left here in case of portability issues*/ + + /*var cevent = document.createEvent("Events"); + cevent.initEvent("taler-contract", true, false); + document.body.dispatchEvent(cevent);*/ + + + + }; + + function closeEnd(aEvent){ + + var eve = new Event("taler-unload"); + document.body.dispatchEvent(eve); + + }; + + document.body.addEventListener("taler-wallet", hasWallet, false); + document.body.addEventListener("taler-shutdown", closeEnd, false); + + +</script> + + + +</body> + +</html> diff --git a/src/website/new/index.html b/src/website/new/index.html index 2c02f85b..e249635a 100644 --- a/src/website/new/index.html +++ b/src/website/new/index.html @@ -26,6 +26,9 @@ <p>The latest version of the Wallet is available at the following link: <a href="http://toy.taler.net/extension">http://toy.taler.net/extension</a> </p> + <p>In case you already have a wallet installed, and some coins in it, please + move in the <a href="shopping.html">shopping area</a> + </p> </div> </div> </div> diff --git a/src/website/new/pay.php b/src/website/new/pay.php new file mode 100644 index 00000000..7232c2d5 --- /dev/null +++ b/src/website/new/pay.php @@ -0,0 +1,47 @@ +<html> +<head> +<title>Fullfillment page</title> +</head> +<body> + + +<?php + +/* + + This file is part of TALER + Copyright (C) 2014, 2015 Christian Grothoff (and other contributing authors) + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/> + +*/ + + + /* +// recover the session + session_start(); + if(!isset($_SESSION['contract'])){ +// http_response_code(404); + echo "Sorry.."; + } + else echo "Paid"; + + session_destroy(); + + +*/ +?> + +Payment successful, thanks! + +</body> +</html> diff --git a/src/website/new/shopping.html b/src/website/new/shopping.html new file mode 100644 index 00000000..05b32062 --- /dev/null +++ b/src/website/new/shopping.html @@ -0,0 +1,39 @@ +<html> +<head> +<title>Merchant</title> +<link rel="stylesheet" type="text/css" href="style.css"> +</head> +<body> + +<!-- + + This file is part of TALER + Copyright (C) 2014, 2015 Christian Grothoff (and other contributing authors) + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/> + +--> + +<form name="tform" action="checkout.php" method="POST"> +<div id="opt-form" align="left"><br> +<input type="radio" name="group0" value="Milk"> Milk<br> +<input type="radio" name="group0" value="Butter" checked="true"> Butter<br> +<input type="radio" name="group0" value="Cheese"> Cheese<br> +<input type="submit" name="keyName" value="Checkout"> +</div> +</form> + +<!--button onclick='sendContract();'>buy</a--> + +</body> + +</html> |