@cdek-it/widget 3.8.2 → 3.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -3
- package/dist/cdek-widget.es.js +82 -42
- package/dist/cdek-widget.umd.js +1 -1
- package/dist/service.php +31 -6
- package/package.json +20 -1
package/dist/service.php
CHANGED
|
@@ -71,11 +71,12 @@ class service
|
|
|
71
71
|
|
|
72
72
|
private function getAuthToken()
|
|
73
73
|
{
|
|
74
|
-
$
|
|
74
|
+
$token = $this->httpRequest('oauth/token', array(
|
|
75
75
|
'grant_type' => 'client_credentials',
|
|
76
76
|
'client_id' => $this->login,
|
|
77
77
|
'client_secret' => $this->secret,
|
|
78
|
-
), true)
|
|
78
|
+
), true);
|
|
79
|
+
$result = json_decode($token['result'], true);
|
|
79
80
|
if (!isset($result['access_token'])) {
|
|
80
81
|
throw new RuntimeException('Server not authorized to CDEK API');
|
|
81
82
|
}
|
|
@@ -114,22 +115,46 @@ class service
|
|
|
114
115
|
CURLOPT_USERAGENT => 'widget/2.0',
|
|
115
116
|
CURLOPT_HTTPHEADER => $headers,
|
|
116
117
|
CURLOPT_RETURNTRANSFER => true,
|
|
118
|
+
CURLOPT_HEADER => true,
|
|
117
119
|
));
|
|
118
120
|
|
|
119
|
-
$
|
|
120
|
-
|
|
121
|
+
$response = curl_exec($ch);
|
|
122
|
+
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
|
123
|
+
$headers = substr($response, 0, $headerSize);
|
|
124
|
+
$result = substr($response, $headerSize);
|
|
125
|
+
$addedHeaders = $this->getHeaderValue($headers);
|
|
121
126
|
if ($result === false) {
|
|
122
127
|
throw new RuntimeException(curl_error($ch), curl_errno($ch));
|
|
123
128
|
}
|
|
124
129
|
|
|
125
|
-
return $result;
|
|
130
|
+
return array('result' => $result, 'addedHeaders' => $addedHeaders);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
private function getHeaderValue($headers)
|
|
134
|
+
{
|
|
135
|
+
$headerLines = explode("\r\n", $headers);
|
|
136
|
+
$addedHeaders = [];
|
|
137
|
+
foreach ($headerLines as $line) {
|
|
138
|
+
if (!empty($line)) {
|
|
139
|
+
$parts = explode(': ', $line, 2);
|
|
140
|
+
$key = $parts[0];
|
|
141
|
+
$value = isset($parts[1]) ? $parts[1] : '';
|
|
142
|
+
$addedHeaders[$key] = $value;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return $addedHeaders;
|
|
126
146
|
}
|
|
127
147
|
|
|
128
148
|
private function sendResponse($data)
|
|
129
149
|
{
|
|
130
150
|
$this->http_response_code(200);
|
|
131
151
|
header('Content-Type: application/json');
|
|
132
|
-
|
|
152
|
+
if (!empty($data['addedHeaders'])) {
|
|
153
|
+
foreach ($data['addedHeaders'] as $headerName => $headerValue) {
|
|
154
|
+
header($headerName.': '.$headerValue);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
echo $data['result'];
|
|
133
158
|
exit();
|
|
134
159
|
}
|
|
135
160
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdek-it/widget",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -14,6 +14,25 @@
|
|
|
14
14
|
"require": "./dist/cdek-widget.umd.js"
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/cdek-it/widget.git"
|
|
20
|
+
},
|
|
21
|
+
"homepage": "https://widget.cdek.ru",
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/cdek-it/widget/issues",
|
|
24
|
+
"email": "integrator@cdek.ru"
|
|
25
|
+
},
|
|
26
|
+
"author": {
|
|
27
|
+
"email": "a.viarvelskii@cdek.ru",
|
|
28
|
+
"name": "Alex V"
|
|
29
|
+
},
|
|
30
|
+
"contributors": [
|
|
31
|
+
{
|
|
32
|
+
"email": "i.klementev@cdek.ru",
|
|
33
|
+
"name": "Ilya Klementev"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
17
36
|
"publishConfig": {
|
|
18
37
|
"access": "public"
|
|
19
38
|
},
|