summaryrefslogtreecommitdiff
path: root/src/frontend_blog/essay_pay.php
blob: c8ad849725ae8403d52063e872fa68159973dbc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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("../frontend_lib/merchants.php");
  include("../frontend_lib/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;
?>