(1)От вас отправляется пакет Товары. Поставьте точку останова на строке Ответ = Прокси.SetGoods(Товары); и вычислите выражение "Товары". Если параметр веб-сервиса имеет такой же тип и структуру, значит запрос отправится успешно. Часто бывает, что на входе веб-сервиса тип параметра "string". В таком случае "Товары" надо сериализовать в xml перед запросом и отправить как строку.
Запись = Новый ЗаписьXML;
Прокси.ФабрикаXDTO.ЗаписатьXML(Запись, Товары);
но что-то не сложилось, я не понимаю, что она хочет
Ошибка при вызове метода контекста (ЗаписатьXML)
Прокси.ФабрикаXDTO.ЗаписатьXML(Запись, Товары);
по причине:
Ошибка при записи XDTO
по причине:
Не установлен приемник XML
(7)
(6)
это все, наверное, здорово, но дело происходит на клиентском сервере, ставить туда какое-то левое ПО не очень хотелось бы.
Странно, что нет простых методов, неужели это так сложно...
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьКФайлуXML,"windows-1251");
Запись.ЗаписатьОбъявлениеXML();
ФабрикаXDTO.ЗаписатьXML(Запись, Товары);
Запись.Закрыть();
Кодировку установите какую вам надо, в нашем случае это windows-1251.
Мы при работе с платежными шлюзами стали применять такую схему: все запросы пишутся в промежуточный XML-файл с именем типа НомерЗапроса_ДатаВремя.xml, если шлюз вернул успех - файл удаляется. В случае какой-либо ошибки у нас остается готовый файл с запросом, который можно как быстро изучить самому, так и предоставить в поддержку. Аналогичным образом поступаем и с ответами шлюза. Т.е. в случае какой-либо ошибки у нас в рабочей папке находятся файлы запроса и ответа.
(17) Основной смысл этой идеи в том, что полная расшифровка ответа шлюза избыточна, но иногда эта самая информация может быть нужна. В нашем случае шлюз выдает код результата и код состояния плюс некоторый набор дополнительных полей, который может меняться в разных сочетаниях кода результата и состояния.
Скажем кассиру расшифровываются только явные ошибки: "Неправильный номер абонента", "Недопустимая сумма", "Платежи на данного получателя временно не проводятся" и т.д. Даже если платеж стал в очередь кассиру все равно показываем "Успех". Все остальное "Ошибка, позвоните в офис/техподдержку".
Операторам в офисе показываем больше, здесь, например, будут статусы "В очереди, нет свободных средств на счету", "Ошибка, шлюз провайдера временно недоступен, позвоните туда-то", т.е. расшифровываем те ситуации, которые в пределах их компетенции. Остальное глушится сообщением "Ошибка, позвоните в техподдержку", которая уже и изучает эти файлы. Для поддержки это вообще идеальный вариант, так как видно всё, что отправили, что получили, все допполя и т.п.