在我的一个应用程序中,我在 GAE python 上使用SUDS WSDL(SOAP) Web 服务。
我的Py 代码:
url = 'http://203.215.51.43/Gateway/Execute?WSDL'
client = Client(url)
print client
所以它在服务器控制台打印
Suds ( https://fedorahosted.org/suds/ ) version: 0.4 GA build: R699-20100913
Service ( GatewayService ) tns="urn:fks:jcaps:gateway"
Prefixes (2)
ns0 = "http://fks.com/gtwy"
ns1 = "urn:fks:jcaps:gateway:JavaException"
Ports (1):
(Execute)
Methods (1):
redeem(xs:string SessionId, xs:string TerminalId, xs:string StoreCod
e, xs:string CashMemoNo, xs:string CashMemoDate, xs:double InvoiceAmount, xs:str
ing TimeStamp, xs:string CashierId, xs:string MerchantId, ns0:SPCReqDtls SPCReqD
tls, ns0:VoucherReqDtls[] VoucherReqDtls, ns0:CardReqDtls CardReqDtls, )
Types (1):
ns1:JavaExceptionType
实际上可以在兑换方法中传递字符串、双精度类型的值,但不能传递数组/列表类型,
result = client.service.redeem(SessionId=result['SessionId'], StoreCode='4739', TerminalId='T1081', TimeStamp='01-01-2011 01:01:00.000')
但我无法在这里传递VoucherReqDtls数组
这个 VoucherReqDtls的WSDL 的 XML代码如下,
<!--Zero or more repetitions:-->
<gtwy:VoucherReqDtls>
<gtwy:VoucherType>GV</gtwy:VoucherType>
<!--1 or more repetitions:-->
<gtwy:VoucherReq>
<gtwy:VoucherNo>344234242</gtwy:VoucherNo>
</gtwy:VoucherReq>
<gtwy:VoucherReq>
<gtwy:VoucherNo>675685858</gtwy:VoucherNo>
</gtwy:VoucherReq>
</gtwy:VoucherReqDtls>
那么我如何在兑换方法中传递VoucherReqDtls数组/列表,这里 VoucherType 是GV并且VoucherNo的计数可能不止一个。