Hey all,
I recently started working with an ecommerce vendor and was looking at
their WSDL to get an idea of how the data should go over. Now i've
worked with a different vendor in the past who also used WSDL/SOAP for
data exchange and have found some pecularities with this new vendor.
Normally, what i'm used to seeing is is a definition of the method like
so in the WSDL
<wsdl:operati on name="ccValidat eCard" parameterOrder= "merchantNa me ccn
expdate maskedCcn cardType returnCode">
<wsdl:input message="impl:c cValidateCardRe quest"
name="ccValidat eCardRequest"/>
<wsdl:output message="impl:c cValidateCardRe sponse"
name="ccValidat eCardResponse"/>
</wsdl:operation>
Normally I would building up my soap object using
soapobject.ccVa lidateCard (param, param, etc)
with the new vendor, the operations are defined differently..
<wsdl:operati on name="PaymentCC ">
<wsdl:input message="tns:Pa ymentCCSoapIn"/>
<wsdl:output message="tns:Pa ymentCCSoapOut"/>
</wsdl:operation>
It seems they are using complex types, the element PaymentCC is defined
as
<s:element name="PaymentCC ">
−
<s:complexTyp e>
−
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="creditCar dInfo"
type="s1:CCStru ct"/>
</s:sequence>
</s:complexType>
</s:element>
And when i look at CCStruct i see..
<s:complexTyp e name="CCStruct" >
−
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="dUserID" type="s:double"/>
<s:element minOccurs="1" maxOccurs="1" name="dBaseAmou nt"
type="s:double"/>
<s:element minOccurs="0" maxOccurs="1" name="strApplic ationID"
type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="dAmount" type="s:double"/>
<s:element minOccurs="0" maxOccurs="1" name="dBaseAmou nts"
type="s1:ArrayO fDouble"/>
<s:element minOccurs="1" maxOccurs="1" name="dConvFee"
type="s:double"/>
<s:element minOccurs="0" maxOccurs="1" name="strAcctNu m"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strExpDat e"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strCVV2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strAcctHo lderName"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strAcctHo lderAddress1"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strAcctHo lderAddress2"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strCity" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strState"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strCountr y"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strEmail"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strHomePh one"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strBusine ssPhone"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strTransa ctionData"
type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="bSignatur eFlag"
type="s:boolean "/>
<s:element minOccurs="0" maxOccurs="1" name="strSource ID"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strTrackD ata"
type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="transacti onSource"
type="s1:Transa ctionSource"/>
<s:element minOccurs="1" maxOccurs="1" name="bDelayCap ture"
type="s:boolean "/>
<s:element minOccurs="1" maxOccurs="1" name="iTimeout" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="cde"
type="s1:ArrayO fString"/>
<s:element minOccurs="0" maxOccurs="1" name="strCardTy pe"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strCustom erID"
type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="strAcctHo lderAddress"
type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="dFee" type="s:double"/>
<s:element minOccurs="0" maxOccurs="1" name="strZipCod e"
type="s:string"/>
</s:sequence>
</s:complexType>
So the issue i'm having is i don't see a method expecting parameters in
the WSDL, how am i supposed to send data with the webservice?
Thanks
-John