|
[Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Интеграция с 1С  XML
Индекс форума » Компонент МЕРКУРИЙ
Автор Сообщение
zoertan


Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн

Возвращаясь к решению от sayunot



Товарищи, подскажите, пожалуйста, неспециалисту: там, где шлем запрос на подтверждение, - как правильно вызвать метод submitApplicationRequest? Т.е. какое application ему надо передать в качестве параметра? Пробовал передать MercAppDO, но тут он снова ругался на ошибку SOAP, т.е. от чего пытались уйти - к тому и вернулись...
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);

Что-то типа такого, может на мысль наведет
zoertan


Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн

Проинициализировал MercRequestDO, не помогло... та же самая "Ошибка SOAP сервера".
esteem


Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн

zoertan wrote:Проинициализировал MercRequestDO, не помогло... та же самая "Ошибка SOAP сервера".


Непонятно где ошибка возникает? После отправки на сервер или при генерации xml?
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

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
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
esteem


Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн

mevgenym wrote:на гитхабе есть исходники выросшие из sayunot


А ссылку?)))
zoertan


Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн

и получаешь ответ что там с ней


Это каким образом? Можно поподробнее, плиз, с этим ResultRequest?

А вот так это сделать правильно будет?

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 14:39:52

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;

КонецЕсли;
zoertan


Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн

Ну и получаешь ответ?


Ответ приходит, но там у него статус почему-то "REJECTED".

В-общем, так: у MercAppDO.status = "ACCEPTED", далее внутри этого условия пишу тот код, что привел выше, там ответ приходит, у получаемого объекта XDTO свойство "status" = REJECTED. Вот так.

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 15:10:22

lalex23


Зарегистрирован: 10/03/2016 14:26:10
Сообщений: 375
Оффлайн

zoertan wrote:
Ну и получаешь ответ?


Ответ приходит, но там у него статус почему-то "REJECTED".

В-общем, так: у MercAppDO.status = "ACCEPTED", далее внутри этого условия пишу тот код, что привел выше, там ответ приходит, у получаемого объекта XDTO свойство "status" = REJECTED. Вот так.


полученный ответ сохрани в xml, там будет видна и причина по которой запрос отклонен
esteem


Зарегистрирован: 19/04/2017 13:43:18
Сообщений: 85
Оффлайн

zoertan wrote:
Ну и получаешь ответ?


Ответ приходит, но там у него статус почему-то "REJECTED".

В-общем, так: у MercAppDO.status = "ACCEPTED", далее внутри этого условия пишу тот код, что привел выше, там ответ приходит, у получаемого объекта XDTO свойство "status" = REJECTED. Вот так.



REJECTED Заявка отклонена.
zoertan


Зарегистрирован: 18/05/2017 18:05:16
Сообщений: 11
Оффлайн

полученный ответ сохрани в xml, там будет видна и причина по которой запрос отклонен


"Unsupported application data format" - что может значить?

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 16:16:22

lalex23


Зарегистрирован: 10/03/2016 14:26:10
Сообщений: 375
Оффлайн

zoertan wrote:
полученный ответ сохрани в xml, там будет видна и причина по которой запрос отклонен


"Unsupported application data format" - что может значить?


всё что угодно - проверяйте корректность запроса в первую очередь
для проверки - запрос сохраните в xml и киньте текст сюда, может кто и увидит в чём косяк

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/05/2017 16:24:30

 
Индекс форума » Компонент МЕРКУРИЙ
Перейти:   

Powered by JForum 2.1.8 © JForum Team