2012-02-28 10 views
1

e-コノミックと呼ばれるウェブサービスに接続して、私のwebshopのデータをe-コノミックの簿記システムと同期させたいと考えています。しかし、私は接続を開始する方法を最初に固執しています。sudsを使ってwebserviceに接続するには?

私は、ユーザー名とパスワードを電子conomicアカウントを持っていると私は電話をかけるために泡ライブラリをインストール:

>>> from suds.client import Client 
>>> c = Client('https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL') 
>>> 

次に何?

ドキュメントはhereです。私がしたいことは、hereのような新しい注文を作成することです。私のアプリの一部である

私のコードは、ちょうど開始され、私は、SOAPリクエストで私のアカウントを指定する方法がわからない:

from suds.client import Client 

class Economic(NewBaseHandler): 

    def get(self): 
     url = 'https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL' 
     client = Client(url) 
     self.response.out.write('client: %s' % str(client)) 

あなたはどのように進めるように私に教えてください。

+0

にここで答えへのリンク、すべてのXMLレスポンスを取得します: http://stackoverflow.com/a/27302096/4325298 –

答えて

3

の方法でClientのWebサービスに電話する必要があります。

>>> from suds.client import Client 
>>> c = Client('https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL') 
>>> c.service.Account_Create(10, '20', 'ProfitAndLoss') 
------------------------------------------------------------ 
Traceback (most recent call last): 
    File "<ipython console>", line 1, in <module> 
    File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 240, in __call__ 
    return target.call(*args, **kwargs) 
    File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 379, in call 
    return method(*args, **kwargs) 
    File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 240, in __call__ 
    return target.call(*args, **kwargs) 
    File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 422, in call 
    return client.invoke(args, kwargs) 
    File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 480, in invoke 
    result = self.send(msg) 
    File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 511, in send 
    result = self.failed(binding, e) 
    File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/client.py", line 562, in failed 
    r, p = binding.get_fault(reply) 
    File "/usr/lib/python2.7/site-packages/suds-0.3.6-py2.7.egg/suds/bindings/binding.py", line 226, in get_fault 
    raise WebFault(p, faultroot) 
WebFault: Server raised fault: 'Economic.Api.Exceptions.AuthenticationException(E02250): User is not authenticated. Access denied. {id=131496672}' 

ユーザーが認証されていないため、このエラーが発生しました。ユーザーを認証するためのサービスやキーがあります。あなたはその鍵を必要とし、サービスを呼び出すことができます。 -

+1

良い、私ができました(10、 '20'、 'ProfitAndLoss') 'Output: '(AccountHandle){ Number = 10 } 'あなたが投稿したコードを認証して実行してください。 –

0
#Works only in 2.7 Python. Does not work in Python 3.0 version 

from suds.client import Client 
from suds.sax.text import Raw 

client = Client('https://www.e-conomic.com/secure/api1/EconomicWebService.asmx?WSDL') 
xml = Raw('--Paste your entire xml --') 
Response_XML= (client.service.MethodName(__inject={'msg':xml})) 

あなたはResponse_XML変数

関連する問題