Автор |
Сообщение |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 18/05/2017 18:17:17
|
zoertan
Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн
|
Возвращаясь к решению от sayunot
Товарищи, подскажите, пожалуйста, неспециалисту: там, где шлем запрос на подтверждение, - как правильно вызвать метод submitApplicationRequest? Т.е. какое application ему надо передать в качестве параметра? Пробовал передать MercAppDO, но тут он снова ругался на ошибку SOAP, т.е. от чего пытались уйти - к тому и вернулись...
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 11:22:41
|
esteem
Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн
|
Application = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application", "Application");
Application.serviceId = "mercury-g2b.service";
Application.issuerId = issuerId;
Application.issueDate = ТекущаяДата();
ApplicationDataWrapper = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application", "ApplicationDataWrapper");
Application.data = ApplicationDataWrapper;
SubmitRequestDO = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application/ws-definitions", "submitApplicationRequest");
SubmitRequestDO.apiKey = apiKey;
SubmitRequestDO.Application = Application;
SubmitRequestDO.Application.data.Добавить(ФормаXML.Элемент, MercRequestDO.Тип().URIПространстваИмен, "MercuryApplicationRequest", MercRequestDO);
Что-то типа такого, может на мысль наведет
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 12:34:28
|
zoertan
Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн
|
Проинициализировал MercRequestDO, не помогло... та же самая "Ошибка SOAP сервера".
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 12:44:44
|
esteem
Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн
|
zoertan wrote:Проинициализировал MercRequestDO, не помогло... та же самая "Ошибка SOAP сервера".
Непонятно где ошибка возникает? После отправки на сервер или при генерации xml?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 12:58:53
|
zoertan
Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн
|
esteem wrote:
zoertan wrote:Проинициализировал MercRequestDO, не помогло... та же самая "Ошибка SOAP сервера".
Непонятно где ошибка возникает? После отправки на сервер или при генерации xml?
Вот здесь (строчка выделена красным): Если (MercAppDO.status = "ACCEPTED") Тогда // тут шлем запрос на подтверждение Прокси = WSСсылки.WSApplicationManagementsServiceTest.СоздатьWSПрокси("http://api.vetrf.ru/schema/cdm/application/service", "ApplicationManagementServiceBindingQSService", "ApplicationManagementServiceBindingQSPort"); Прокси.Пользователь = login; Прокси.Пароль = password; Результат = Прокси.submitApplicationRequest(SubmitRequestDO.apiKey, MercAppDO); КонецЕсли;
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 13:03:55
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 13:15:10
|
esteem
Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн
|
zoertan wrote:
esteem wrote:
zoertan wrote:Проинициализировал MercRequestDO, не помогло... та же самая "Ошибка SOAP сервера".
Непонятно где ошибка возникает? После отправки на сервер или при генерации xml?
Вот здесь (строчка выделена красным):
Если (MercAppDO.status = "ACCEPTED") Тогда
// тут шлем запрос на подтверждение
Прокси = WSСсылки.WSApplicationManagementsServiceTest.СоздатьWSПрокси("http://api.vetrf.ru/schema/cdm/application/service", "ApplicationManagementServiceBindingQSService", "ApplicationManagementServiceBindingQSPort");
Прокси.Пользователь = login;
Прокси.Пароль = password;
Результат = Прокси.submitApplicationRequest(SubmitRequestDO.apiKey, MercAppDO);
КонецЕсли;
Так ты ответ хочешь получить. Как я понимаю смысл - Отправляешь заявку на выполнение, получаешь ID заявки и статус принята или нет. Потом надо подать запрос на получение результата выполнение заявки.
ResultRequest = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application/ws-definitions", "receiveApplicationResultRequest");
ResultRequest.apiKey = ;
ResultRequest.issuerId = ;
ResultRequest.applicationId = ;
и получаешь ответ что там с ней
Тут хорошо описано
http://help.vetrf.ru/wiki/%D0%9F%D0%BE%D0%B4%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B7%D0%B0%D1%8F%D0%B2%D0%BE%D0%BA_%D0%B2_%D0%92%D0%B5%D1%82%D0%B8%D1%81.API#.D0.92.D0.BE.D0.B7.D0.BC.D0.BE.D0.B6.D0.BD.D1.8B.D0.B5_.D1.81.D1.86.D0.B5.D0.BD.D0.B0.D1.80.D0.B8.D0.B8
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 14:05:49
|
mevgenym
Зарегистрирован: 19/05/2017 14:03:42
Сообщений: 312
Оффлайн
|
на гитхабе есть исходники выросшие из sayunot
|
https://github.com/mevgenym/1c_vetis.api_v1.1
https://github.com/mevgenym/1c_vetis.api
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 14:07:34
|
esteem
Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн
|
mevgenym wrote:на гитхабе есть исходники выросшие из sayunot
А ссылку?)))
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 14:37:51
|
zoertan
Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн
|
и получаешь ответ что там с ней
Это каким образом? Можно поподробнее, плиз, с этим ResultRequest? А вот так это сделать правильно будет?
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 14:39:52
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 14:58:57
|
esteem
Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн
|
zoertan wrote:
и получаешь ответ что там с ней
Это каким образом? Можно поподробнее, плиз, с этим ResultRequest?
А вот так это сделать правильно будет?
Ну и получаешь ответ? Я сейчас делаю обработку работу со справочниками , а не с заявками. Запрос на результат - это примерно тотже запрос на подачу заявки. Вот пример кода, ответ получал дальше не разбирался.
ResultRequest = ФабрикаXD.Создать("http://api.vetrf.ru/schema/cdm/application/ws-definitions", "receiveApplicationResultRequest");
ResultRequest.apiKey = apiKey;
ResultRequest.issuerId = issuerID;
ResultRequest.applicationId = "278448d7-f657-4aac-b4e7-1cef9f5a5151"; // Должен был получить при отправке заявки
EnvelopeDO = ФабрикаXD.Создать("http://schemas.xmlsoap.org/soap/envelope/", "Envelope");
Body = ФабрикаXD.Создать("http://schemas.xmlsoap.org/soap/envelope/", "Body");
EnvelopeDO.Body = Body;
EnvelopeDO.Body.Добавить(ФормаXML.Элемент, ResultRequest.Тип().URIПространстваИмен, "receiveApplicationResultRequest", ResultRequest);
ТелоXML = Новый ЗаписьXML;
ТелоXML.УстановитьСтроку("UTF-8");
ФабрикаXD.ЗаписатьXML(ТелоXML, EnvelopeDO);
ЗапросWeb = Новый HTTPЗапрос("platform/services/ApplicationManagementService");
ЗапросWeb.УстановитьТелоИзСтроки(ТелоXML.Закрыть());
СоединениеWeb = Новый HTTPСоединение("api2.vetrf.ru", 8002, login, password,,Истина);
ОтветWeb = СоединениеWeb.ОтправитьДляОбработки(ЗапросWeb);
Если (ОтветWeb.КодСостояния = 200) Тогда // значит, все ок
// десериализуем
ОтветXML = Новый ЧтениеXML;
ОтветXML.УстановитьСтроку(ОтветWeb.ПолучитьТелоКакСтроку("UTF-8"));
MercAppDO = ФабрикаXD.ПрочитатьXML(ОтветXML, EnvelopeDO.Тип()).Body.receiveApplicationResultResponse.application;
КонецЕсли;
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 15:08:38
|
zoertan
Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн
|
Ну и получаешь ответ?
Ответ приходит, но там у него статус почему-то "REJECTED". В-общем, так: у MercAppDO.status = "ACCEPTED", далее внутри этого условия пишу тот код, что привел выше, там ответ приходит, у получаемого объекта XDTO свойство "status" = REJECTED. Вот так.
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 15:10:22
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 15:15:38
|
lalex23
Зарегистрирован: 10/03/2016 14:26:10
Сообщений: 375
Оффлайн
|
zoertan wrote:
Ну и получаешь ответ?
Ответ приходит, но там у него статус почему-то "REJECTED".
В-общем, так: у MercAppDO.status = "ACCEPTED", далее внутри этого условия пишу тот код, что привел выше, там ответ приходит, у получаемого объекта XDTO свойство "status" = REJECTED. Вот так.
полученный ответ сохрани в xml, там будет видна и причина по которой запрос отклонен
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 15:22:10
|
esteem
Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн
|
zoertan wrote:
Ну и получаешь ответ?
Ответ приходит, но там у него статус почему-то "REJECTED".
В-общем, так: у MercAppDO.status = "ACCEPTED", далее внутри этого условия пишу тот код, что привел выше, там ответ приходит, у получаемого объекта XDTO свойство "status" = REJECTED. Вот так.
REJECTED Заявка отклонена.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 16:15:47
|
zoertan
Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн
|
полученный ответ сохрани в xml, там будет видна и причина по которой запрос отклонен
"Unsupported application data format" - что может значить?
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 16:16:22
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 19/05/2017 16:23:45
|
lalex23
Зарегистрирован: 10/03/2016 14:26:10
Сообщений: 375
Оффлайн
|
zoertan wrote:
полученный ответ сохрани в xml, там будет видна и причина по которой запрос отклонен
"Unsupported application data format" - что может значить?
всё что угодно - проверяйте корректность запроса в первую очередь
для проверки - запрос сохраните в xml и киньте текст сюда, может кто и увидит в чём косяк
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 16:24:30
|
|
 |
|
|
|