title: PHP SOAP API call with XML request
body: <p>I have not worked with SOAP API before.
  I want to execute a SOAP API with XML data request.
  I have tried but did not get success. 
  <a href="https://www.getpayments.com/docs/#processrealtimetokenpayment" rel="nofollow noreferrer">https://www.getpayments.com/docs/#processrealtimetokenpayment</a>
  This is the payment gateway URL which I have want to call.</p>
  
  <p>I have used below code : </p>
  
  <pre><code>$xml = '&lt;?xml version="1.0" encoding="utf-8"?&gt;
    &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:px="https://px.ezidebit.com.au/"&gt;
    &lt;soapenv:Header /&gt;
    &lt;soapenv:Body&gt;
      &lt;px:ProcessRealtimeTokenPayment&gt;
        &lt;px:digitalKey&gt;715C0799-307B-4BF4-7B1D-4153201FC0A1&lt;/px:digitalKey&gt;
        &lt;px:token&gt;3723758&lt;/px:token&gt;
        &lt;px:paymentAmountInCents&gt;1600&lt;/px:paymentAmountInCents&gt;
        &lt;px:customerName&gt;Hiren Patel&lt;/px:customerName&gt;
        &lt;px:paymentReference&gt;123456789&lt;/px:paymentReference&gt;
      &lt;/px:ProcessRealtimeTokenPayment&gt;
    &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;';
  $soapUrl = "https://api.demo.ezidebit.com.au/v3-5/pci?singleWsdl";
  $soap_do = curl_init(); 
  curl_setopt($soap_do, CURLOPT_URL,            $soapUrl );   
  curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10); 
  curl_setopt($soap_do, CURLOPT_TIMEOUT,        10); 
  curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
  curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);  
  curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false); 
  curl_setopt($soap_do, CURLOPT_POST,           true ); 
  curl_setopt($soap_do, CURLOPT_POSTFIELDS,    $xml); 
  curl_setopt($soap_do, CURLOPT_HTTPHEADER,     array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen($xml) )); 
  $result = curl_exec($soap_do);
  $err = curl_error($soap_do);  
  curl_close($soap_do);
  echo "&lt;pre&gt;";print_r($result);
  die;
  </code></pre>
  
  <p>It throws below error : </p>
  
  <blockquote>
    <p>a:ActionNotSupportedThe message with Action
    'ProcessRealtimeTokenPayment' cannot be processed at the receiver, due
    to a ContractFilter mismatch at the EndpointDispatcher. This may be
    because of either a contract mismatch (mismatched Actions between
    sender and receiver) or a binding/security mismatch between the sender
    and the receiver.  Check that sender and receiver have the same
    contract and the same binding (including security requirements, e.g.
    Message, Transport, None).Curl call success.</p>
  </blockquote>
  
  <p>Please anyone can guide me in this?
  Thank you in advance.</p>