|
HTTP запрос из 1с АПИ Приват 24 | ☑ | ||
---|---|---|---|---|
0
ildarian
09.10.15
✎
16:18
|
Добрый день.
Такая проблема. Пишу запрос на приват 24 согласно их мануала в итоге получаю ошибку " Ошибка работы с Интернет: Couldn't resolve host name " впервые столкнулся с подобной задачей. вот исходный код АдресСкрипта = "https://api.privatbank.ua/p24api/rest_yur"; Запрос = "<?xml version=1.0 encoding=""UTF-8""?> |<request version=""1.0""> | <merchant> | <id>112371</id> | <signature>oxJO5wyf2GG95783v6q39I8A47Z32571</signature> | </merchant> | <data> | <oper>cmt</oper> | <wait>0</wait> | <test>0</test> | <payment id=""112371""> | <prop name=""year"" value=""2015"" /> | <prop name=""month"" value=""08"" /> | </payment> | </data> |</request>"; HTTPЗапрос = Новый HTTPЗапрос(Запрос); HTTPСоединение = Новый HTTPСоединение(АдресСкрипта); Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); В конечном итоге я должен получить xml в виде текста с параметрами. Может кто делал что-то подобное, помогите советом. |
|||
1
ildarian
09.10.15
✎
16:20
|
поправка.
Вот код АдресСкрипта = "https://api.privatbank.ua/p24api/rest_yur"; Запрос = "<?xml version=1.0 encoding=""UTF-8""?> |<request version=""1.0""> | <merchant> | <id>112371</id> | <signature>oxJO5wyf2GG95783v6q39I8A47Z32571</signature> | </merchant> | <data> | <oper>cmt</oper> | <wait>0</wait> | <test>0</test> | <payment id=""112371""> | <prop name=""year"" value=""2015"" /> | <prop name=""month"" value=""08"" /> | </payment> | </data> |</request>"; HTTPЗапрос = Новый HTTPЗапрос(Запрос); HTTPСоединение = Новый HTTPСоединение(АдресСкрипта); Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); |
|||
2
ДенисЧ
09.10.15
✎
16:20
|
ping api.privatbank.ua
что говорит? |
|||
3
arccos6pi
09.10.15
✎
16:21
|
(2) да какая разница,если у него код неверный
|
|||
4
ildarian
09.10.15
✎
16:22
|
не пингуется. мм, ладно. спасибо
|
|||
5
arccos6pi
09.10.15
✎
16:23
|
(4) ну не пингуется,и что?
при этом в браузере прекрасно открывается |
|||
6
sash-ml
09.10.15
✎
16:25
|
прокси?
|
|||
7
ildarian
09.10.15
✎
16:26
|
(6) нет
|
|||
8
arccos6pi
09.10.15
✎
16:26
|
(0) где вы вообще пример отправки запроса такой нашли?
|
|||
9
ildarian
09.10.15
✎
16:27
|
сам написал, в интернете не нашел нужного примера
|
|||
10
sash-ml
09.10.15
✎
16:27
|
в HTTPСоединение не указано что нужно ssl, не?
|
|||
11
arccos6pi
09.10.15
✎
16:28
|
(9) АдресСкрипта = "https://api.privatbank.ua/p24api/rest_yur";
HTTPСоединение = Новый HTTPСоединение(АдресСкрипта); это сразу не верно |
|||
12
arccos6pi
09.10.15
✎
16:28
|
(10) да там и адрес целиком писать не надо
|
|||
13
Redkiy
09.10.15
✎
16:32
|
сервис откликается на GET из браузера
ответ: <error>empty request</error> проверь |
|||
14
arccos6pi
09.10.15
✎
16:33
|
(9)АдресСкрипта = "/p24api/rest_yur";
Запрос = "<?xml version=1.0 encoding=""UTF-8""?> |<request version=""1.0""> | <merchant> | <id>112371</id> | <signature>oxJO5wyf2GG95783v6q39I8A47Z32571</signature> | </merchant> | <data> | <oper>cmt</oper> | <wait>0</wait> | <test>0</test> | <payment id=""112371""> | <prop name=""year"" value=""2015"" /> | <prop name=""month"" value=""08"" /> | </payment> | </data> |</request>"; HTTPСоединение = Новый HTTPСоединение("api.privatbank.ua",Истина); ФайлОтвета = ПолучитьИмяВременногоФайла(); Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос,АдресСкрипта,ФайлОтвета); как-то вот так должно это выглядеть |
|||
15
ildarian
09.10.15
✎
16:36
|
та же ошибка
|
|||
16
ildarian
09.10.15
✎
16:37
|
что то мне подсказывает, что тут первоначально не в коде ошибка
|
|||
17
sash-ml
09.10.15
✎
16:39
|
в коде, запрос неправильно создан
Запрос = Новый HTTPЗапрос(РесурсНаСервере, Заголовки); Запрос.УстановитьТелоИзСтроки(ТелоЗапроса); |
|||
18
ildarian
09.10.15
✎
16:45
|
так вроде сдвиг пошел
АдресСкрипта = "/p24api/rest_yur"; Запрос = "<?xml version=1.0 encoding=""UTF-8""?> |<request version=""1.0""> | <merchant> | <id>112371</id> | <signature>oxJO5wyf2GG95783v6q39I8A47Z32571</signature> | </merchant> | <data> | <oper>cmt</oper> | <wait>0</wait> | <test>0</test> | <payment id=""112371""> | <prop name=""year"" value=""2015"" /> | <prop name=""month"" value=""08"" /> | </payment> | </data> |</request>"; HTTPЗапрос = Новый HTTPЗапрос(АдресСкрипта); HTTPЗапрос.УстановитьТелоИзСтроки(Запрос); HTTPСоединение = Новый HTTPСоединение("api.privatbank.ua",Истина); ФайлОтвета = ПолучитьИмяВременногоФайла(); Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос,АдресСкрипта,ФайлОтвета); шяс новая ошибка: Каталог не обнаружен 'p24api\rest_yur' хотя написано то "/p24api/rest_yur" |
|||
19
arccos6pi
09.10.15
✎
16:48
|
(18) HTTPСоединение = Новый HTTPСоединение("api.privatbank.ua",Истина); вот здесь я ошибся
попробуйте HTTPСоединение = Новый HTTPСоединение("api.privatbank.ua",,,,,Истина); |
|||
20
sash-ml
09.10.15
✎
16:55
|
адрессервера "api.privatbank.ua/p24api"
адресскрипта "/rest_yur" попробуй так, упривата свои заморочки |
|||
21
arccos6pi
09.10.15
✎
16:58
|
||||
22
zak555
09.10.15
✎
17:00
|
приват -- это коломойского ?
|
|||
23
ildarian
09.10.15
✎
17:00
|
у меня получилось
вот код АдресСкрипта = "/rest_yur"; Запрос = "<?xml version=1.0 encoding=""UTF-8""?> |<request version=""1.0""> | <merchant> | <id>112371</id> | <signature>oxJO5wyf2GG95783v6q39I8A47Z32571</signature> | </merchant> | <data> | <oper>cmt</oper> | <wait>0</wait> | <test>0</test> | <payment id=""112371""> | <prop name=""year"" value=""2015"" /> | <prop name=""month"" value=""08"" /> | </payment> | </data> |</request>"; HTTPЗапрос = Новый HTTPЗапрос(АдресСкрипта); HTTPЗапрос.УстановитьТелоИзСтроки(Запрос); HTTPСоединение = Новый HTTPСоединение("api.privatbank.ua/p24api",Истина); ФайлОтвета = ПолучитьИмяВременногоФайла(); Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос,АдресСкрипта,ФайлОтвета); Только в переменную "Ответ" какая то херня попадет, а не то, что нужно, ну это уже нужно в банк звонить видать:( Всем спасибо |
|||
24
sash-ml
09.10.15
✎
17:04
|
(23) не дозвонишься, покажи кусок ответа
|
|||
25
sash-ml
09.10.15
✎
17:07
|
(23) нафига тебе в <payment id=""112371""> циферки? да еще и неправильные, там пусто должно быть
|
|||
26
ildarian
09.10.15
✎
17:08
|
Это ИД мерчанта
|
|||
27
ildarian
09.10.15
✎
17:08
|
и он правильный хоть и тестовый
|
|||
28
sash-ml
09.10.15
✎
17:08
|
(26) нет, это ид платежа,
|
|||
29
ildarian
09.10.15
✎
17:10
|
а как тут файлы крепить ?
|
|||
30
ildarian
09.10.15
✎
17:13
|
короче вернуло тип данных "httpОтвет". Там 2 поля "Заголовки" и "Код состояния".
|
|||
31
ildarian
09.10.15
✎
17:14
|
Если кому интересно, то вот ссылка на описание их АПИ https://api.privatbank.ua/api-privat24/rest-yur.html
|
|||
32
sash-ml
09.10.15
✎
17:21
|
текстответа = httpОтвет.ПолучитьТелоКакСтроку()
|
|||
33
ildarian
09.10.15
✎
17:23
|
неопределено
|
|||
34
sash-ml
09.10.15
✎
17:28
|
// ФайлОтвета = ПолучитьИмяВременногоФайла();
Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);// ,АдресСкрипта,ФайлОтвета); текстответа = Ответ.ПолучитьТелоКакСтроку(); |
|||
35
arccos6pi
09.10.15
✎
17:29
|
(30) у тебя ответ лежит в файлответа
|
|||
36
ildarian
09.10.15
✎
17:38
|
можно как-то в коде получить текст ответа ?
|
|||
37
arccos6pi
09.10.15
✎
18:27
|
(36) код из (34) не работает?
|
|||
38
ildarian
12.10.15
✎
09:17
|
(37) тоже выдает "неопределено"
|
|||
39
sash-ml
12.10.15
✎
09:58
|
версия ХМЛ должна быть в кавычках
xml version=""1.0"" |
|||
40
ildarian
12.10.15
✎
10:13
|
подправил, результат тот же
|
|||
41
sash-ml
12.10.15
✎
11:16
|
+(19) подсказка была правильная.
(0) СП не читаем вообще? HTTPСоединение (HTTPConnection) По указанному серверу Синтаксис: Новый HTTPСоединение(<Сервер>, <Порт>, <ИмяПользователя>, <Пароль>, <Прокси>, <ЗащищенноеСоединение>) |
|||
42
Trushc
12.10.15
✎
11:23
|
напиши мне на почту [email protected]. Я пару лет назад обмен с приватом делал - скину обработку
|
|||
43
ildarian
12.10.15
✎
11:34
|
(42) Спасибо, сейчас напишу
|
|||
44
cw014
12.10.15
✎
11:38
|
Заголовки пробовал ставить? Например "POST 1.1"?
|
|||
45
cw014
12.10.15
✎
11:38
|
Или Content-Type: application-xml???
|
|||
46
cw014
12.10.15
✎
11:39
|
И напоследок:
HTTPЗапрос.УстановитьТелоИзСтроки(Запрос,,ИспользованиеByteOrderMark.НеИспользовать); |
|||
47
ildarian
12.10.15
✎
11:40
|
Сейчас такой код.
АдресСкрипта = "/rest_yur"; Запрос = "<?xml version=""1.0"" encoding=""UTF-8""?> |<request version=""1.0""> | <merchant> | <id>112371</id> | <signature>oxJO5wyf2GG95783v6q39I8A47Z32571</signature> | </merchant> | <data> | <oper>cmt</oper> | <wait>0</wait> | <test>0</test> | <payment id=""112371""> | <prop name=""year"" value=""2015"" /> | <prop name=""month"" value=""08"" /> | </payment> | </data> |</request>"; HTTPЗапрос = Новый HTTPЗапрос("api.privatbank.ua/p24api"); HTTPЗапрос.УстановитьТелоИзСтроки(Запрос); HTTPСоединение = Новый HTTPСоединение("api.privatbank.ua",,,,,Истина); //HTTPСоединение.Пользователь = "112371"; //HTTPСоединение.Пароль = "oxJO5wyf2GG95783v6q39I8A47Z32571"; ФайлОтвета = ПолучитьИмяВременногоФайла(); Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос,ФайлОтвета); а = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8); В ответ попадает код "200" уже. Это значит, что подключение удачное. Но текста ответа нет. Наверно теперь уже нужно играться с параметрами. |
|||
48
sash-ml
12.10.15
✎
12:10
|
(47) одно из двух, либо ты пишешь в ФайлОтвета, либо ПолучитьТелоКакСтроку()
в твоем случае ответ в ФайлОтвета СП подарить? ПолучитьТелоКакСтроку(<Кодировка>) Возвращаемое значение: Неопределено - если при вызове методов ОтправитьДляОбработки или Получить был установлен параметр <ИмяВыходногоФайла>. |
|||
49
ildarian
12.10.15
✎
12:23
|
Получилось! получил ответ в виде хмл.
Вот финальный код. АдресСкрипта = "https://api.privatbank.ua/p24api"; Запрос = "<?xml version=""1.0"" encoding=""UTF-8""?> |<request version=""1.0""> | <merchant> | <id>112371</id> | <signature>oxJO5wyf2GG95783v6q39I8A47Z32571</signature> | </merchant> | <data> | <oper>cmt</oper> | <wait>0</wait> | <test>0</test> | <payment id=""112371""> | <prop name=""year"" value=""2015"" /> | <prop name=""month"" value=""08"" /> | </payment> | </data> |</request>"; HTTPЗапрос = Новый HTTPЗапрос("api.privatbank.ua/p24api/rest_yur"); HTTPЗапрос.УстановитьТелоИзСтроки(Запрос,КодировкаТекста.UTF8); HTTPСоединение = Новый HTTPСоединение("api.privatbank.ua",,,,,Истина); ФайлОтвета = ПолучитьИмяВременногоФайла(); Ответ = HTTPСоединение.Получить(HTTPЗапрос); а = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8); |
|||
50
ildarian
12.10.15
✎
12:24
|
строка
ФайлОтвета = ПолучитьИмяВременногоФайла(); лишняя |
|||
51
sash-ml
12.10.15
✎
13:12
|
(50) это было еще в (34)
но с файлом ответа можно было бы сразу прочитать ХМЛ ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ФайлОтвета); Пока ЧтениеXML.Прочитать() Цикл // Обработка узла XML КонецЦикла; |
|||
52
ildarian
12.10.15
✎
13:15
|
Спасибо всем, кто откликнулся
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |