Доброго дня.

Необходима интеграция с корзиной сайта, откуда заказы валятся на Magento 1.

Настроено API: есть URL-адрес для подключения с Magento, user и login.

Не понятна сама настройка веб-сервиса в bpm'online. Сталкивался ли кто-то с данной интеграцией, либо может кто-то теоретически понимает это?

Нравится

2 комментария
Лучший ответ

Добрый день!

Не уверен, что есть какой-то готовый коннектор (по крайней мере на маркете я ничего не нашёл), но в любом случае, можно запилить свою интеграцию через свой SOAP сервис. Правда для этого нужны компетенции и в bpm и в api magento.

Дополнение. Подключение посредством SOAP.

Добрый день!

Не уверен, что есть какой-то готовый коннектор (по крайней мере на маркете я ничего не нашёл), но в любом случае, можно запилить свою интеграцию через свой SOAP сервис. Правда для этого нужны компетенции и в bpm и в api magento.

Показать все комментарии

Здравствуйте!
При попытке отправить запрос на получение данных (обращение идет по https)
возникает следующая ошибка.

XMLHttpRequest cannot load https://www.crediweb.lv/axis2/services/Info?wsdl. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://softex-iis:8896' is therefore not allowed access.

Как разрешить доступ к другим сайтам?

Нравится

1 комментарий

Прошу прощения, случайно опубликовалось 2 раза

Показать все комментарии

Здравствуйте!
При попытке отправить запрос на получение данных (обращение идет по https)
возникает следующая ошибка.

XMLHttpRequest cannot load https://www.crediweb.lv/axis2/services/Info?wsdl. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://softex-iis:8896' is therefore not allowed access.

Как разрешить доступ к другим сайтам?

Нравится

11 комментариев

А где именно в IIS нужно добавить свойство
Access-Control-Allow-Origin?

Добавил со звездочкой.
Появилась ещё одна ошибка.
ошибка 1

Uncaught InvalidStateError: Failed to execute 'send' on 'XMLHttpRequest': The object's state must be OPENED. SOAPClient.js:194

ошибка 2

XMLHttpRequest cannot load https://www.crediweb.lv/axis2/services/Info?wsdl. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://softex-iis:8896' is therefore not allowed access. 

Обязательно указывать имя сайта, к которому обращаюсь? Если да, то в каком формате.
https://www.crediweb.lv/axis2/services/Info так
или www.crediweb.lv/axis2/services/Info

Сейчас веб конфиг выглядит так

<system.webServer>
      <handlers>
      ----------параметры----------
      </handlers>
	<httpProtocol>
        <customHeaders>
          <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
      </httpProtocol>
    </system.webServer>

Скорее всего вы добавили не на том сервере.
Добавьте на том, на который вы обращаетесь:

т.е. должно быть так:

<add name="Access-Control-Allow-Origin" value="softex-iis" />

т.е. это надо делать не на softex-iis, а на crediweb.lv.

Что происходит: вы отправляете HTTP запрос в домен crediweb.lv от домена softex-iis. Веб-сервер на crediweb.lv не настроен на прием кросс-доменных запросов (считается не безопасным), поэтому такие запросы отбрасываются, а вам приходит ERROR с текстом из первого поста.

Кстати, из текста ошибки ясно, что сервер таки разрешает кросс-доменные запросы, но вашего локального доменного имени в списке нет. И это правильно, с точки зрения безопасности. Скорее всего, если домен будет не локальным, а чтото вроде tscrm.com - то все будет ОК.

Добрый день.
Скажите, если я прописал данный параметр в конфиге на сервере, должна ли отображаться строка вида "Acces-Control-Allow-Origin: *" в Response Headers запроса?
Как можно добавить данный параметр в заголовок запроса?

Да, в заголовке ответа она должна обязательно присутствовать. Если её не будет, браузер не примет такой ответ.

Если так, то почему в Responce Headers данный параметр не приходит? Возможна ли ситуация, что заголовки переопределяются после составления запроса. Если да, то как это можно исправить?

Request URL:https://www.crediweb.lv/axis2/services/Info?wsdl
Request Headers
Provisional headers are shown
Origin:http://softex-iis:8896
Referer:http://softex-iis:8896/0/Nui/ViewModule.aspx
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id:662B2ABF-4722-49B7-90FA-3857A590FF58
Query String Parametersview sourceview URL encoded
wsdl:

Строку вида

<add name="Access-Control-Allow-Origin" value="*" />

в JS коде также пытался установить заголовки следующим кодом:

xmlHttp.setRequestHeader("Access-Control-Allow-Origin", "*");.

[quote="Пащенко Александр Сергеевич"]Origin:http://softex-iis:8896[/quote]
Вот это и есть та строка, которую Вы ожидаете в запросе.

Показать все комментарии

bpm 5.4 on-site

Как сделать в скрипте HTTP запрос без открытия нового окна?

Например. Мне надо при нажатии на кнопку на некий сервер отправить HTTP GET/POST запрос, чтобы, например, отправилось КП.
http://myserver:4055?exec=sendemail&email=cc-sib@yandex.ru

Как такое сделать?

Нравится

7 комментариев

Илья, эту тему смотрели?
Дополнительно ознакомиться с отправкой GET и POST запросов в C# Вы можете по этой ссылке, пример есть в конфигурации (схема GoogleMapsToolsSchema).

Как подключить библиотеку?

Не удалось найти имя типа или пространства имен "ActiveXObject" (пропущена директива using или ссылка на сборку?)
AccountEditPage.cs

Илья, думаю проще будет использовать код, приведенный во втором варианте(здесь). Так как в случае первого варианта потребуется скачивать и подключать стороннюю библиотеку. Как подключить библиотеку в версии 5.4 описано в этой статье

Написал вот этот код:

System.Net.WebRequest reqGET = System.Net.WebRequest.Create("http://127.0.0.1:4059/callto?number="+Page.PhoneEdit.Text);
System.Net.WebResponse resp = reqGET.GetResponse();
System.IO.Stream stream = resp.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(stream);
string s = sr.ReadToEnd();
Console.WriteLine(s);

На некоторых компьютерах код работает, на каких-то нет.
Там где не работает код пробовал запуск с разных браузеров.
Так же там где не работает в браузер вбивал http://127.0.0.1:4059/callto?number=8913....... - запрос выполняется.

Антивирус и брандмауэр отключал, не помогает.

Илья, как проявляется неработоспособность кода (выводятся ошибки, предупреждения)?

ничего не происходит

Илья, значит при выполнении кода на какой-то из строк происходит свал. Нужно пройти пошагово отладчиком скриптов и тогда будет понятна причина.
Либо альтернатива - заключить код в try - catch с выводом в блоке catch Exception.

Показать все комментарии