aboutsummaryrefslogtreecommitdiff
path: root/src/frontend_lib/merchants.php
blob: 8449014e32b543c016210376f1fd7b7138e66f72 (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
/**
 * Return a contract proposition to forward to the backend
 * Note that `teatax` is an associative array representing a
 * Taler-style amount (so it has the usual <amount,fration,currency>
 * triple). Moreover, `teatax` should be a *list* of taxes
 */
function generate_contract($amount_value,
                           $amount_fraction,
			   $currency,
			   $transaction_id,
			   $desc,
			   $p_id,
			   $corr_id,
			   $taxes,
			   $now,
			   $fulfillment_url){
  include("../frontend_lib/config.php");
  file_put_contents("/tmp/ddd", $REFUND_DELTA);
  $contract = array ('amount' => array ('value' => $amount_value,
  			                       'fraction' => $amount_fraction,
                                                 'currency' => $currency),
  			    'max_fee' => array ('value' => 3,
  			                        'fraction' => 01010,
  						'currency' => $currency),
                              'transaction_id' => $transaction_id,
                              'products' => array (
  			       array ('description' => $desc,
  			              'quantity' => 1,
  			              'price' => array ('value' => $amount_value,
  			                                'fraction' => $amount_fraction,
                                                          'currency' => $currency),
  				      'product_id' => $p_id,
  				      'taxes' => $taxes,
  			              'delivery_date' => "Some Date Format",
  			              'delivery_location' => 'LNAME1')),
  			    'timestamp' => "/Date(" . $now->getTimestamp() . ")/",
  			    'expiry' => "/Date(" . $now->add(new DateInterval('P2W'))->getTimestamp() . ")/",
  			    'refund_deadline' => "/Date(" . $now->add(new DateInterval($REFUND_DELTA))->getTimestamp() . ")/",
			    'repurchase_correlation_id' => $corr_id,
			    'fulfillment_url' => $fulfillment_url,
  			    'merchant' => array ('address' => 'LNAME2',
  			                         'name' => 'test merchant',
  					         'jurisdiction' => 'LNAME3'),
  
                              'locations' => array ('LNAME1' => array ('country' => 'Test Country',
  						                     'city' => 'Test City',
  						                     'state' => 'Test State',
  							             'region' => 'Test Region',
  								     'province' => 'Test Province',
  								     'ZIP code' => 4908,
  								     'street' => 'test street',
  								     'street number' => 20),
  						  'LNAME2' => array ('country' => 'Test Country',
  						                     'city' => 'Test City',
  						                     'state' => 'Test State',
  							             'region' => 'Test Region',
  								     'province' => 'Test Province',
  								     'ZIP code' => 4908,
  								     'street' => 'test street',
  								     'street number' => 20),
  						  'LNAME3' => array ('country' => 'Test Country',
  						                     'city' => 'Test City',
  						                     'state' => 'Test State',
  							             'region' => 'Test Region',
  								     'province' => 'Test Province',
  								     'ZIP code' => 4908)));
  $json = json_encode (array ('contract' => $contract), JSON_PRETTY_PRINT);
  return $json;
}



/**
 * Feed `$json` to the backend and return the "(pecl) http response object"
 * corresponding to the `$backend_relative_url` call
 */
function give_to_backend($backend_host, $backend_relative_url, $json){
  $url = (new http\URL("http://$backend_host"))
    ->mod(array ("path" => $backend_relative_url), http\Url::JOIN_PATH);
  
  $req = new http\Client\Request("POST",
                                 $url,
                                 array ("Content-Type" => "application/json"));
  
  $req->getBody()->append($json);
  
  // Execute the HTTP request
  $client = new http\Client;
  $client->enqueue($req)->send();
  return $client->getResponse();
}
?>