OneShopAPI.jsp
From Developer's API
<%@page import="java.io.*, java.util.*, java.util.regex.*, java.net.*, java.security.*,javax.net.ssl.*" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%
class OneShopAPI
{
private String m_strMerchantID,m_strMerchantKey,m_strAPIURI;
public HashMap m_hmParameters;
public OneShopAPI(String p_strMerchantID,String p_strMerchantKey, String p_strAPIURI)
{
m_strMerchantID = p_strMerchantID;
m_strMerchantKey = p_strMerchantKey;
m_strAPIURI = p_strAPIURI;
m_hmParameters = new HashMap();
addParameter("Key",m_strMerchantKey);
}
public void addParameter(String p_strCurrentKey,String p_strCurrentValue)
{
m_hmParameters.put(p_strCurrentKey,p_strCurrentValue);
}
public void deleteParameter(String p_strCurrentKey)
{
m_hmParameters.remove(p_strCurrentKey);
}
public void clearParameters()
{
m_hmParameters.clear();
addParameter("Key",m_strMerchantKey);
}
public void buildParameters(String p_strCurrentResponseBody)
{
int iKeyValueCount = 2;
clearParameters();
Pattern patNextRecordSet = Pattern.compile("\\s*<NextRecordSet>(?:\\s*<\\w+>[^<>]*<\\/\\w+>\\s*)*<\\/NextRecordSet>");
Matcher matchNextRecordSet = patNextRecordSet.matcher(p_strCurrentResponseBody);
if(matchNextRecordSet.find())
{
Pattern patParameters = Pattern.compile("\\s*<(\\w+)>\\s*([^<>]*)<\\/\\1>\\s*");
Matcher matchParameters = patParameters.matcher(matchNextRecordSet.group());
while(matchParameters.find())
addParameter(matchParameters.group(1),matchParameters.group(2));
}
}
public String sendHTTPSRequest(String p_strCurrentURI,String p_strCurrentRequestBody)
{
try
{
URL urlCurrent = new URL(p_strCurrentURI);
URLConnection ucCurrent = urlCurrent.openConnection();
HttpsURLConnection httpsCurrentConnection = (HttpsURLConnection)ucCurrent;
httpsCurrentConnection.setDoOutput(true);
httpsCurrentConnection.setDoInput(true);
httpsCurrentConnection.setRequestMethod("POST");
OutputStream outRequest = httpsCurrentConnection.getOutputStream();
Writer woutRequest = new OutputStreamWriter(outRequest);
woutRequest.write(p_strCurrentRequestBody);
woutRequest.flush();
woutRequest.close();
InputStream inResponse = httpsCurrentConnection.getInputStream();
Reader rinResponse = new InputStreamReader(inResponse,"UTF-8");
StringBuffer sbCurrent = new StringBuffer();
int chCurrent = 0,iError = -1;
while((chCurrent = rinResponse.read()) != iError)
sbCurrent.append((char)chCurrent);
return(sbCurrent.toString());
}
catch(Exception eCurrent)
{
return(new String());
}
}
public String apiRequest(String p_strCurrentMethod)
{
String strCurrentURI = m_strAPIURI + "/API/" + m_strMerchantID + p_strCurrentMethod;
String strCurrentRequestBody = createRequestBody(m_hmParameters);
String strCurrentResponseBody = sendHTTPSRequest(strCurrentURI,strCurrentRequestBody);
return(strCurrentResponseBody);
}
public String createRequestBody(HashMap p_hmCurrentParameters)
{
String strCurrentRequestBody = new String();
if(p_hmCurrentParameters.size() > 0)
{
strCurrentRequestBody += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
strCurrentRequestBody += "<Request>\n";
for (Iterator iterCurrent = p_hmCurrentParameters.entrySet().iterator(); iterCurrent.hasNext();)
{
Map.Entry entCurrent = (Map.Entry)iterCurrent.next();
strCurrentRequestBody += "\t";
strCurrentRequestBody += "<" + (String)entCurrent.getKey() + ">";
strCurrentRequestBody += (String)entCurrent.getValue();
strCurrentRequestBody += "</" + (String)entCurrent.getKey() + ">";
strCurrentRequestBody += "\n";
}
strCurrentRequestBody += "</Request>";
}
return(strCurrentRequestBody);
}
public String apiRequestXLink(String p_strCurrentXLink)
{
String strCurrentRequestBody = createRequestBody(m_hmParameters);
String strCurrentResponseBody = sendHTTPSRequest(p_strCurrentXLink,strCurrentRequestBody);
return(strCurrentResponseBody);
}
public String getOrdersList()
{
return(apiRequest("/ORDERS/LIST"));
}
public String getOrderById(String p_strCurrentOrderId)
{
return(apiRequest("/ORDERS/" + p_strCurrentOrderId + "/READ"));
}
public String getClientsList()
{
return(apiRequest("/CLIENTS/LIST"));
}
public String getClientById(String p_strCurrentClientId)
{
return(apiRequest("/CLIENTS/" + p_strCurrentClientId + "/READ"));
}
public String getProductsList()
{
return(apiRequest("/PRODUCTS/LIST"));
}
public String getProductById(String p_strCurrentProductId)
{
return(apiRequest("/PRODUCTS/" + p_strCurrentProductId + "/READ"));
}
public String getErrorsList()
{
return(apiRequest("/ERRORS/LIST"));
}
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>MCSSL.COM API Example</title>
</head>
<body>
<h4>Welcome to the <u><b>MCSSL.COM</b> API Example</u>.</h4>
</body>
</html>