diff options
Diffstat (limited to 'examples/frontend_blog/essay_pay.php')
-rw-r--r-- | examples/frontend_blog/essay_pay.php | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/examples/frontend_blog/essay_pay.php b/examples/frontend_blog/essay_pay.php new file mode 100644 index 00000000..502be9c6 --- /dev/null +++ b/examples/frontend_blog/essay_pay.php @@ -0,0 +1,65 @@ +<?php +/* + This file is part of GNU TALER. + Copyright (C) 2014, 2015 GNUnet e.V. + + 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("../../copylib/merchants.php"); + include("../../copylib/util.php"); + include("./blog_lib.php"); + $article = get($_GET["article"]); + if (empty($article)){ + http_response_code(400); + echo json_encode(array( + "error" => "missing parameter", + "parameter" => "article" + )); + return; + } + $deposit_permission = file_get_contents('php://input'); + // FIXME check here if the deposit permission is associated + session_start(); + $payments = &pull($_SESSION, "payments", array()); + $dec_dep_perm = json_decode($deposit_permission, true); + if ($dec_dep_perm['H_contract'] != $payments[$article]['hc']){ + $json = json_encode( + array( + "error" => "ill behaved wallet", + "status" => 400, + "detail" => "article payed differs from article to be shown" + ) + ); + echo $json; + die(); + } + // FIXME put some control below + + // with the article that's going to be payed + $resp = give_to_backend($_SERVER['HTTP_HOST'], + "backend/pay", + $deposit_permission); + $status_code = $resp->getResponseCode(); + http_response_code ($status_code); + if ($status_code != 200) + { + $json = json_encode( + array( + "error" => "backend error", + "status" => $status_code, + "detail" => $resp->body->toString())); + echo $json; + die(); + } + $payments[$article]['ispayed'] = true; +?> |