Okay, the following is the SOAP client which I mocked up to test this WSDL - Note that I have deliberately obscured your customer ID number in the example below.
#!/opt/bin/perl
use SOAP::Lite +trace;
my $result = SOAP::Lite
->service('http://www.thedialogcenter.com/EncryptionService.ws
+dl')
->Encrypt('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Testing');
print $result, "\n";
Including the
SOAP::Lite trace showed me that the following request was sent to the location
https://secure.arkansasbluecross.com/WebServices/EncryptionService.asmx.
Accept: text/xml
Accept: multipart/*
Content-Length: 529
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.arkbluecross.com/WebServices/EncryptionService
+/Encrypt"
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-EN
+C="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle=
+"http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://sc
+hemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/X
+MLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"><SOAP
+-ENV:Body><Encrypt xmlns=""><parameters>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+xxx</parameters><c-gensym4 xsi:type="xsd:string">Testing</c-gensym4><
+/Encrypt></SOAP-ENV:Body></SOAP-ENV:Envelope>
To this, the server responded:
Cache-Control: private
Date: Wed, 14 Apr 2004 02:34:05 GMT
Server: Microsoft-IIS/5.0
Content-Length: 984
Content-Type: text/xml; charset=utf-8
Client-Date: Wed, 14 Apr 2004 02:35:30 GMT
Client-Peer: 209.184.52.154:443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU
+=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS I
+ncorp.by Ref. LIABILITY LTD.(c)97 VeriSign
Client-SSL-Cert-Subject: /C=US/ST=Arkansas/L=Little Rock/O=Arkansas Bl
+ue Cross and Blue Shield A Mutual Insurance Company/OU=Infrastructure
+ Management/OU=Terms of use at www.verisign.com/rpa (c)00/CN=secure.a
+rkansasbluecross.com
Client-SSL-Cipher: RC4-MD5
Client-SSL-Warning: Peer certificate not verified
X-AspNet-Version: 1.1.4322
X-Powered-By: ASP.NET
<?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>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>System.Web.Services.Protocols.SoapException: Server
+ was unable to process request. ---> System.ArgumentNullException:
+ ArgumentNull_String
Parameter name: g
at System.Guid..ctor(String g)
at ABCBS.IWD.WebServices.EncryptionService.GetCustomerKeys(String C
+ustID, Int32 Timeout) in C:\Projects\Common\WebServicesSolution\WebSe
+rvices\EncryptionService.asmx.vb:line 104
at ABCBS.IWD.WebServices.EncryptionService.Encrypt(String CustID, S
+tring Data) in C:\Projects\Common\WebServicesSolution\WebServices\Enc
+ryptionService.asmx.vb:line 50
--- End of inner exception stack trace ---</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
It would appear that
SOAP::Lite is failing to encode the customer ID parameter correctly. Whilst this doesn't answer your question as to how to solve this problem, it may provide you with some additional information in your search for an answer. Note that there are still some gaps in the WSDL implementation in
SOAP::Lite and as such, you may be better off to specify the service details manually or build the body using
SOAP::Data::Builder.
perl -le "print unpack'N', pack'B32', '00000000000000000000001011001110'"