OneShopNotificationListener.asp

From Developer's API

(Difference between revisions)
 
Line 2: Line 2:
 
<!-- #INCLUDE file="../Library/OneShopAPI.asp" -->
 
<!-- #INCLUDE file="../Library/OneShopAPI.asp" -->
 
<%
 
<%
set requestBodyXML = createObject("MSXML2.DOMDocument.4.0")
+
set requestBodyXML = createObject("MSXML2.DOMDocument.4.0")
set apiResultXML = createObject("MSXML2.DOMDocument.4.0")
+
set apiResultXML = createObject("MSXML2.DOMDocument.4.0")
 
+
dim xmlErr
+
dim result
+
dim notificationType
+
dim token
+
 
+
'Create instance of OneShopAPI which acts as a wrapper to the API
+
Set oneShopApiWrapper = new OneShopApi
+
 
+
'TODO: Add your merchant id
+
oneShopApiWrapper.MerchantID = ""
+
'TODO: Add to your merchant api key
+
oneShopApiWrapper.MerchantKey = ""
+
+
oneShopApiWrapper.ApiUrl = "https://www.mcssl.com"
+
 
+
'Load the request body into XML
+
requestBodyXML.load(request.binaryread(request.TotalBytes))
+
 
+
'Check that the xml was loaded correctly
+
if (requestBodyXML.parseError.errorCode = 0) then
+
 
 
'Extract the type of notification is being sent
+
dim result
notificationType = requestBodyXML.documentElement.nodeName
+
dim notificationType
+
dim token
'Extract the token from the request
+
token = requestBodyXML.SelectSingleNode(notificationType & "/Token").text
+
+
'Get data from the API depending on what notification type was sent
+
select case notificationType
+
case "NewOrder"
+
+
result = oneShopApiWrapper.GetOrderById(token)
+
case else
+
'May have other types of notifications in the future
+
end select
+
 
 
'Load the result from the API into XML
+
' Create instance of OneShopAPI which acts as a wrapper to the API
apiResultXML.Load(result)
+
Set oneShopApiWrapper = new OneShopApi
 
 
'Check that the result has been parsed into XML
+
' TODO: Add your merchant id
if (apiResultXML.parseError.errorCode = 0) then
+
oneShopApiWrapper.MerchantID = ""
 +
' TODO: Add to your merchant api key
 +
oneShopApiWrapper.MerchantKey = ""
 +
oneShopApiWrapper.ApiUrl = "https://www.mcssl.com"
 +
 
 +
' Load the request body into XML
 +
requestBodyXML.load(request.binaryread(request.TotalBytes))
 +
 +
' Check that the xml was loaded correctly
 +
if (requestBodyXML.parseError.errorCode = 0) then
 
 
'Get the success attribute of the result
+
' Extract the type of notification is being sent
apiSuccess = apiResultXML.selectSingleNode("/Response").getAttribute("success")
+
notificationType = requestBodyXML.documentElement.nodeName
 +
 +
' Extract the token from the request
 +
token = requestBodyXML.SelectSingleNode(notificationType & "/Token").text
 +
 +
' Get data from the API depending on what notification type was sent
 +
select case notificationType
 +
case "NewOrder"
 
 
'Check if the API returned an error
+
result = oneShopApiWrapper.GetOrderById(token)
if apiSuccess = "true" then
+
case else
'TODO: Do something with the apiResultXML
+
' May have other types of notifications in the future
 
+
end select
else
+
'TODO: Do something with the error returned by the API
+
' Load the result from the API into XML
end if
+
apiResultXML.Load(result)
else
+
'TODO: Do something with the xmlErr to either notify or log that the XML could not be parsed
+
' Check that the result has been parsed into XML
end if
+
if (apiResultXML.parseError.errorCode = 0) then
else
+
'TODO: Do something with the xmlErr to either notify or log that the XML could not be parsed
+
' Get the success attribute of the result
end if
+
apiSuccess = apiResultXML.selectSingleNode("/Response").getAttribute("success")
 
+
 +
' Check if the API returned an error
 +
if apiSuccess = "true" then
 +
' TODO: Do something with the apiResultXML
 +
else
 +
' TODO: Do something with the error returned by the API
 +
end if
 +
else
 +
' TODO: Do something with the xmlErr to either notify or log that the XML could not be parsed
 +
end if
 +
else
 +
' TODO: Do something with the xml Error to either notify or log that the XML could not be parsed
 +
end if
 
%>
 
%>
 
</pre>
 
</pre>

Latest revision as of 13:51, 29 May 2008

<!-- #INCLUDE file="../Library/OneShopAPI.asp" -->
<%
	set requestBodyXML = createObject("MSXML2.DOMDocument.4.0")
	set apiResultXML = createObject("MSXML2.DOMDocument.4.0")
	
	dim result
	dim notificationType
	dim token 		
	
	' Create instance of OneShopAPI which acts as a wrapper to the API		
	Set oneShopApiWrapper = new OneShopApi									
	
	' TODO: Add your merchant id	
	oneShopApiWrapper.MerchantID = ""
	' TODO: Add to your merchant api key								
	oneShopApiWrapper.MerchantKey = "" 								
	oneShopApiWrapper.ApiUrl = "https://www.mcssl.com"					

	' Load the request body into XML
	requestBodyXML.load(request.binaryread(request.TotalBytes))			
	
	' Check that the xml was loaded correctly
	if (requestBodyXML.parseError.errorCode = 0) then
		
		' Extract the type of notification is being sent				
		notificationType = requestBodyXML.documentElement.nodeName	
											
		' Extract the token from the request 
		token = requestBodyXML.SelectSingleNode(notificationType & "/Token").text
			
		' Get data from the API depending on what notification type was sent
		select case notificationType
			case "NewOrder"	
					
				result = oneShopApiWrapper.GetOrderById(token)
			case else
				' May have other types of notifications in the future
		end select
		
		' Load the result from the API into XML
		apiResultXML.Load(result)
		
		' Check that the result has been parsed into XML
		if (apiResultXML.parseError.errorCode = 0) then
			
			' Get the success attribute of the result
			apiSuccess = apiResultXML.selectSingleNode("/Response").getAttribute("success")
						
			' Check if the API returned an error
			if apiSuccess = "true" then
				' TODO: Do something with the apiResultXML			
			else
				' TODO: Do something with the error returned by the API
			end if
		else							
			' TODO: Do something with the xmlErr to either notify or log that the XML could not be parsed		
		end if						
	else	 			
		' TODO: Do something with the xml Error to either notify or log that the XML could not be parsed				
	end if	
%>