forked from payeer/trade-api-prototype
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclass.php
124 lines (90 loc) · 2.55 KB
/
class.php
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
class Api_Trade_Payeer
{
private $arParams = array();
private $arError = array();
public function __construct($params = array())
{
$this->arParams = $params;
}
private function Request($req = array())
{
$msec = round(microtime(true) * 1000);
$req['post']['ts'] = $msec;
$post = json_encode($req['post']);
$sign = hash_hmac('sha256', $req['method'].$post, $this->arParams['key']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://payeer.com/api/trade/".$req['method']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"API-ID: ".$this->arParams['id'],
"API-SIGN: ".$sign
));
$response = curl_exec($ch);
curl_close($ch);
$arResponse = json_decode($response, true);
if ($arResponse['success'] !== true)
{
$this->arError = $arResponse['error'];
throw new Exception($arResponse['error']['code']);
}
return $arResponse;
}
public function GetError()
{
return $this->arError;
}
public function Info()
{
$res = $this->Request(array(
'method' => 'info',
));
return $res;
}
public function Orders($pair = 'BTC_USDT')
{
$res = $this->Request(array(
'method' => 'orders',
'post' => array(
'pair' => $pair,
),
));
return $res['pairs'];
}
public function Account()
{
$res = $this->Request(array(
'method' => 'account',
));
return $res['balances'];
}
public function OrderCreate($req = array())
{
$res = $this->Request(array(
'method' => 'order_create',
'post' => $req,
));
return $res;
}
public function OrderStatus($req = array())
{
$res = $this->Request(array(
'method' => 'order_status',
'post' => $req,
));
return $res['order'];
}
public function MyOrders($req = array())
{
$res = $this->Request(array(
'method' => 'my_orders',
'post' => $req,
));
return $res['items'];
}
}