2015-08-18 66 views
0

我嘗試在python中使用affiliatewindow - https://www.affiliatewindow.com - api。 http://v3.core.com.productserve.com/ProductServeService.wsdlpython soap suds authenticate to affiliatewindow

在文檔:

認證SOAP-Header元素必須以每單個請求被髮送。

sApiKey(必填) 用戶特定的密鑰進行身份驗證的用戶(ProductServe API(櫥窗客戶端)密碼) 值類型:String

,但它並沒有給這頭將如何看待任何例子。

我的代碼:

from suds.xsd.doctor import ImportDoctor, Import 
from suds.client import Client 

imp = Import('http://schemas.xmlsoap.org/soap/encoding/') 
imp.filter.add('http://v3.core.com.productserve.com/') 
d = ImportDoctor(imp) 
url = 'http://v3.core.com.productserve.com/ProductServeService.wsdl' 

client = Client(url, doctor=d) 

ssn = '<urn:sApiKey>[the-api-key]</urn:sApiKey>' 
client.set_options(soapheaders=ssn) 

result = client.service.getMerchantList() 
print result 

但結果是我得到的是:

suds.WebFault: Server raised fault: 'Authentication Failed' 

任何想法如何認證?謝謝!

-----------------已解決--------------------------- -----

更多的研究後,我發現紅寶石例如,轉換爲蟒蛇,這是解決方案:

auth = client.factory.create('UserAuthentication') 
auth.sApiKey = [api-key] 
client.set_options(soapheaders=auth) 

謝謝!

+0

如果這是你的解決方案,你應該回答自己的問題。 ...我想你甚至可以得到它的徽章。 –

+0

添加了答案,謝謝! – biancamihai

回答

0

更多的研究後,我發現紅寶石例如,轉換爲蟒蛇,這是解決方案:

auth = client.factory.create('UserAuthentication') 
auth.sApiKey = [api-key] 
client.set_options(soapheaders=auth)