OneShopAPI.cs
From Developer's API
(Difference between revisions)
(New page: <pre> using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.We...) |
|||
| Line 24: | Line 24: | ||
private Dictionary<string, string> _apiParameters; | private Dictionary<string, string> _apiParameters; | ||
| − | //This property sets your merchant id | + | // This property sets your merchant id |
public string MerchantID | public string MerchantID | ||
{ | { | ||
| Line 31: | Line 31: | ||
} | } | ||
| − | //This property sets your merchant api key | + | // This property sets your merchant api key |
public string MerchantKey | public string MerchantKey | ||
{ | { | ||
| Line 38: | Line 38: | ||
} | } | ||
| − | // | + | // This property sets the uri location of the api |
public string ApiUri | public string ApiUri | ||
{ | { | ||
| Line 53: | Line 53: | ||
} | } | ||
| − | //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 void BuildApiParameters(XmlNode nextRecordSet) | public void BuildApiParameters(XmlNode nextRecordSet) | ||
{ | { | ||
| Line 68: | Line 68: | ||
} | } | ||
| − | //This method will add required parameters to a parameter array | + | // This method will add required parameters to a parameter array |
| − | // | + | // the array will be used when building the request body to |
| − | //send to the API | + | // send to the API |
public void AddApiParameter(string parameterName, string parameterValue) | public void AddApiParameter(string parameterName, string 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 (_apiParameters.ContainsKey(parameterName)) | if (_apiParameters.ContainsKey(parameterName)) | ||
{ | { | ||
| Line 90: | Line 90: | ||
} | } | ||
| − | // | + | // This method uses the HttpWebRequest object to make |
| − | //a POST request to the api and return the response | + | // a POST request to the api and return the response |
| − | //from the API | + | // from the API |
private Stream SendHttpRequest(string uri, string requestBody) | private Stream SendHttpRequest(string uri, string requestBody) | ||
{ | { | ||
| Line 112: | Line 112: | ||
} | } | ||
| − | //This method will call the SendHttpRequest method | + | // This method will call the SendHttpRequest method |
| − | //after appending the proper information to the uri | + | // after appending the proper information to the uri |
| − | //and creating the request body | + | // and creating the request body |
private Stream ApiRequest(string apiPath) | private Stream ApiRequest(string apiPath) | ||
{ | { | ||
| Line 130: | Line 130: | ||
} | } | ||
| − | //This method will take a properly formatted api uri | + | // This method will take a properly formatted api uri |
| − | //and create the response body then call the http request method | + | // and create the response body then call the http request method |
public Stream XLinkApiRequest(string uri) | public Stream XLinkApiRequest(string uri) | ||
{ | { | ||
Revision as of 15:22, 27 May 2008
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.IO;
using System.Net;
using System.Collections.Generic;
/// <summary>
/// This class is a wrapper class to the API and will be used to contact the 1ShoppingCart API
/// </summary>
public class OneShopApi
{
private string _merchantID;
private string _merchantKey;
private string _apiUri;
private Dictionary<string, string> _apiParameters;
// This property sets your merchant id
public string MerchantID
{
get {return _merchantID;}
set {_merchantID = value;}
}
// This property sets your merchant api key
public string MerchantKey
{
get {return _merchantKey;}
set {_merchantKey = value;}
}
// This property sets the uri location of the api
public string ApiUri
{
get {return _apiUri;}
set {_apiUri = value;}
}
public OneShopApi(string merchantID, string merchantKey, string apiUri)
{
_merchantID = merchantID;
_merchantKey = merchantKey;
_apiUri = apiUri;
_apiParameters = new Dictionary<string,string>();
}
// This methods takes the NextRecordSet node and
// parses it into the the Api Parameters dictionary
public void BuildApiParameters(XmlNode nextRecordSet)
{
if (nextRecordSet.Name == "NextRecordSet")
{
ClearApiParameters();
foreach (XmlNode node in nextRecordSet)
{
AddApiParameter(node.Name, node.InnerText);
}
}
}
// This method will add required parameters to a parameter array
// the array will be used when building the request body to
// send to the API
public void AddApiParameter(string parameterName, string parameterValue)
{
// Check if key already exists if so reset the value to the
// value passed in to the method
if (_apiParameters.ContainsKey(parameterName))
{
_apiParameters[parameterName] = parameterValue;
}
else
{
_apiParameters.Add(parameterName, parameterValue);
}
}
public void ClearApiParameters()
{
_apiParameters.Clear();
}
// This method uses the HttpWebRequest object to make
// a POST request to the api and return the response
// from the API
private Stream SendHttpRequest(string uri, string requestBody)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
// send POST data
request.Method = "POST";
Stream stream = request.GetRequestStream();
StreamWriter streamWriter = new StreamWriter(stream);
streamWriter.WriteLine(requestBody);
streamWriter.Close();
// get response
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream apiResult = response.GetResponseStream();
return apiResult;
}
// This method will call the SendHttpRequest method
// after appending the proper information to the uri
// and creating the request body
private Stream ApiRequest(string apiPath)
{
string uri,
requestbody;
Stream result;
uri = _apiUri + "/API/" + _merchantID + apiPath;
requestbody = CreateRequestString();
result = SendHttpRequest(uri, requestbody);
return result;
}
// This method will take a properly formatted api uri
// and create the response body then call the http request method
public Stream XLinkApiRequest(string uri)
{
string requestBody;
Stream result;
requestBody = CreateRequestString();
result = SendHttpRequest(uri, requestBody);
return result;
}
private string CreateRequestString()
{
string requestBody;
requestBody = "<Request><Key>" + _merchantKey + "</Key>" + ParseApiParameters() + "</Request>";
return requestBody;
}
private string ParseApiParameters()
{
string bodyParameters = "";
foreach (string key in _apiParameters.Keys)
{
bodyParameters += "<" + key + ">" + _apiParameters[key] + "</" + key + ">";
}
return bodyParameters;
}
public Stream GetOrdersList()
{
return ApiRequest("/ORDERS/LIST");
}
public Stream GetOrderById(string orderId)
{
return ApiRequest("/ORDERS/" + orderId + "/READ");
}
public Stream GetProductsList()
{
return ApiRequest("/PRODUCTS/LIST");
}
public Stream GetProductById(string productId)
{
return ApiRequest("/PRODUCTS/" + productId + "/READ");
}
public Stream GetClientsList()
{
return ApiRequest("/CLIENTS/LIST");
}
public Stream GetClientsById(string clientId)
{
return ApiRequest("/CLIENTS/" + clientId + "/READ");
}
public Stream GetErrorsList()
{
return ApiRequest("/ERRORS/LIST");
}
public Stream GetAvailableAPIMethods()
{
return ApiRequest("");
}
}