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

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

05.11.2021, 16:17. Показов 2152. Ответов 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
Ответ Создать тему
Новые блоги и статьи
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 05.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/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 17.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru