powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / POST, Ростелеком и его ЕСПП
6 сообщений из 6, страница 1 из 1
POST, Ростелеком и его ЕСПП
    #38439071
ВалШебник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Коллеги, были ли опыт работы (разработки) с платежным сервисом Ростелекома по ЕСПП (Единая система приема платежей)
В протоколе описан POST и JSON

Проблема в чем - со старым сервисом все ОК (моя система работает на VFP 9.0). Здесь используется GET-запросы
В новом используется POST
Но как работать с POST не проблема, думал что знаю.

А начал разрабатывать интерфейс - и при попытке поработать с РОСТЕЛЕКОМом по новой спецификации с их стендом - летит ошибка

Запрос простой (тестовая схемка):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
cURL = 'https://espp-test.rt.ru:8443/uni'

cSend = "reqType=queryPayeeInfo&svcTypeId=0&svcNum=8652364220&queryFlags=3"
oHTTPS = NEWOBJECT("MSXML2.XMLHTTP")
oHTTPS.Open("POST",cURL,.f.)
oHTTPS.SetRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8")
oHTTPS.SetRequestHeader("Accept","application/x-www-form-urlencoded")
oHTTPS.SetRequestHeader("Accept-Charset","UTF-8")
oHTTPS.Send(cSend)


И при вызове oHTTPS.Send(cSend) следует окно: OLE IDispath exeption code 0 from msxml3.dll. Системная ошибка -2146697208

При попытке отослать тело запрос на другой URL (на другой сервер - где есть POST) - все работает, приходит вполне ожидаемый ответ - типа BAD REQ (через oHTTPS.ResponseText)
А тут такие грабли. РОСТЕЛЕКОМ подсказать не может, говорит, вообще мои запросы не видит.
Где - почему - голову сломал.
Коннект к серверу есть (тут особенность, принимают только с зарегистрированных IP адресов), проверил через утилитку OPENSSL.

Может, у кого было нечто похожее?
...
Рейтинг: 0 / 0
POST, Ростелеком и его ЕСПП
    #38439238
ВалШебник,
Может проблема в самом запросе? Может он сформирован некорректно....
Вот краткое описание пост-запросов:

авторPOST-запрос

Если необходимо передать на веб-сервер большой объем данных, например, текст сообщения или файл, используют POST-запрос. В этом типе запроса параметры помещаются в тело HTTP-запроса, а размер передаваемых данных в байтах указывается в заголовке Content-Length:

POST /enter HTTP/1.1
<Различные заголовки>
Content-Length: 27
<Различные заголовки>

login=admin&password=qwerty

Таким образом, в URL передаваемые параметры не видны.

Поиграйтесь с этим...
...
Рейтинг: 0 / 0
POST, Ростелеком и его ЕСПП
    #38439279
ВалШебник,

Ну если на разные URL с одного и того же рабочего места под одной и той же операционкой все работает, то тут может быть дело в сертификатах безопасности?
может попробовать найти и установить полный инсталляционный пакет для MSXML 3 и MSXML 6?
...
Рейтинг: 0 / 0
POST, Ростелеком и его ЕСПП
    #38442969
ВалШебник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стало ясно - куда копать. Стоит CryptoPro - судя по всему и блокирует все что валится по 8443 порту. ('https://espp-test.rt.ru:8443/uni')
Убрал порт ('https://espp-test.rt.ru/uni') - стали приходит ответы от сервера - типа указанный ресурс не доступен.

Ну хоть что-то.

Вспомнил - у меня такая же подобная проблема была когда я писал шлюз для СобинБанка - оплата за газ.
Там используется 8444 порт. Помогли шаманские пляски с CryptoPro, заработала последняя версия-последняя сборка. Тогда техподдержка тоже молчала. Хотя тоже было ясно, что тоже с портом проблема.

На самом компьютере отключен брандмауэр.
...
Рейтинг: 0 / 0
POST, Ростелеком и его ЕСПП
    #38451221
ВалШебник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.
Проблему порешал - там было несколько подводных камней. Может, кому будет интересно:
1. Узрел что сертификат корневой - длинной 2048, а клиентский (мой) - 1024. Начал теребить Ростелеком.
Прислали инструкцию по генерации, до этого outlook присылали просто команду
(в команде как раз длинна была указана 1024)
...
Рейтинг: 0 / 0
POST, Ростелеком и его ЕСПП
    #38451225
ВалШебник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.
Проблему порешал - там было несколько подводных камней. Может, кому будет интересно:
Пляска № 1. Узрел что сертификат корневой - длинной 2048, а клиентский (мой) - 1024. Начал теребить Ростелеком.
Прислали инструкцию по генерации, до этого outlook присылали просто команду как сделать запрос через OPENSSL.
(в команде как раз длинна была указана 1024)
А в инструкции была 2048. Однако.
Вообщем новый получил от Ростелекома с длинной 2048. Потом оказалось по инструкции надо было еще сделать личный сертификат PKCS12. Про это вообще до этого ни слова. Короче пляски с сертификатом закончились (2 недели убил) - и я смог IE зайти к ним (Ростелекому) на ресурс. Но!!!! Fox ни в какую не захотел коннектиться.

Пляска № 2. Вообщем через MSXML2.XMLHTTP - не пошло. Невозможно указать клиентский сертификат.
Тогда пошел вот так
Код: plaintext
1.
2.
3.
4.
5.
	oHTTPS = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
	' Здесь я отключаю все ошибки по сертификатам (типа несовпадение адреса сертификата (таки Ростелеком и тут умудрился накосячить))
        oHTTPS.Option(4) = 13056
        ' Далее указываем клиенсткий сертификат
	oHTTPS.SetClientCertificate("Ростелком")
Дальше все как обычно ...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / POST, Ростелеком и его ЕСПП
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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