2014-12-03 31 views
0

我想每个API的说明这些限制,达到一个SOAP API:301错误的SOAP API

  1. 验证方法是http_base_auth,客户端应用程序可以利用HTTP和HTTPS协议进行身份验证。

  2. PaaS公司帐户登录&密码必须通过SOAP标头传递。 SOAP有一个API来设置HTTP基本认证的用户ID /密码。

现在这就是我:

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_infopass_password_info,因为我真的不知道如何满足两方面的要求,但是当我摆脱的任一/两者我仍然得到这个错误,当我认为我ping API。

其他怪异的音符,当我把这个变成SOAPUI我的服务没有表现出任何的操作,就像它与其他测试服务确实喜欢http://www.webservicex.net/uszip.asmx?WSDL

+0

欢迎来到Stack Overflow。没有必要告诉我们你是否是Stack Overflow或Ruby的新手,相反,只要问好,仔细考虑和研究问题,你就会做得很好。 – 2014-12-03 21:47:09

回答

0

你好select_the_choice,

我真的不看到这个问题,但由于我已经挣扎了足够的时间将magento平台整合到rails应用程序中,我会尽力帮助你。

首先我建议你使用REST,如果可以的话。速度会更快,即使身份验证看起来有点难度,未来一切都会变得更加容易。

如果您想继续使用SOAP,请确保您有第二版savon。

我不知道到底什么是你想要做什么是你的终点,但是这是一个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 
    }] 
}) 

希望它能帮助!