Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bitgetlimited
GitHub Repository: bitgetlimited/v3-bitget-api-sdk
Path: blob/master/bitget-php-sdk-api/src/internal/BitgetApiClient.php
518 views
1
<?php
2
3
4
namespace bitget\internal;
5
6
7
use bitget\Config;
8
9
class BitgetApiClient extends Config
10
{
11
const POST = "POST";
12
const GET = "GET";
13
14
public function doGet($url, $body)
15
{
16
$url = $url . self::buildGetParams($body);
17
// print_r($url . " ======= url ======\n");
18
$requestUrl = self::restApiUrl . $url;
19
$headerArray = $this->getHead(self::GET, $url, null);
20
$ch = curl_init();
21
curl_setopt($ch, CURLOPT_URL, $requestUrl);
22
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
23
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
24
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
25
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
26
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
27
28
$output = curl_exec($ch);
29
curl_close($ch);
30
return $output;
31
}
32
33
function doPost($url, $data)
34
{
35
$data = json_encode($data);
36
$requestUrl = self::restApiUrl . $url;
37
$headerArray = $this->getHead(self::POST, $url, $data);
38
$curl = curl_init();
39
curl_setopt($curl, CURLOPT_URL, $requestUrl);
40
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
41
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
42
curl_setopt($curl, CURLOPT_POST, 1);
43
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
44
curl_setopt($curl, CURLOPT_HTTPHEADER, $headerArray);
45
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
46
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
47
$output = curl_exec($curl);
48
curl_close($curl);
49
return $output;
50
}
51
52
function getHead($method, $requestPath, $body)
53
{
54
$timestamp = Utils::getTimestamp();
55
$sign = Utils::getSign($timestamp, $method, $requestPath, $body, self::apiSecret);
56
if (self::signType == self::RSA) {
57
$sign = Utils::getSignByRSA($timestamp, $method, $requestPath, $body, self::apiSecret);
58
}
59
60
$headerArray = array();
61
$headerArray[0] = "Content-type:application/json;";
62
$headerArray[1] = "ACCESS-KEY:" . self::apiKey;
63
$headerArray[2] = "ACCESS-SIGN:" . $sign;
64
$headerArray[3] = "ACCESS-TIMESTAMP:" . (string)$timestamp;
65
$headerArray[4] = "ACCESS-PASSPHRASE:" . self::passphrase;
66
return $headerArray;
67
}
68
69
function buildGetParams($para)
70
{
71
$arg = "";
72
73
if ($para == null || $para == "") {
74
return $arg;
75
}
76
77
78
// $x = 0;
79
// foreach ($para as $key => $value) {
80
// if ($value == "" || $value == null) {
81
// continue;
82
// }
83
//
84
// $param = $key . "=" . $value;
85
// if ($x == 0) {
86
// $arg = "?" . $arg . $param;
87
// } else {
88
// $arg = $arg . "&" . $param;
89
// }
90
// $x = $x + 1;
91
// }
92
93
$arg = self::sort_data($para);
94
if ($arg == null || $arg == "") {
95
return "";
96
}
97
return "?".$arg;
98
}
99
100
function sort_data($data){
101
ksort($data);
102
$result = [];
103
foreach ($data as $key => $val) {
104
// array_push($result, $key."=".urlencode($val));
105
array_push($result, $key."=".$val);
106
}
107
return join("&", $result);
108
}
109
110
}
111