I am attempting to send a purchase request string to a webservice on a remote site I am able to successfully send the quoterequest using Msxml2.ServerXM LHTTP on one page and parse the response. When I try to send the purchaserequest on the next page to the same URL, I get an "Unable to Parse" error and the POST never leaves my server. Please help!
Working POST (quoterequest)
"Broken" POST (purchasereques t)
Thanx again for any help.
Working POST (quoterequest)
Code:
<%@ LANGUAGE="VBSCRIPT"%>
<!-- #include virtual="/COMMON/global.inc" -->
<%
'********************************************
' BUILD XML AND SEND TO CSA
'********************************************
TOTAL_PREMIUM = 0
ERROR = 0
ERROR_MESSAGE = ""
'strXml = "<?xml version='1.0'?>"
strXml = "<?xml version='1.0'?> "
strXml = strXml & "<quoterequest>"
strXml = strXml & "<aff>83079568</aff>"
strXml = strXml & "<producer>83079568</producer>"
strXml = strXml & "<productclass>FREESTYLELUXE</productclass>"
strXml = strXml & "<bookingreservno></bookingreservno>"
strXml = strXml & "<numinsured>" & session("NUMBER_OF_TRAVELERS") & "</numinsured>"
strXml = strXml & "<tripcost>" + session("TOTAL_TRIP_COST") + "</tripcost>"
strXml = strXml & "<departdate>" & strDepartureDate & "</departdate>"
strXml = strXml & "<returndate>" & strReturnDate & "</returndate>"
strXml = strXml & "<initdate>" & strInitPaymentDate & "</initdate>"
strXml = strXml & "<finalpaymentdate>" & strFinalPaymentDate & "</finalpaymentdate>"
strXml = strXml & "<travelers>"
For n = 1 to session("NUMBER_OF_TRAVELERS")
strXml = strXml & "<traveler>"
strXml = strXml & "<age>" & getAge(session("TRAV"&n&"_DOB")) & "</age>"
strXml = strXml & "</traveler>"
Next
strXml = strXml & "</travelers>"
strXml = strXml & "</quoterequest>"
strXml = "&xmlrequeststring=" & Server.URLEncode(strXml)
set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
objHttp.open "POST","https://www.csatravelprotection.com/jsp/getrequest.jsp", false
objHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHttp.send strXml
strStatus = objHTTP.status
strStatusText = objHTTP.statusText
strResponseText = objHTTP.responseText
'********************************************
' Error Variables
'********************************************
session("strRequestString") = strXml
session("strResponseXml") = strResponseText
'********************************************
' TRANSLATE RESPONSE INTO XML DOC
'********************************************
set xmlResponseDoc = CreateObject("MSXML2.DOMDocument")
xmlResponseDoc.setProperty "ServerHTTPRequest", True
xmlResponseDoc.async = False
xmlResponseDoc.LoadXML strResponseText
strResponseXml = xmlResponseDoc.xml
strResponseXml = Replace(strResponseXml, "<", "<")
strResponseXml = Replace(strResponseXml, ">", ">")
strResponseXml = Replace(strResponseXml, chr(10), "<BR>")
xmlResponseDocStatus = ""
'********************************************
' PARSE QUOTE FROM RESPONSE XML
'********************************************
if (strStatus = 200) then
TOTAL_PREMIUM = xmlResponseDoc.selectSingleNode("/quoteresponse/price").text
SET oErrorNode = xmlResponseDoc.selectSingleNode("//errormessage")
if Not oErrorNode Is Nothing then
ERROR_MESSAGE = oErrorNode.text
end if
else
ERROR = 1
ERROR_MESSAGE = "Error Connecting to CSA"
response.Redirect("csa_error.asp?PRODUCT=CSA-LUXE&SITE=" & GLOBAL_SITE_ABBR & "&ERROR_TEXT=" & server.urlencode(ERROR_MESSAGE))
end if
'********************************************
' SERVER ERROR CHECKING
'********************************************
if err.Number <> 0 Then
ERROR = 1
if (err.Description <> "Object required" AND err.Description <> "Unspecified error") then
ERROR_MESSAGE = err.Description & " (" & err.Number & ")"
else
ERROR_MESSAGE = "CSA's Travel Insurance System is not responding. Please try again later..."
end if
err.Clear
response.Redirect("csa_error.asp?PRODUCT=CSA-LUXE&SITE=" & GLOBAL_SITE_ABBR & "&ERROR_TEXT=" & server.urlencode(ERROR_MESSAGE))
end if
Set objhttp = nothing
Code:
<%@ LANGUAGE="VBSCRIPT"%>
<!-- #include virtual="/COMMON/global.inc" -->
<%
********************************************
' BUILD XML AND SEND TO CSA
'********************************************
ERROR_TEXT = ""
STATUS_CODE = 0
strXml = "<?xml version='1.0'?> "
strXml = strXml & "<purchaserequest>"
strXml = strXml & "<actioncode>NEW</actioncode>"
strXml = strXml & "<aff>83079568</aff>"
strXml = strXml & "<producer>83079568</producer>"
strXml = strXml & "<productclass>FREESTYLELUXE</productclass>"
strXml = strXml & "<bookingreservno></bookingreservno>"
strXml = strXml & "<airflightflag>0</airflightflag>"
strXml = strXml & "<printpolconfltr>3</printpolconfltr>"
strXml = strXml & "<emailaddress>policies@utravelpro.com</emailaddress>"
strXml = strXml & "<agentid></agentid>"
strXml = strXml & "<agentemail>sales@utravelpro.com</agentemail>"
strXml = strXml & "<numinsured>1</numinsured>"
strXml = strXml & "<tripcost>1000</tripcost>"
strXml = strXml & "<departdate>2010-10-28</departdate>"
strXml = strXml & "<returndate>2010-10-29</returndate>"
strXml = strXml & "<initdate>2010-05-05</initdate>"
strXml = strXml & "<finalpaymentdate>2010-05-07</finalpaymentdate>"
strXml = strXml & "<travelers>"
strXml = strXml & "<traveler>"
strXml = strXml & "<travelerfirstname>Alex</travelerfirstname>"
strXml = strXml & "<travelerlastname>Gonser</travelerlastname>"
strXml = strXml & "<age>33</age>"
strXml = strXml & "</traveler>"
strXml = strXml & "</travelers>"
strXml = strXml & "<address1>5530 Melshire Dr</address1>"
strXml = strXml & "<address2></address2>"
strXml = strXml & "<city>Dallas</city>"
strXml = strXml & "<state>TX</state>"
strXml = strXml & "<zipcode>75230</zipcode>"
strXml = strXml & "<country>United States</country>"
strXml = strXml & "<telephonehome>9999999999</telephonehome>"
strXml = strXml & "<destination>Australia</destination>"
strXml = strXml & "<supplier>Diller & Fisher</supplier>"
strXml = strXml & "<airline>American</airline>"
strXml = strXml & "<bebficiaryfirstname>Trudi</beneficiaryfirstname>"
strXml = strXml & "<bebficiarylastname>Gonser</beneficiarylastname>"
strXml = strXml & "<beneficiaryrelationship>Mother</beneficiaryrelationship>"
strXml = strXml & "<price>86</price>"
strXml = strXml & "<paymentmethod>Vi</paymentmethod>"
strXml = strXml & "<ccorcheckno>4111111111111111</ccorcheckno>"
strXml = strXml & "<ccexpiration>1210</ccexpiration>"
strXml = strXml & "<ccname>Alex Gonser</ccname>"
strXml = strXml & "<cczipcode>75230</cczipcode>"
strXml = strXml & "</purchaserequest>"
strXml = "&xmlrequeststring=" & Server.URLEncode(strXml)
'********************************************
' SEND XML HTTP POST
'********************************************
set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
objHTTP.Open "POST", "https://www.csatravelprotection.com/jsp/getrequest.jsp", False
objHTTP.ContentLength = strXml.Length
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send strXml
strStatus = objHTTP.status
strStatusText = objHTTP.statusText
strResponseText = objHTTP.responseText
'********************************************
' Error Variables
'********************************************
session("strRequestString") = strXml
session("strResponseXml") = strResponseText
'********************************************
' TRANSLATE RESPONSE INTO XML DOC
'********************************************
Set xmlResponseDoc = CreateObject("MSXML2.DOMDocument")
xmlResponseDoc.setProperty "ServerHTTPRequest", True
xmlResponseDoc.async = False
xmlResponseDoc.LoadXML strResponseText
strResponseXml = xmlResponseDoc.xml
strResponseXml = Replace(strResponseXml, "<", "<")
strResponseXml = Replace(strResponseXml, ">", ">")
strResponseXml = Replace(strResponseXml, chr(10), "<BR>")
xmlResponseDocStatus = ""
'********************************************
' PARSE QUOTE FROM RESPONSE XML
'********************************************
if (strStatus = 200) then
STATUS_CODE = xmlResponseDoc.selectSingleNode("//intStatusCode").text
POLICY_NUMBER = xmlResponseDoc.selectSingleNode("//strPolicyNumber").text
ORDER_NUMBER = xmlResponseDoc.selectSingleNode("//strConfirmationNumber").text
ERROR_MESSAGE = xmlResponseDoc.selectSingleNode("//strStatusMessage").text
MESSAGE = xmlResponseDoc.selectSingleNode("//strMessage").text
MISSING_INPUT = xmlResponseDoc.selectSingleNode("//strMissingInput").text
ERROR_KEY = xmlResponseDoc.selectSingleNode("//strErrorKey").text
ERROR_ID = xmlResponseDoc.selectSingleNode("//strErrorID").text
TOTAL_BILLED = xmlResponseDoc.selectSingleNode("//dblAmountBilled").text
else
STATUS_CODE = "-1"
ERROR_MESSAGE = "Error Connecting to our Partner System"
end if
set objHttp = nothing
set xmlResponseDoc = nothing