SOAP API上的301错误

时间:2014-12-03 21:41:08

标签: ruby soap soapui savon

我正在尝试根据API说明使用这些限制来访问SOAP API:

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

  2.   
  3. PaaS企业帐户登录&密码必须通过SOAP标头传递。 SOAP有一个API来设置HTTP基本身份验证的用户ID /密码。

  4.   

现在这就是我所拥有的:

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

1 个答案:

答案 0 :(得分: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
  }]
})

希望它有所帮助!