OneShopAPI.asp

From Developer's API

(Difference between revisions)
Line 9: Line 9:
 
private m_ApiCallParameters
 
private m_ApiCallParameters
 
 
'This property sets your merchant id
+
' This property sets your merchant id
public Property Let MerchantID(value)
+
public Property let MerchantID(value)
 
m_merchantID = value
 
m_merchantID = value
 
end Property  
 
end Property  
 
 
'This property sets your merchant api key
+
' This property sets your merchant api key
public Property Let MerchantKey(value)
+
public Property let MerchantKey(value)
 
m_merchantKey = value
 
m_merchantKey = value
 
end Property
 
end Property
 
 
'this property sets the url location of the api  
+
' This property sets the url location of the api  
public Property Let ApiUrl(value)
+
public Property let ApiUrl(value)
 
m_apiUrl = value
 
m_apiUrl = value
 
end Property
 
end Property
Line 28: Line 28:
 
end sub
 
end sub
 
 
'This methods takes the NextRecordSet node and
+
' This methods takes the NextRecordSet node and
'parses it into the the Api Parameters dictionary
+
' parses it into the the Api Parameters dictionary
 
public sub BuildApiParameters(nextRecordSetNode)
 
public sub BuildApiParameters(nextRecordSetNode)
 
 
Line 40: Line 40:
 
end sub
 
end sub
 
 
'This method will add required parameters to a parameter array
+
' This method will add required parameters to a parameter array
'This array will be used when building the request body to  
+
' This array will be used when building the request body to  
'send to the API
+
' send to the API
 
public sub AddApiParameter(parameterName, parameterValue)
 
public sub AddApiParameter(parameterName, parameterValue)
 
 
'Check if key already exists if so reset the value to the
+
' Check if key already exists if so reset the value to the
'value passed in to the method
+
' value passed in to the method
 
if m_apiCallParameters.Exists(parameterName) = false then
 
if m_apiCallParameters.Exists(parameterName) = false then
 
m_apiCallParameters.Add parameterName,parameterValue
 
m_apiCallParameters.Add parameterName,parameterValue
Line 80: Line 80:
 
end function
 
end function
 
 
'This method will call the win_http request method
+
' This method will call the win_http request method
'after appending the proper information to the url
+
' after appending the proper information to the url
'and creating the request body
+
' and creating the request body
 
private function ApiRequest(api_path)
 
private function ApiRequest(api_path)
 
 
Line 96: Line 96:
 
end function
 
end function
 
 
'This method will take a properly formatted api url
+
' This method will take a properly formatted api url
'and create the response body then call the http request method
+
' and create the response body then call the http request method
 
public function XlinkApiRequest(url)
 
public function XlinkApiRequest(url)
 
 
Line 110: Line 110:
 
end function
 
end function
 
 
'This method will create the request body
+
' This method will create the request body
'which consists of the merchant key wrapped
+
' which consists of the merchant key wrapped
'in XML expected by the API
+
' in XML expected by the API
 
private function CreateRequestString()
 
private function CreateRequestString()
 
dim requestBody
 
dim requestBody
Line 120: Line 120:
 
end function
 
end function
 
 
'This method will take an array of parameters and create
+
' This method will take an array of parameters and create
'the rest of the request body to send to the API
+
' the rest of the request body to send to the API
 
private function ParseAPIParameters()
 
private function ParseAPIParameters()
 
dim bodyParameters
 
dim bodyParameters
Line 136: Line 136:
 
end function
 
end function
 
 
'Retrieve Order Information from API
 
 
'ORDERS LIST
 
 
public function GetOrderList()
 
public function GetOrderList()
 
GetOrderList = ApiRequest("/ORDERS/LIST")
 
GetOrderList = ApiRequest("/ORDERS/LIST")
 
end function
 
end function
 
 
'SPECIFIC ORDER
 
 
public function GetOrderById(order_id)
 
public function GetOrderById(order_id)
 
GetOrderById = ApiRequest("/ORDERS/" & order_id & "/READ")
 
GetOrderById = ApiRequest("/ORDERS/" & order_id & "/READ")
 
end function
 
end function
 
 
'Retrieve Product Information from API
 
 
'PRODUCT LIST
 
 
public function GetProductList()
 
public function GetProductList()
 
GetProductList = ApiRequest("/PRODUCTS/LIST")
 
GetProductList = ApiRequest("/PRODUCTS/LIST")
 
end function
 
end function
 
 
'SPECIFIC PRODUCT
 
 
public function GetProductById(product_id)
 
public function GetProductById(product_id)
 
GetProductById = ApiRequest("/PRODUCTS/" & product_id & "/READ")
 
GetProductById = ApiRequest("/PRODUCTS/" & product_id & "/READ")
 
end function
 
end function
 
 
'Retrieve Client Information from API
 
 
'CLIENT LIST
 
 
public function GetClientList()
 
public function GetClientList()
 
GetClientList = ApiRequest("/CLIENTS/LIST")
 
GetClientList = ApiRequest("/CLIENTS/LIST")
 
end function
 
end function
 
 
'SPECIFIC CLIENT
 
 
public function GetClientById(client_id)
 
public function GetClientById(client_id)
 
GetClientById = ApiRequest("/CLIENTS/" & client_id & "/READ")
 
GetClientById = ApiRequest("/CLIENTS/" & client_id & "/READ")
 
end function
 
end function
 
 
'Retrieve the list of available methods
 
 
public function GetAvailableAPIMethods()
 
public function GetAvailableAPIMethods()
 
GetAvailableAPIMethods = ApiRequest("")
 
GetAvailableAPIMethods = ApiRequest("")
 
end function
 
end function
 
 
'Retrieve list of possible Error messages
 
 
public function GetErrorList()
 
public function GetErrorList()
 
GetErrorList = ApiRequest("/ERRORS/LIST")
 
GetErrorList = ApiRequest("/ERRORS/LIST")

Revision as of 13:50, 29 May 2008

<%
'This class is a wrapper class to the API and will be used to contact the 1ShoppingCart API
Class OneShopAPI

	private m_MerchantID
	private m_MerchantKey
	private m_ApiUrl
	private	m_ApiCallParameters		
	
	' This property sets your merchant id	
	public Property let MerchantID(value)
		m_merchantID = value
	end Property 
	
	' This property sets your merchant api key
	public Property let MerchantKey(value)
		m_merchantKey = value
	end Property
	
	' This property sets the url location of the api 
	public Property let ApiUrl(value)
		m_apiUrl = value
	end Property
	
	private sub class_initialize()
		set m_ApiCallParameters	= Server.CreateObject("Scripting.Dictionary")
	end sub
	
	' This methods takes the NextRecordSet node and
	' parses it into the the Api Parameters dictionary
	public sub BuildApiParameters(nextRecordSetNode)
							
		if nextRecordSetNode.nodename = "NextRecordSet" then				
			ClearAPIParameters				
			for each node in nextRecordSetNode.ChildNodes
				AddApiParameter node.nodename, node.text
			next				
		end if					
	end sub
	
	' This method will add required parameters to a parameter array
	' This array will be used when building the request body to 
	' send to the API		
	public sub AddApiParameter(parameterName, parameterValue)
		
		' Check if key already exists if so reset the value to the
		' value passed in to the method
		if m_apiCallParameters.Exists(parameterName) = false then
			m_apiCallParameters.Add parameterName,parameterValue
		else
			m_apiCallParameters.item(parameterName) = parameterValue
		end if			
		
	end Sub	
	
	'This method will clear all the values in the api parameters dictionary
	public Sub ClearAPIParameters()
		m_ApiCallParameters.RemoveAll
	end Sub	

	'this method uses the WinHttpRequest object to make
	'a POST request to the api and return the response
	'from the API
	private function SendHttpRequest(url, request_body)
	
		dim winHttp
		dim apiResult 
							
		Set winHttp = Server.CreateObject("WinHttp.WinHttpRequest.5.1")			
		winHttp.Open "POST", url, false			
		winHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 						
		winHttp.Send request_body					
		apiResult = winHttp.ResponseBody
			
		set winHttp = nothing
		
		SendHttpRequest = apiResult
		
	end function
	
	' This method will call the win_http request method
	' after appending the proper information to the url
	' and creating the request body
	private function ApiRequest(api_path)
		
		dim url
		dim request_body
		dim result

		url = m_apiUrl & "/API/" & m_merchantID & api_path			
		request_body = CreateRequestString()			
		result = SendHttpRequest(url, request_body)			
		ApiRequest = result					

	end function		
	
	' This method will take a properly formatted api url
	' and create the response body then call the http request method
	public function XlinkApiRequest(url)
	
		dim request_body
		dim result
		
		request_body = CreateRequestString()			
		result = SendHttpRequest(url, request_body)			
		
		XlinkApiRequest = result
		
	end function
	
	' This method will create the request body
	' which consists of the merchant key wrapped
	' in XML expected by the API
	private function CreateRequestString()
		dim requestBody
		
		requestBody = "<Request><Key>" & m_merchantKey & "</Key>" &	ParseAPIParameters() & "</Request>"			
		CreateRequestString = requestBody
	end function
	
	' This method will take an array of parameters and create
	' the rest of the request body to send to the API
	private function ParseAPIParameters()
		dim bodyParameters
		bodyParameters = ""
		
		for each key in m_apiCallParameters.Keys
			
			bodyParameters = bodyParameters & _
				"<" & key & ">" & m_apiCallParameters.Item(key) & "</"  & key & ">"
		next
			
		ParseAPIParameters = bodyParameters
	
	end function
				
	public function GetOrderList()
		GetOrderList = ApiRequest("/ORDERS/LIST")
	end function
	
	public function GetOrderById(order_id)
		GetOrderById = ApiRequest("/ORDERS/" & order_id & "/READ")
	end function
	
	public function GetProductList()
		GetProductList = ApiRequest("/PRODUCTS/LIST")
	end function
	
	public function GetProductById(product_id)
		GetProductById = ApiRequest("/PRODUCTS/" & product_id & "/READ")
	end function
	
	public function GetClientList()
		GetClientList = ApiRequest("/CLIENTS/LIST")
	end function
	
	public function GetClientById(client_id)
		GetClientById = ApiRequest("/CLIENTS/" & client_id & "/READ")
	end function
	
	public function GetAvailableAPIMethods()
		GetAvailableAPIMethods = ApiRequest("")
	end function	
	
	public function GetErrorList()
		GetErrorList = ApiRequest("/ERRORS/LIST")
	end function		

end Class
%>