1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
yandex.php
См. документацию.
1<?php
2
4
6{
7
8 public function __construct()
9 {
10 }
11
12 public static function checkUser($token, $login, &$error)
13 {
14 $result = self::query('https://pddimp.yandex.ru/check_user.xml', array(
15 'token' => $token,
16 'login' => $login
17 ));
18
19 if ($resultNode = $result->selectNodes('/page/result'))
20 return $resultNode->textContent();
21
22 self::setError($result, $error);
23 return false;
24 }
25
26 public static function registerUserToken($token, $login, $password, &$error)
27 {
28 $result = self::query('https://pddimp.yandex.ru/reg_user_token.xml', array(
29 'token' => $token,
30 'u_login' => $login,
31 'u_password' => $password
32 ));
33
34 if ($okNode = $result->selectNodes('/page/ok'))
35 return $okNode->getAttribute('uid');
36
37 self::setError($result, $error);
38 return false;
39 }
40
41 public static function userOAuthToken($token, $domain, $login, &$error)
42 {
43 $result = self::query('https://pddimp.yandex.ru/api/user_oauth_token.xml', array(
44 'token' => $token,
45 'domain' => $domain,
46 'login' => $login
47 ));
48
49 if ($oauthTokenNode = $result->selectNodes('/action/domains/domain/email/oauth-token'))
50 return $oauthTokenNode->textContent();
51
52 self::setError2($result, $error);
53 return false;
54 }
55
56 public static function passport($country, $oauthToken, $errorUrl)
57 {
58 switch ($country)
59 {
60 case 'ru':
61 case 'ua':
62 $passportZone = 'ru'; break;
63 case 'en':
64 case 'de':
65 $passportZone = 'com'; break;
66 default:
67 $passportZone = 'com';
68 }
69
70 return sprintf(
71 'https://passport.yandex.%s/passport?mode=oauth&type=trusted-pdd-partner&error_retpath=%s&access_token=%s',
72 $passportZone, urlencode($errorUrl), urlencode($oauthToken)
73 );
74 }
75
76 public static function deleteUser($token, $login, &$error)
77 {
78 $result = self::query('https://pddimp.yandex.ru/delete_user.xml', array(
79 'token' => $token,
80 'login' => $login
81 ));
82
83 if ($okNode = $result->selectNodes('/page/ok'))
84 return true;
85
86 self::setError($result, $error);
87 return false;
88 }
89
90 public static function getMailInfo($token, $login, &$error)
91 {
92 $result = self::query('https://pddimp.yandex.ru/get_mail_info.xml', array(
93 'token' => $token,
94 'login' => $login
95 ));
96
97 if ($okNode = $result->selectNodes('/page/ok'))
98 return $okNode->getAttribute('new_messages');
99
100 self::setError($result, $error);
101 return false;
102 }
103
104 // post
105 public static function getUserInfo($token, $login, &$error)
106 {
107 $result = self::query('https://pddimp.yandex.ru/get_user_info.xml', array(
108 'token' => $token,
109 'login' => $login
110 ));
111
112 if ($userNode = $result->selectNodes('/page/domain/user'))
113 {
114 $userInfo = array();
115 foreach ($userNode->children() as $userFieldNode)
116 $userInfo[$userFieldNode->name()] = $userFieldNode->textContent();
117 return $userInfo;
118 }
119
120 self::setError($result, $error);
121 return false;
122 }
123
124 public static function editUser($token, $login, $data, &$error)
125 {
127 'token' => $token,
128 'login' => $login
129 );
130
131 foreach ($data as $key => $value)
132 {
133 switch ($key)
134 {
135 case 'password':
136 case 'hintq':
137 case 'hinta':
138 $postData[$key] = (string) $value;
139 break;
140 case 'domain':
141 $postData['domain_name'] = (string) $value;
142 break;
143 case 'first_name':
144 $postData['iname'] = (string) $value;
145 break;
146 case 'last_name':
147 $postData['fname'] = (string) $value;
148 break;
149 case 'gender':
150 $postData['sex'] = (string) $value;
151 break;
152 }
153 }
154
155 $result = self::query('https://pddimp.yandex.ru/edit_user.xml', $postData);
156
157 if ($okNode = $result->selectNodes('/page/ok'))
158 return $okNode->getAttribute('uid');
159
160 self::setError($result, $error);
161 return false;
162 }
163
164 public static function getDomainUsers($token, $per_page = 30, $page = 0, &$error)
165 {
166 $result = self::query('https://pddimp.yandex.ru/get_domain_users.xml', array(
167 'token' => $token,
168 'on_page' => $per_page,
169 'page' => $page
170 ));
171
172 if ($domainNode = $result->selectNodes('/page/domains/domain'))
173 {
174 $domainInfo = array();
175 foreach ($domainNode->children() as $domainFieldNode)
176 {
177 if (in_array($domainFieldNode->name(), array('name', 'status')))
178 $domainInfo[$domainFieldNode->name()] = $domainFieldNode->textContent();
179 if (in_array($domainFieldNode->name(), array('emails-max-count')))
180 $domainInfo[$domainFieldNode->name()] = intval($domainFieldNode->textContent());
181 if ($domainFieldNode->name() == 'emails')
182 {
183 $domainInfo['emails'] = array();
184 foreach ($domainFieldNode->children() as $domainEmailsNode)
185 {
186 if (in_array($domainEmailsNode->name(), array('found', 'total')))
187 $domainInfo['emails_'.$domainEmailsNode->name()] = $domainEmailsNode->textContent();
188 if ($domainEmailsNode->name() == 'email')
189 {
190 $key = count($domainInfo['emails']);
191 foreach ($domainEmailsNode->children() as $emailNode)
192 $domainInfo['emails'][$key][$emailNode->name()] = $emailNode->textContent();
193 }
194 }
195 }
196 }
197
198 return $domainInfo;
199 }
200
201 self::setError($result, $error);
202 return false;
203 }
204
205 public static function addLogo($token, $domain, $file, &$error)
206 {
207 $http = new \Bitrix\Main\Web\HttpClient();
208
209 $boundary = 'CMY' . md5(rand().time());
210
211 $data = '';
212
213 $data .= '--' . $boundary . "\r\n";
214 $data .= 'Content-Disposition: form-data; name="token"' . "\r\n\r\n";
215 $data .= $token . "\r\n";
216
217 $data .= '--' . $boundary . "\r\n";
218 $data .= 'Content-Disposition: form-data; name="domain"' . "\r\n\r\n";
219 $data .= $domain . "\r\n";
220
221 $data .= '--' . $boundary . "\r\n";
222 $data .= 'Content-Disposition: form-data; name="file"; filename="file"' . "\r\n";
223 $data .= 'Content-Type: application/octet-stream' . "\r\n\r\n";
224 $data .= file_get_contents($file) . "\r\n";
225
226 $data .= '--' . $boundary . "--\r\n";
227
228 $http->setHeader('Content-type', 'multipart/form-data; boundary='.$boundary);
229 $http->setHeader('Content-length', strlen($data));
230
231 $response = $http->post('https://pddimp.yandex.ru/api/add_logo.xml', $data);
232
233 $result = new CDataXML();
234 $result->loadString($response);
235
236 if ($logoUrlNode = $result->selectNodes('/action/domains/domain/logo/url'))
237 return $logoUrlNode->textContent();
238
239 self::setError2($result, $error);
240 return false;
241 }
242
243 private static function query($query, $data)
244 {
245 $http = new \Bitrix\Main\Web\HttpClient();
246
247 $response = $http->post($query, $data);
248
249 $xml = new CDataXML();
250 $xml->loadString($response);
251
252 return $xml;
253 }
254
255 private static function setError($xml, &$error)
256 {
257 if ($errorNode = $xml->selectNodes('/page/error'))
258 $error = $errorNode->getAttribute('reason');
259 }
260
261 private static function setError2($xml, &$error)
262 {
263 if ($errorNode = $xml->selectNodes('/action/status/error'))
264 $error = $errorNode->textContent();
265 }
266
267}
$login
Определения change_password.php:8
Определения xml.php:396
Определения yandex.php:6
__construct()
Определения yandex.php:8
static addLogo($token, $domain, $file, &$error)
Определения yandex.php:205
static editUser($token, $login, $data, &$error)
Определения yandex.php:124
static getUserInfo($token, $login, &$error)
Определения yandex.php:105
static checkUser($token, $login, &$error)
Определения yandex.php:12
static registerUserToken($token, $login, $password, &$error)
Определения yandex.php:26
static getMailInfo($token, $login, &$error)
Определения yandex.php:90
static deleteUser($token, $login, &$error)
Определения yandex.php:76
static getDomainUsers($token, $per_page=30, $page=0, &$error)
Определения yandex.php:164
static userOAuthToken($token, $domain, $login, &$error)
Определения yandex.php:41
static passport($country, $oauthToken, $errorUrl)
Определения yandex.php:56
$data['IS_AVAILABLE']
Определения .description.php:13
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$query
Определения get_search.php:11
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
$country
Определения payment.php:59
if(empty($signedUserToken)) $key
Определения quickway.php:257
$page
Определения order_form.php:33
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$password
Определения result.php:7
$response
Определения result.php:21
$postData
Определения index.php:29
$error
Определения subscription_card_product.php:20