Initial Commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
class Twocheckout_Company extends Twocheckout
|
||||
{
|
||||
|
||||
public static function retrieve()
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix = '/api/acct/detail_company_info';
|
||||
$result = $request->doCall($urlSuffix);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
}
|
||||
|
||||
class Twocheckout_Contact extends Twocheckout
|
||||
{
|
||||
|
||||
public static function retrieve()
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix = '/api/acct/detail_contact_info';
|
||||
$result = $request->doCall($urlSuffix);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
class Twocheckout_Api_Requester
|
||||
{
|
||||
public $baseUrl;
|
||||
public $environment;
|
||||
private $user;
|
||||
private $pass;
|
||||
private $sid;
|
||||
private $privateKey;
|
||||
|
||||
function __construct() {
|
||||
$this->user = Twocheckout::$username;
|
||||
$this->pass = Twocheckout::$password;
|
||||
$this->sid = Twocheckout::$sid;
|
||||
$this->baseUrl = Twocheckout::$baseUrl;
|
||||
$this->verifySSL = Twocheckout::$verifySSL;
|
||||
$this->privateKey = Twocheckout::$privateKey;
|
||||
}
|
||||
|
||||
function doCall($urlSuffix, $data=array())
|
||||
{
|
||||
$url = $this->baseUrl . $urlSuffix;
|
||||
$ch = curl_init($url);
|
||||
if (isset($data['api'])) {
|
||||
unset( $data['api'] );
|
||||
$data['privateKey'] = $this->privateKey;
|
||||
$data['sellerId'] = $this->sid;
|
||||
$data = json_encode($data);
|
||||
$header = array("content-type:application/json","content-length:".strlen($data));
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
||||
} else {
|
||||
$header = array("Accept: application/json");
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
curl_setopt($ch, CURLOPT_POST, 0);
|
||||
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
||||
curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}");
|
||||
}
|
||||
if ($this->verifySSL == false) {
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, "2Checkout PHP/0.1.0%s");
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
||||
$resp = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
if ($resp === FALSE) {
|
||||
throw new Twocheckout_Error("cURL call failed", "403");
|
||||
} else {
|
||||
return utf8_encode($resp);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
class Twocheckout_Error extends Exception
|
||||
{
|
||||
public function __construct($message, $code = 0)
|
||||
{
|
||||
parent::__construct($message, $code);
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
class Twocheckout_Payment extends Twocheckout
|
||||
{
|
||||
|
||||
public static function retrieve()
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix = '/api/acct/list_payments';
|
||||
$result = $request->doCall($urlSuffix);
|
||||
$response = Twocheckout_Util::returnResponse($result);
|
||||
return $response;
|
||||
}
|
||||
|
||||
public static function pending()
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix = '/api/acct/detail_pending_payment';
|
||||
$result = $request->doCall($urlSuffix);
|
||||
$response = Twocheckout_Util::returnResponse($result);
|
||||
return $response;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
class Twocheckout_Product extends Twocheckout
|
||||
{
|
||||
|
||||
public static function create($params=array())
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix = '/api/products/create_product';
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
public static function retrieve($params=array())
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
if(array_key_exists("product_id",$params)) {
|
||||
$urlSuffix = '/api/products/detail_product';
|
||||
} else {
|
||||
$urlSuffix = '/api/products/list_products';
|
||||
}
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
public static function update($params=array())
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix = '/api/products/update_product';
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
public static function delete($params=array())
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix = '/api/products/delete_product';
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
class Twocheckout_Sale extends Twocheckout
|
||||
{
|
||||
|
||||
public static function retrieve($params=array())
|
||||
{
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
if(array_key_exists("sale_id",$params) || array_key_exists("invoice_id",$params)) {
|
||||
$urlSuffix = '/api/sales/detail_sale';
|
||||
} else {
|
||||
$urlSuffix = '/api/sales/list_sales';
|
||||
}
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
public static function refund($params=array()) {
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
if(array_key_exists("lineitem_id",$params)) {
|
||||
$urlSuffix ='/api/sales/refund_lineitem';
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
} elseif(array_key_exists("invoice_id",$params) || array_key_exists("sale_id",$params)) {
|
||||
$urlSuffix ='/api/sales/refund_invoice';
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
} else {
|
||||
$result = Twocheckout_Message::message('Error', 'You must pass a sale_id, invoice_id or lineitem_id to use this method.');
|
||||
}
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
public static function stop($params=array()) {
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix ='/api/sales/stop_lineitem_recurring';
|
||||
if(array_key_exists("lineitem_id",$params)) {
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
} elseif(array_key_exists("sale_id",$params)) {
|
||||
$result = Twocheckout_Sale::retrieve($params);
|
||||
if (!is_array($result)) {
|
||||
$result = Twocheckout_Util::returnResponse($result, 'array');
|
||||
}
|
||||
$lineitemData = Twocheckout_Util::getRecurringLineitems($result);
|
||||
if (isset($lineitemData[0])) {
|
||||
$stoppedLineitems = array();
|
||||
foreach( $lineitemData as $value )
|
||||
{
|
||||
$params = array('lineitem_id' => $value);
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
$result = json_decode($result, true);
|
||||
if ($result['response_code'] == "OK") {
|
||||
$stoppedLineitems[] = $value;
|
||||
}
|
||||
}
|
||||
$result = Twocheckout_Message::message('OK', $stoppedLineitems);
|
||||
} else {
|
||||
throw new Twocheckout_Error("No recurring lineitems to stop.");
|
||||
}
|
||||
} else {
|
||||
throw new Twocheckout_Error('You must pass a sale_id or lineitem_id to use this method.');
|
||||
}
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
public static function active($params=array()) {
|
||||
if(array_key_exists("sale_id",$params)) {
|
||||
$result = Twocheckout_Sale::retrieve($params);
|
||||
if (!is_array($result)) {
|
||||
$result = Twocheckout_Util::returnResponse($result, 'array');
|
||||
}
|
||||
$lineitemData = Twocheckout_Util::getRecurringLineitems($result);
|
||||
if (isset($lineitemData[0])) {
|
||||
$result = Twocheckout_Message::message('OK', $lineitemData);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
} else {
|
||||
throw new Twocheckout_Error("No active recurring lineitems.");
|
||||
}
|
||||
} else {
|
||||
throw new Twocheckout_Error("You must pass a sale_id to use this method.");
|
||||
}
|
||||
}
|
||||
|
||||
public static function comment($params=array()) {
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix ='/api/sales/create_comment';
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
public static function ship($params=array()) {
|
||||
$request = new Twocheckout_Api_Requester();
|
||||
$urlSuffix ='/api/sales/mark_shipped';
|
||||
$result = $request->doCall($urlSuffix, $params);
|
||||
return Twocheckout_Util::returnResponse($result);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
class Twocheckout_Util extends Twocheckout
|
||||
{
|
||||
|
||||
static function returnResponse($contents, $format=null) {
|
||||
$format = $format == null ? Twocheckout::$format : $format;
|
||||
switch ($format) {
|
||||
case "array":
|
||||
$response = self::objectToArray($contents);
|
||||
self::checkError($response);
|
||||
break;
|
||||
case "force_json":
|
||||
$response = self::objectToJson($contents);
|
||||
break;
|
||||
default:
|
||||
$response = self::objectToArray($contents);
|
||||
self::checkError($response);
|
||||
$response = json_encode($contents);
|
||||
$response = json_decode($response);
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
public static function objectToArray($object)
|
||||
{
|
||||
$object = json_decode($object, true);
|
||||
$array=array();
|
||||
foreach($object as $member=>$data)
|
||||
{
|
||||
$array[$member]=$data;
|
||||
}
|
||||
return $array;
|
||||
}
|
||||
|
||||
public static function objectToJson($object)
|
||||
{
|
||||
return json_encode($object);
|
||||
}
|
||||
|
||||
public static function getRecurringLineitems($saleDetail) {
|
||||
$i = 0;
|
||||
$invoiceData = array();
|
||||
|
||||
while (isset($saleDetail['sale']['invoices'][$i])) {
|
||||
$invoiceData[$i] = $saleDetail['sale']['invoices'][$i];
|
||||
$i++;
|
||||
}
|
||||
|
||||
$invoice = max($invoiceData);
|
||||
$i = 0;
|
||||
$lineitemData = array();
|
||||
|
||||
while (isset($invoice['lineitems'][$i])) {
|
||||
if ($invoice['lineitems'][$i]['billing']['recurring_status'] == "active") {
|
||||
$lineitemData[] = $invoice['lineitems'][$i]['billing']['lineitem_id'];
|
||||
}
|
||||
$i++;
|
||||
};
|
||||
|
||||
return $lineitemData;
|
||||
|
||||
}
|
||||
|
||||
public static function checkError($contents)
|
||||
{
|
||||
if (isset($contents['errors'])) {
|
||||
throw new Twocheckout_Error($contents['errors'][0]['message']);
|
||||
} elseif (isset($contents['exception'])) {
|
||||
throw new Twocheckout_Error($contents['exception']['errorMsg'], $contents['exception']['errorCode']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user