SOAP/XML attribute problem

DWinTX

New Member
I am attempting to run a WS operation called CreditCardAuthorization hosted by a credit card processor. After connecting successfully to the webservice, I make this call:

RUN CreditCardAuthorization IN hCCSoap(INPUT cCredentials,
INPUT cApplication,
INPUT cTerm,
INPUT cCard,
INPUT cTrans,
INPUT cAdd,
INPUT cExtended,
OUTPUT cResponse) NO-ERROR.


Progress is creating the SOAP envelope with the first few elements looking like this:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreditCardAuthorization>
<credentials>
<AccountID>XXX</AccountID>
<AccountToken>XXX</AccountToken>
<AcceptorID>XXX</AcceptorID>
</credentials>
<application>
<ApplicationID>XXX</ApplicationID>
<ApplicationName>XXX</ApplicationName>
<ApplicationVersion>XXX</ApplicationVersion>
</application>

However the processor is telling me my operation is failing because I need the webservice URL added as an attribute to the <CreditCardAuthorization> element, like this:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreditCardAuthorization xmlns="https://transaction.ccprocessor.com">
<credentials>
<AccountID>XXX</AccountID>
<AccountToken>XXX</AccountToken>
<AcceptorID>XXX</AcceptorID>
</credentials>
<application>
<ApplicationID>XXX</ApplicationID>
<ApplicationName>XXX</ApplicationName>
<ApplicationVersion>XXX</ApplicationVersion>
</application>

But since Progress creates the CreditCardAuthorization element as part of the SOAP wrapper, I can't control it with the SAX Writer. Does anyone know how I can get Progress to do this? A couple of people have suggested that this is a deficiency in the WSDL, but I can't find a place to add it there. I also added it as the TargetNameSpace and ServiceNameSpace parameters on the CONNECT statement, to no avail.


 
Back
Top