2014-12-03 7 views
0

Я пытаюсь достичь SOAP API с этими ограничениями в инструкции API:301 Ошибка на SOAP API

  1. метод аутентификации http_base_auth, клиентские приложения могут использовать как HTTP и HTTPS протоколы для проверки подлинности.

  2. Подпись по корпоративной учетной записи PaaS & Пароль должен быть передан через заголовки SOAP. SOAP имеет API для установки идентификатора пользователя/пароля для базовой аутентификации HTTP.

Прямо сейчас это то, что у меня есть:

require 'savon' 

client = Savon.client(basic_auth: ['paas_login_info', 'paas_password_info'], wsdl: "http://www.webiste.com/us/paas/s3PaaS.wsdl") 

message = {"CUSTOMER_ID" => 55555555555, "EMPLOYEE_ID" => 1111} 

response = client.call(:s3_paas_add_something, message: message, soap_header: {'login' => 'pass_login_info', 'password' => 'paas_password_info'}) 

p response #=> <h1>Moved Permanently</h1> <p>The document has moved <a href="http://www.website.com/us/paas/PaaSServer.php">here</a>.</p> 

Я дублируя pass_login_info и pass_password_info, потому что я действительно не понимаю, как удовлетворить оба требования, но когда я избавляюсь либо/оба я все еще получаю эту ошибку, когда думаю, что я пинговаю API.

Другое странное примечание, когда я это в SoapUI моя служба не показал каких-либо операций, как это происходит с другими тест-услуг, таких как http://www.webservicex.net/uszip.asmx?WSDL

+0

Добро пожаловать в Переполнение стека. Нет необходимости говорить нам, что вы новичок в Stack Overflow или Ruby, вместо этого просто задавайте хорошие, продуманные и исследованные вопросы, и вы преуспеете. –

ответ

0

Здравствуйте select_the_choice,

Я действительно не см. вопрос, но поскольку я изо всех сил пытался интегрировать платформу magento в приложение rails, я постараюсь вам помочь.

Прежде всего, я предлагаю вам использовать REST, если сможете. Будет намного быстрее, и даже если аутентификация сначала будет немного сложнее, в будущем все будет проще.

Если вы хотите продолжить работу с SOAP, убедитесь, что у вас есть вторая версия савона.

Я не знаю точно, что вы пытаетесь сделать, и каковы ваши конечные точки, но это, как SOAP на запрос Magento должно выглядеть

host = "http://website.com/index.php/api/v2_soap/index/?wsdl=1" 
client = Savon.client(wsdl: host) 

session_id = client.call(:login, message: { 
    username: "YOUR_USERNAME", 
    api_key: "YOUR_PASSWORD" 
}).body[:login_response][:login_return] 

client.call(:customer_customer_create, message: { 
    sessionId: session_id, 
    customerData: [{ 
    firstname: self.profile.first_name, # let's say we are in User model 
    lastname: self.profile.last_name 
    }] 
}) 

Надеется, что это помогает!