powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ПриватБанк api POST запрос
25 сообщений из 96, страница 1 из 4
ПриватБанк api POST запрос
    #39762717
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ребята, при создании банковской платежки, выдает ошибку

Код: xml
1.
2.
3.
4.
5.
6.
7.
<html>
<head><title>500 Internal Server Error</title></head>
<body bgcolor="white">
<center><h1>500 Internal Server Error</h1></center>
<hr><center>nginx</center>
</body>
</html>



текст запроса:
Код: vbnet
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.
  strQuery = "{" _
    & """document_number"":""autoclient""," _
    & """recipient_account"":""" & Me.idKlienti.Column(2) & """," _
    & """recipient_nceo"":""" & Me.idKlienti.Column(3) & """," _
    & """payment_naming"":""" & Me.idKlienti.Column(1) & """," _
    & """payment_amount"":""" & Me.payment_amount & """," _
    & """recipient_ifi"":""" & Me.idKlienti.Column(4) & """," _
    & """payment_destination"":""" & Me.payment_destination & """," _
    & """payer_account"":""" & Me.idMoiFirmi.Column(2) & """" _
    & "}"


  myUrl = "https://acp.privatbank.ua/api/proxy/payment/create_pred"
  
  With XMLHTTP
    .Open "POST", myUrl, False
    .setRequestHeader "User-Agent:", "Автоклиент"
    .setRequestHeader "id:", idKlienta
    .setRequestHeader "token:", tokenKlienta
    .setRequestHeader "Content-Type:", "application/json;charset= utf-8"
    .send (strQuery)
    Debug.Print .ResponseText
  End With
 
  



инструкция https://docs.google.com/document/d/e/2PACX-1vTtKvGa3P4E-lDqLg3bHRF6Wi9S7GIjSMFEFxII5qQZBGxuTXs25hQNiUU1hMZQhOyx6BNvIZ1bVKSr/pub

советы техподдержки проблему не решили
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762818
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRas,

это точно не правильно
Код: vbnet
1.
.setRequestHeader "Content-Type:", "application/json;charset= utf-8"


Твой запрос не utf-8
С cp1251 пробовал ?

И кириллицу в хедер класть - это очень "смело" :)
Код: vbnet
1.
    .setRequestHeader "User-Agent:", "Автоклиент"


возьми какой-нибудь "стандартный", браузерный , если это вообще обязательный параметр
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762844
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtэто точно не правильно
Код: vbnet
1.
.setRequestHeader "Content-Type:", "application/json;charset= utf-8"


Твой запрос не utf-8
С cp1251 пробовал ?

И кириллицу в хедер класть - это очень "смело" :)
Код: vbnet
1.
    .setRequestHeader "User-Agent:", "Автоклиент"


возьми какой-нибудь "стандартный", браузерный , если это вообще обязательный параметр

проблема не там. поменял:
utf-8 на cp1251,
"Автоклиент" на "autoklient"


"Получение информации по выпискам:"
"Получение остатков по счетам:"
тоже самое ("Автоклиент", utf-8), все корректно работает
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762932
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRas "Получение информации по выпискам:"
"Получение остатков по счетам:"
тоже самое ("Автоклиент", utf-8), все корректно работаетЭти два метода работают по GET и ты им ничего в теле запроса не передаешь.

А метод create_pred - вызывается POST-запросом, и ему ты, в теле запроса, передаёшь свой json (strQuery)
В нём, наверняка, есть кириллица.
В хедере, ты говоришь вэб-сервису, что данные в кодировке utf-8, а по факту это win-1251

Навсякий, тут есть функция перекодировки в utf-8
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762939
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И это, у тебя тут реально "двоеточия" ? :)
Код: vbnet
1.
2.
3.
4.
    .setRequestHeader "User-Agent:", "Автоклиент"
    .setRequestHeader "id:", idKlienta
    .setRequestHeader "token:", tokenKlienta
    .setRequestHeader "Content-Type:", "application/json;charset= utf-8"


Убирай
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762942
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторcourt
метод create_pred - вызывается POST-запросом,


Такие нюансы(create_pred ) не знал. За подробности - спасибо.
пробовал обе кодировки, результата тот же.

авторcourt

И это, у тебя тут реально "двоеточия" ? :)

Техподдержка тоже предполагала...но и не там ((

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  With XMLHTTP
    .Open "POST", myUrl, False
    .setRequestHeader "User-Agent", "autoklient"
    .setRequestHeader "id", idKlienta
    .setRequestHeader "token", tokenKlienta
    .setRequestHeader "Content-Type", " application/json;charset= cp1251" 'utf-8
    .send (strQuery)
    Debug.Print .ResponseText
  End With


ОТВЕТ
<html>
<head><title>500 Internal Server Error</title></head>
<body bgcolor="white">
<center><h1>500 Internal Server Error</h1></center>
<hr><center>nginx</center>
</body>
</html>
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762947
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRas,

по ссылке, json немного поболее твоего ...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  strQuery = "{" _
    & """document_number"":""autoclient""," _
    & """recipient_account"":""" & Me.idKlienti.Column(2) & """," _
    & """recipient_nceo"":""" & Me.idKlienti.Column(3) & """," _
    & """payment_naming"":""" & Me.idKlienti.Column(1) & """," _
    & """payment_amount"":""" & Me.payment_amount & """," _
    & """recipient_ifi"":""" & Me.idKlienti.Column(4) & """," _
    & """payment_destination"":""" & Me.payment_destination & """," _
    & """payer_account"":""" & Me.idMoiFirmi.Column(2) & """" _
    & "}"



по ссылке:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Пример тела запроса:

{

"document_number":"autoclient",
"recipient_account":"29001828900110",
"recipient_nceo":"14360570",
"payment_naming":"ПАО, ПАО КБ ПРИВАТБАНК",
"payment_amount":"0.01",
"recipient_ifi":"305299",
"recipient_ifi_text":"ПАТ КБ \"ПРИВАТБАНК\"",
"payment_destination":"test create pmnt to rest API",
"payer_account":"26006055314061",
"payment_ccy":"UAH",
"document_type":"cr",
"payment_date":"04.09.2017",
"payment_accept_date":"04.09.2017"

}



Ты уверен, что это не обязательные атрибуты, - те которые ты не отправляешь ?
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762955
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и убери этот пробел
Код: vbnet
1.
"application/json;charset= utf-8"
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762960
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtи убери этот пробел
Код: vbnet
1.
"application/json;charset= utf-8"



без пробела ругается, и до этого пробовал
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762961
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtVaRas,

по ссылке, json немного поболее твоего ...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  strQuery = "{" _
    & """document_number"":""autoclient""," _
    & """recipient_account"":""" & Me.idKlienti.Column(2) & """," _
    & """recipient_nceo"":""" & Me.idKlienti.Column(3) & """," _
    & """payment_naming"":""" & Me.idKlienti.Column(1) & """," _
    & """payment_amount"":""" & Me.payment_amount & """," _
    & """recipient_ifi"":""" & Me.idKlienti.Column(4) & """," _
    & """payment_destination"":""" & Me.payment_destination & """," _
    & """payer_account"":""" & Me.idMoiFirmi.Column(2) & """" _
    & "}"



по ссылке:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Пример тела запроса:

{

"document_number":"autoclient",
"recipient_account":"29001828900110",
"recipient_nceo":"14360570",
"payment_naming":"ПАО, ПАО КБ ПРИВАТБАНК",
"payment_amount":"0.01",
"recipient_ifi":"305299",
"recipient_ifi_text":"ПАТ КБ \"ПРИВАТБАНК\"",
"payment_destination":"test create pmnt to rest API",
"payer_account":"26006055314061",
"payment_ccy":"UAH",
"document_type":"cr",
"payment_date":"04.09.2017",
"payment_accept_date":"04.09.2017"

}



Ты уверен, что это не обязательные атрибуты, - те которые ты не отправляешь ?

Из инструкции:
Обязательные реквизиты:

document_number - номер документа
payer_account - счет отправителя
recipient_account - счет получателя (или recipient_card для платежа на карту)
recipient_nceo - окпо получателя
payment_naming - название получателя
recipient_ifi - мфо получателя
payment_amount - сумма платежа
payment_destination - назначение платежа
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762963
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRas Из инструкции:
Обязательные реквизиты:

document_number - номер документа
payer_account - счет отправителя
recipient_account - счет получателя (или recipient_card для платежа на карту)
recipient_nceo - окпо получателя
payment_naming - название получателя
recipient_ifi - мфо получателя
payment_amount - сумма платежа
payment_destination - назначение платежа

Этого payment_ccy нет ни среди обязательных, ни среди не обязательных

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 Не обязательные реквизиты(могут отсутствовать):

document_type - тип документа, по умолчанию cr
payment_date - дата списания, по умолчанию текущая (изменяется с помощью поля “Дата исполнения”)
payment_accept_date - дата зачисления получателя, по умолчанию (изменяется с помощью поля “Дата валютирования”)
payment_cb_ref - референс платежа из старого приват24(если импортирован)
copy_from_ref - референс платежа, с которого скопирован
attach - прикрепленные файлы
signer_msg - сообщение подписанту
odb_msg - сообщение операционисту
recipient_ifi_text - название банка получателя


Попробуй добавить
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39762994
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court,
добавил. Изменений нет ((
Код: html
1.
2.
3.
4.
5.
6.
7.
<html>
<head><title>500 Internal Server Error</title></head>
<body bgcolor="white">
<center><h1>500 Internal Server Error</h1></center>
<hr><center>nginx</center>
</body>
</html>


Да и почему ответ идет как "html", даже если и не правильно, должен быть json
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763088
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRasинструкция https://docs.google.com/document/d/e/2PACX-1vTtKvGa3P4E-lDqLg3bHRF6Wi9S7GIjSMFEFxII5qQZBGxuTXs25hQNiUU1hMZQhOyx6BNvIZ1bVKSr/pub
Я прошелся по Вашей ссылке , и там в инструкции указано , что запросы отправляются методом GET . А из каких источников Вы взяли , что на сервер Вы должны отправлять запрос методом POST ???
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763094
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkManVaRasинструкция https://docs.google.com/document/d/e/2PACX-1vTtKvGa3P4E-lDqLg3bHRF6Wi9S7GIjSMFEFxII5qQZBGxuTXs25hQNiUU1hMZQhOyx6BNvIZ1bVKSr/pub
Я прошелся по Вашей ссылке , и там в инструкции указано , что запросы отправляются методом GET . А из каких источников Вы взяли , что на сервер Вы должны отправлять запрос методом POST ???

Да, Вы правы, по инструкции я тоже делал GET. Не заработало.
Обратился в техподдержку.
Они указали, что надо POST.
Ни POST, ни GET не работает
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763096
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRasОни указали, что надо POST.
Неужели они не могут предоставить никакого примера-шаблона по которому нужно отправлять запрос ????
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763115
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRasНи POST, ни GET не работает
Я не даю 100% гарантии , но если я правильно понял из описания , то методом GET Вы должны передать ИД пользователя и токен . Это Вы передаете в строке Url , пример как вставить это в строку , есть в описании на сайте . Остальные данные Вы можете передать Ajax запросом в формате JSON . Я не знаю как это делается в Access , но Вы можете попробовать это сделать прямо из браузера. Для этого Вам в текстовом редакторе нужно создать простенькую HTML страницу , сохранить файл с расширением HTML и запустить в браузере . Дополнительно скачать и подключить библиотеку jQuery , лучше версию 3.3.1 и написать простенький скрипт . Вот пример отправки Ajax запроса из браузера.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
       <script>
           $.ajax({
	   type:'POST',
	    url:'строка GET запроса url',
	    dataType:'json',
	    data:JSON.stringify(Здесь передается массив запроса)
	    	})
	    .done(function(response){
	     console.log(response);		
	    }); 
        </script>


В браузере нажмете F12 перейдите на вкладку Console перезагрузите страницу Ctl+F5 и Вы прочитаете ответ сервера. Может там более или менее прояснятся ошибки. А ошибка 500 это общая ошибка сервера.
Как то так наверное. :))
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763118
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMan,

нашел одну ошибку
исправлением слов GET на POST проблему не решить

исправил

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  With CreateObject("WinHttp.WinHttpRequest.5.1")
    .Open "POST", myUrl, False
    .setRequestHeader "POST", " /auth/createSession HTTP/1.1"
    .setRequestHeader "User-Agent", "autoklient"
    .setRequestHeader "id", idKlienta
    .setRequestHeader "token", tokenKlienta
    .setRequestHeader "Content-Type", " application/json;charset=cp1251" 'utf-8
    .send (strQuery)
    Debug.Print .Status
    Debug.Print .ResponseText
  End With



теперь выдает ошибку
.Status 201
.ResponseText -2147023783 Символ Юникода не имеет сопоставления в конечной многобайтовой кодовой странице.
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763119
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRasНи POST, ни GET не работаетХотя немного соврал , ИД и токен тоже передаете в скрипте методом пост. Вот нашел пример в инете .

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  $.ajax({
    url: 'YourRestEndPoint',
    headers: {
        'Authorization':'Basic xxxxxxxxxxxxx',
        'X_CSRF_TOKEN':'xxxxxxxxxxxxxxxxxxxx',
        'Content-Type':'application/json'
    },
    method: 'POST',
    dataType: 'json',
    data: YourData,
    success: function(data){
      console.log('succes: '+data);
    }
  });


Удачи. Надеюсь получится.
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763120
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRasтеперь выдает ошибку
.Status 201
.ResponseText -2147023783 Символ Юникода не имеет сопоставления в конечной многобайтовой кодовой странице.
201 это не ошибка , это ответ сервера . Когда все ОК вы должны получить код 200 . Вы на правильном пути , значит Вы уже достучались до сервера . Теперь играйтесь с юникодами.
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763121
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRas.ResponseText -2147023783 Символ Юникода
Почему в этой строке
Код: html
1.
.setRequestHeader "Content-Type", " application/json;charset=cp1251" 'utf-8


перед utf8 только один апостроф? Так должно быть ? Обычно пара .
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763122
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkManVaRas.ResponseText -2147023783 Символ Юникода
Почему в этой строке
Код: html
1.
.setRequestHeader "Content-Type", " application/json;charset=cp1251" 'utf-8



перед utf8 только один апостроф? Так должно быть ? Обычно пара . Или это комментарий в VBA ? Тогда попробуйте в charset=utf8 или utf8_unicode
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763124
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtи убери этот пробел
Код: vbnet
1.
"application/json;charset= utf-8"



с этим пробелом - какая-то засада
С пробелом ответ
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
<html>
<head><title>500 Internal Server Error</title></head>
<body bgcolor="white">
<center><h1>500 Internal Server Error</h1></center>
<hr><center>nginx</center>
</body>
</html>



БЕЗ пробела
Код: vbnet
1.
-2147023783   Символ Юникода не имеет сопоставления в конечной многобайтовой кодовой странице.
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763126
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkManПочему в этой строке
Код: html
1.
.setRequestHeader "Content-Type", " application/json;charset=cp1251" 'utf-8


перед utf8 только один апостроф? Так должно быть ? Обычно пара .

в VBA комментарий берется в апостроф (')
На работу кода не влияет
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763127
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaRasБЕЗ пробела
Код: vbnet
1.
-2147023783   Символ Юникода не имеет сопоставления в конечной многобайтовой кодовой странице.


Пробуйте без тире charset=utf8 или charset=utf8_unicode. Типа такого
Код: html
1.
'charset' => 'utf8mb4',


Это пример в PHP , а вот это в HTML
Код: html
1.
<meta charset="utf-8">
...
Рейтинг: 0 / 0
ПриватБанк api POST запрос
    #39763128
VaRas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VaRascourtи убери этот пробел
Код: vbnet
1.
"application/json;charset= utf-8"



с этим пробелом - какая-то засада
С пробелом ответ
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
<html>
<head><title>500 Internal Server Error</title></head>
<body bgcolor="white">
<center><h1>500 Internal Server Error</h1></center>
<hr><center>nginx</center>
</body>
</html>



БЕЗ пробела
Код: vbnet
1.
-2147023783   Символ Юникода не имеет сопоставления в конечной многобайтовой кодовой странице.



было бы хорошо, если бы была возможность исправлять.
данный глюк наблюдается не с "UTF-8", а с "cp1251"
...
Рейтинг: 0 / 0
25 сообщений из 96, страница 1 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ПриватБанк api POST запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]