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

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

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

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

Алгоритм работы программы:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2021, 16:17
Ответы с готовыми решениями:

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

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

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

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

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

3
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.11.2021, 19:26 2
А фигурные скобки для apikey и login если убрать?
1
0 / 0 / 0
Регистрация: 15.09.2020
Сообщений: 28
05.11.2021, 21:10  [ТС] 3
Цитата Сообщение от 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  [ТС] 4
Доброго времени суток.
Код запустился и подключение к АПИ заработало, но не осуществляется корректно парсинг информации из почты.

Алгоритм работы:
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
22.11.2021, 23:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2021, 23:53
Помогаю со студенческими работами здесь

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

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

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

Подключение REST API
Добрый день! Недавно начал изучать AngularJS. И застрял вот на такой веще. Помогите разобраться или...

Подключение Яндекс Переводчик API к QT
Добрый день Я столкнулся с проблемой такой не знаю как подключить Яндекс Переводчик API к QT....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru