Blame | Last modification | View Log | RSS feed
<?php/* © 2013 eBay Inc., All Rights Reserved *//* Licensed under CDDL 1.0 - http://opensource.org/licenses/cddl1.php */class eBaySession{private $requestToken;private $devID;private $appID;private $certID;private $serverUrl;private $compatLevel;private $siteID;private $verb;/** __constructConstructor to make a new instance of eBaySession with the details needed to make a callInput: $userRequestToken - the authentication token fir the user making the call$developerID - Developer key obtained when registered at http://developer.ebay.com$applicationID - Application key obtained when registered at http://developer.ebay.com$certificateID - Certificate key obtained when registered at http://developer.ebay.com$useTestServer - Boolean, if true then Sandbox server is used, otherwise production server is used$compatabilityLevel - API version this is compatable with$siteToUseID - the Id of the eBay site to associate the call iwht (0 = US, 2 = Canada, 3 = UK, ...)$callName - The name of the call being made (e.g. 'GeteBayOfficialTime')Output: Response string returned by the server*/public function __construct($userRequestToken, $developerID, $applicationID, $certificateID, $serverUrl,$compatabilityLevel, $siteToUseID, $callName){$this->requestToken = $userRequestToken;$this->devID = $developerID;$this->appID = $applicationID;$this->certID = $certificateID;$this->compatLevel = $compatabilityLevel;$this->siteID = $siteToUseID;$this->verb = $callName;$this->serverUrl = $serverUrl;}/** sendHttpRequestSends a HTTP request to the server for this sessionInput: $requestBodyOutput: The HTTP Response as a String*/public function sendHttpRequest($requestBody){//build eBay headers using variables passed via constructor$headers = $this->buildEbayHeaders();//initialise a CURL session$connection = curl_init();//set the server we are using (could be Sandbox or Production server)curl_setopt($connection, CURLOPT_URL, $this->serverUrl);//stop CURL from verifying the peer's certificatecurl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0);curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0);//set the headers using the array of headerscurl_setopt($connection, CURLOPT_HTTPHEADER, $headers);//set method as POSTcurl_setopt($connection, CURLOPT_POST, 1);//set the XML body of the requestcurl_setopt($connection, CURLOPT_POSTFIELDS, $requestBody);//set it to return the transfer as a string from curl_execcurl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);//Send the Request$response = curl_exec($connection);//close the connectioncurl_close($connection);//return the responsereturn $response;}/** buildEbayHeadersGenerates an array of string to be used as the headers for the HTTP request to eBayOutput: String Array of Headers applicable for this call*/private function buildEbayHeaders(){$headers = array (//Regulates versioning of the XML interface for the API'X-EBAY-API-COMPATIBILITY-LEVEL: ' . $this->compatLevel,//set the keys'X-EBAY-API-DEV-NAME: ' . $this->devID,'X-EBAY-API-APP-NAME: ' . $this->appID,'X-EBAY-API-CERT-NAME: ' . $this->certID,//the name of the call we are requesting'X-EBAY-API-CALL-NAME: ' . $this->verb,//SiteID must also be set in the Request's XML//SiteID = 0 (US) - UK = 3, Canada = 2, Australia = 15, ....//SiteID Indicates the eBay site to associate the call with'X-EBAY-API-SITEID: ' . $this->siteID,);return $headers;}}?>