Добрый день!
Делаем интеграцию с платежным терминалом 3 in 1 FETIAN F20 Отправляем POST запрос и полученный ответ грузим в виде JSON Используем хранимую процедуру SQL сервера с запуском из программы Склад и торговля.
В Складе и торговле сделали кнопку на панели команд: VBS Script ExecuteSQL("EXECUTE dbo.SP_Android_iKassa_sale <tblSales1RMK>.<ID>, <CurrentUserID>") В хранимую процедуру передаем параметры указанные выше. В самой хранимой процедуре используем данный метод отправки POST запроса:
Exec @vReturnCode = sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
EXEC @vReturnCode = sp_OAMethod @Object, 'open', NULL, 'post', @Url, 'false'
Exec @vReturnCode = sp_OAMethod @Object, 'setRequestHeader', null, 'Content-Type', 'application/json'
Exec @vReturnCode = sp_OAMethod @Object, 'setRequestHeader', null, 'INTENT_OPERATION_TYPE', 'SALE'
Exec @vReturnCode = sp_OAMethod @Object, 'setRequestHeader', null, 'USER_PARTICIPATION', 'false'
Exec @vReturnCode = sp_OAMethod @Object, 'setRequestHeader', null, 'requestCode', '2000'
Exec @vReturnCode = sp_OAMethod @Object, 'send', null, @body
Exec @vReturnCode = sp_OAMethod @Object, 'status', @Status OUTPUT
Exec @vReturnCode = sp_OAMethod @Object, 'statusText', @statusText OUTPUT
Exec @vReturnCode = sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText Select @Status Select @StatusText
Exec sp_OADestroy @Object
Через менеджмент студио все отрабатывает корректно. А при запуске из программы Склад и торговля в случае, если нет ответа более 30-ти секунд, выводится ошибка о превышении времени ожидания и процедура не выполняется. Хотя сам запрос успешно передан на внешнее устройство и и выполняет отправленную задачу до конца.
Пробовали использовать еще 2 метода: 'MSXML2.ServerXMLHTTP' и 'WinHttp.WinHttpRequest.5.1' Но эти два метода не отрабатывают и под менеджмент студио в случае, если ожидание ответа на POST запрос более 30-ти секунд.
Может кто-то сталкивался с подобной задачей и знает как увеличить тайминги? Либо есть какая-то альтернатива передачи post запрос по HTTP ?
|