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

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

05.11.2021, 16:17. Показов 2041. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru