С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.09.2020
Сообщений: 28

Не работает подключение к API

05.11.2021, 16:17. Показов 2263. Ответов 3

Студворк — интернет-сервис помощи студентам
Добрый день.

Алгоритм работы программы:
1. подключение к почте с последующим получением исходных данных
2. Передача данных на сервер через API по запросу "POST"

Нет подключения по АПИ, выдаёт ошибку:
Res: stdClass Object ( [code] => 6010 [message] => Bad apikey or login ({****}, {****}) [data] => stdClass Object ( ) )

Пример POSTа целиком взял с сервера. Тех поддержка сервера на мой запрос об ошибке дала мне новый ключ к АПИ, но ошибка не ушла.
POST начинается с 29й строки.

Как снять ошибку - подключиться к АПИ?

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
<?php
 
$imap = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", "******", "*****");// Вход в почту Гугл
$email_read = 'UNSEEN';      // Непрочитанные сообщения анализируем в почтовом ящике во входящих
$mails_id = imap_search($imap, $email_read);   //Определяем количество не прочитанных сообщений
 
foreach ($mails_id as $num) {                  // Пробигаемся по всем непрочитанным письмам начиная с самого СТАРОГО
        
        $body = imap_body($imap, $num);        // Тело письма в закодированном виде
        var_dump($body);
//}                                               // конец цикла ФОР !!!!!
 
//imap_close($imap);                             // Закрываем соединение !!!!!!
 
$body = quoted_printable_decode($body);        // Тело письма раскодировано, строчная
 
 
$findme   = '130';                             // стоимость товара - эталон сравнения
$pos = strpos($body, $findme);                 // поиск эталона в теле письма
 
// Заметьте, что используется ===.  Использование == не даст верного
// результата, так как 'a' находится в нулевой позиции.
if ($pos === false) {
    echo "Строка '$findme' не найдена в строке";
} else {                                        // запрос чека на 130 рублей
 
  //      $request = json_encode($data);
    
$data = [];
$data['apikey'] = '{888888888}';
$data['login'] = '{88888888888}';
$data['purchase'] = '
    {
        "products": [
            {
                "name": "Конструктор LEGO Super Heroes 76107",
                "price": 4990,
                "quantity": 1,
                "tax": "vat20",
                "discount": {
                    "type": "percent",
                    "value": 5
                },
                "agent_data": {
                    "tag1005": "Ленинская Слобода, 19",
                    "tag1016": "123456789047",
                    "tag1026": "Оператор 1",
                    "tag1044": "Оплата",
                    "tag1073": ["+75555555555", "8 (495) 123-23-23"],
                    "tag1074": ["+71234567890"],
                    "tag1075": []
                },
                "supplier_inn": "1234567894",
                "supplier_data": {
                    "tag1171": ["+75555555555", "8 (495) 123-23-23"],
                    "tag1225": "ООО Поставщик"
                },
                "agent_item_type": {
                    "agent": 1
                }
            },
            {
                "name": "Доставка",
                "price": 300,
                "quantity": 1,
                "tax": "none"
            }
        ]
    }
';
$data['type'] = 'payment';
$data['test'] = 0;
$data['mode'] = 'print';
$data['customer_phone'] = null;
$data['customer_email'] = null;
$data['cash_amount'] = '#';
$data['card_amount'] = null;
$data['tax_system'] = 'usn15';
$data['agent'] = [
   'agent' => 1,
];
 
$request = json_encode($data);
 
$url = "https://sapi.life-pay.ru/cloud-print/create-receipt";
$curl = curl_init();
 
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
 
$result = curl_exec($curl);
curl_close($curl);
 
$resultJson = @json_decode($result);
 
printf("Res: %s\n", print_r($resultJson ? : $result, true));
 
 
 
}
 
}
 
imap_close($imap);                             // Закрываем соединение
 
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2021, 16:17
Ответы с готовыми решениями:

Подключение к облаку через подключение сетевого диска в проводнике - не работает
Всех приветствую, имеется Windows 7x64 Corporate, хочу подключиться к облакам яндекса и мэйла все делаю по инструкции ...

Подключение API
Подскажите пожалуйста, как мне подключить api курса валют к своему веб-приложению Вот ссылка на api:...

Подключение по API
Здравствуйте, недавно начал изучать Пайтон, нужно было написать скрипт на отправку сообщений по API. Подскажите пожалуйста, всё ли тут...

3
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.11.2021, 19:26
А фигурные скобки для apikey и login если убрать?
1
0 / 0 / 0
Регистрация: 15.09.2020
Сообщений: 28
05.11.2021, 21:10  [ТС]
Цитата Сообщение от Para bellum Посмотреть сообщение
А фигурные скобки для apikey и login если убрать?
спасибо за ответ.

Это 1ое, что я проверил. C " тоже проверял, но как то разницы не увидел. Попробовал просто пример из сервера без своего кода, но тоже без успешно. Так как сервер проверенный...1 из 2х, или мне не дают корректные коды ...или ....

код компилирую на XAMPP и жму только Apache, может с этим может быть как-то связано?
Так например для подключения библиотек IMAP требовались свои настройки в XAMPP.

Я гуглю по АПИ, но пока без успешно
0
0 / 0 / 0
Регистрация: 15.09.2020
Сообщений: 28
22.11.2021, 23:53  [ТС]
Доброго времени суток.
Код запустился и подключение к АПИ заработало, но не осуществляется корректно парсинг информации из почты.

Алгоритм работы:
1. Чтение писем из почты начиная с самого старого //работает без проблем
2. Сравнение тела каждого письма с каждым элементом массива "а"

При выполнении сравнения (2й пункт алгоритма), находит письмо которое соответствует элементу массива, но вне зависимости от того какому элементу бы соответствовало бы письмо всегда пишет одно и то же:
"130% good 130 and 1"

Нужно, чтоб текст менялся в зависимости от найденного значения элемента. Что не так в коде?

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
<?php
 
$imap = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", "11111111");               // Вход в почту Гугл
$email_read = 'UNSEEN';                        // Непрочитанные сообщения анализируем в почтовом ящике во входящих
$mails_id = imap_search($imap, $email_read);   //Определяем количество не прочитанных сообщений
ini_set('display_errors','Off');               //Отключение ошибки при отсутствии письма
$a = array('130R', '260R', '390R', '520R', '650R');          // массив стоимостей
 
foreach ($mails_id as $num) {                  // Пробигаемся по всем непрочитанным письмам начиная с самого СТАРОГО
        
  $body = imap_body($imap, $num);                 // Тело письма в закодированном виде
  var_dump($body);
 
  $body = quoted_printable_decode($body);        // Тело письма раскодировано, строчная
  echo " <br/>";
 
  $i=0;
 
  foreach ($a as $num) {                                                 // Пробигаемся по всему массиву стоимостей
 
    $i++;                                                                // счётчик позиций в массиве стоимостей товара
    $pos = strpos($body, $num);                                          // сравнение тела письма из почты с элементом массива стоимостей
    $num=$num*1;                                                         // преобразование стоимости товара в вещественное число
    
    if ($pos !== false) {                                                // Если условие по поиску стоимости в теле письма истинно, то формируется чек
 
      $nomer = $i;
      
      if ($nomer=1) {                                                       // Если товар из стоимостей имеет порядковый номер 1, то чек (ПОСТ) на САНДВИЧИ формируется
 
        if ($num=130) {
 
          echo "130% good $num and $i <br/>";            // CHECKs
 
          break;                      // выход из цикла
        }
 
      }
 
      if ($nomer=2) {                                                       // Если товар из стоимостей имеет порядковый номер 2, то чек (ПОСТ) на САНДВИЧИ формируется
 
        if ($num=260) {                   
          echo "260% good $num and $i <br/>";            // CHECKs
 
          break;                      // выход из цикла
 
        }
      }
        
    }                                             // конец условия IF
 
    unset($num);
    
  }                                               // конец условия FOR по перебору массива цен
 
}                                                 // конец условия FOR по перебору писем
imap_close($imap);                               // Закрываем соединение
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2021, 23:53
Помогаю со студенческими работами здесь

Подключение к VK API
Здравствуйте, уважаемые программисты. Сейчас занимаемся подключением к vk api. Как должно быть: Любой администратор любой группы...

Подключение к APi по Bearer
Добрый день! Не могу подключиться к API , выдает ошибку &quot; $exception {&quot;Базовое соединение закрыто: Непредвиденная ошибка при...

Настроить подключение API VK
Создал страницу настройки плагина wordpress в ней нужно создать поля ввода которые будут записаны в переменные а также вставить вот такой...

Подключение к Telegram API
Сделал подключение к Телеграму, получилось отправить сообщение. Проблема в том что телеграм при подключении присылает код в телеграм и...

Подключение API криптобиржи
Доброго времени суток. Может кто помочь в реализации скрипта php для сайта с подключением api какой-нибудь биржи. Т.з: Сайт написан на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru