I do not know what exactly happening with me. I am trying to call soap service but im not getting any response.
function soap_call(){
var wsUrl = "https://ws.cert.transactionexpress.com/portal/merchantframework/MerchantWebServices-v1?wsdl";
var soapRequest =
'<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://postilion/realtime/merchantframework/xsd/v1/"> \
<SOAP-ENV:Body> \
<v1:UpdtRecurrProfRequest> \
<v1:merc> \
<v1:id>7777778598</v1:id> \
<v1:regKey>BLHP7DK5W385J6WZ</v1:regKey> \
<v1:inType>1</v1:inType> \
<v1:prodType>5</v1:prodType> \
</v1:merc> \
<v1:cust> \
<v1:type>0</v1:type> \
<v1:contact> \
<v1:fullName>Test Person</v1:fullName> \
<v1:addrLn1>123 Main</v1:addrLn1> \
<v1:addrLn2>Second Floor</v1:addrLn2> \
<v1:city>Gilbert</v1:city> \
<v1:state>AZ</v1:state> \
<v1:zipCode>85296</v1:zipCode> \
<v1:type>1</v1:type> \
<v1:stat>1</v1:stat> \
</v1:contact> \
<v1:pmt> \
<v1:type>0</v1:type> \
<v1:card> \
<v1:pan>4485896261017708</v1:pan> \
<v1:sec>999</v1:sec> \
<v1:xprDt>1602</v1:xprDt> \
</v1:card> \
<v1:ordNr>Cust Ref ID Can be used for extra info</v1:ordNr> \
<v1:desc>Can be used to name wallet again</v1:desc> \
<v1:indCode>2</v1:indCode> \
</v1:pmt> \
</v1:cust> \
</v1:UpdtRecurrProfRequest> \
</SOAP-ENV:Body> \
</SOAP-ENV:Envelope>' ;
jQuery.ajax({
type: "POST",
url: wsUrl,
contentType: "text/xml; charset=\"utf-8\"",
dataType: "xml",
data: soapRequest,
//processData: false,
//async:true,
headers: {
SOAPAction: "UpdtRecurrProf"
},
complete: function (xmlHttpRequest) {
alert(xmlHttpRequest.responseXML);
},
});
}
I tried to call using this link , then it gave me correct response.
I do not have expertise in soap. I will appreciate if anyone can help me out from here.
Just checked your request with a Postman - there's everything absolutely fine with a request itself. Here's the response I had:
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:UpdtRecurrProfResponse xmlns="http://postilion/realtime/portal/soa/xsd/Faults/2009/01" xmlns:ns2="http://postilion/realtime/merchantframework/xsd/v1/">
<ns2:custId>1450956517822188336</ns2:custId>
<ns2:pmtId>1450956517853193808</ns2:pmtId>
<ns2:rspCode>00</ns2:rspCode>
</ns2:UpdtRecurrProfResponse>
</S:Body>
</S:Envelope>
The problem appears because of you use javascript and same origin policy doesn't allow you to request domains, which are different from yours - this helps to protect from XSS attacks.
It could be possible to request remote host though, if it provides a CORS header, like Access-Control-Allow-Origin: *
, which allows all domains to request it, but looking at the response, it does not return this header it this case:
Cache-Control → private
Content-Encoding → gzip
Content-Type → text/xml;charset=utf-8
Date → Thu, 24 Dec 2015 11:28:37 GMT
Server → WebServer
Transfer-Encoding → chunked
Also you should see this error message in your browser console, which approves my suggestion.
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource
So the problem is not with SOAP request itself, but with that you try to request it via javascript. Make a request through on your backend (PHP for instance) - and it should go smoothly.