I am completely inexperience with this whole SOAP concept so I have no idea what to look for when I see an error. So basically I am trying to pull some data from another company. That company gave me a digital certificate and and some xsd & wsdl files and asked me for my server's IP so they could whitelist it. As I mentioned, I have no idea what to do with the files they gave me, so I uploaded them to my server and then I started googling, and I have pasted together the following code (although I don't even know if it makes sense):
$protected_url = "http://www.myurl.com/WSDLFILE.wsdl";
$my_cert_file = "http://www.myurl.com/CERTFILE.pem";
$client = new SoapClient($protected_url, array('local_cert'=> $my_cert_file,'trace'=>1));
$params->Affiliate->AffiliateID = 555;
$params->Address->AddressLine = "123 Main Street";
$params->Contact = 'No';
$result = $client->QueryAddress($params);
And I get the following error
[10-Apr-2013 18:59:46 America/New_York] PHP Fatal error: Uncaught SoapFault exception: [HTTP] Forbidden in /home/mysite/index.php:15
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://secure....', 'http://www....', 1, 0)
#1 /home/mysite/index.php(15): SoapClient->__call('QueryAddress', Array)
#2 /home/mysite/index.php(15): SoapClient->QueryAddress(Object(stdClass))
#3 {main}
thrown in /home/mysite/index.php on line 15
It's kind of hard to search for help because I dont even know what I'm searching for, so any guidance is appreciated
EDIT: I should also add that I have actually been able to get a successful response by using cURL and setting the "CURLOPT_SSLCERT" option, but I need to use SOAP
(Answered in the comments. Converted to a community wiki answer. See Question with no answers, but issue solved in the comments (or extended in chat) )
The OP wrote:
SOLVED: My problem was the way I was using the
.wsdl
file. I thought I had to upload the one they provided and then use it when creating the SoapClient, but that was not the case. What I needed to was reference their wsdl url, which ended in something likehttps:......asmx?WSDL