first commit
This commit is contained in:
87
plugins/stPlatnosciPlPlugin/lib/OpenPayU/v2/Refund.php
Normal file
87
plugins/stPlatnosciPlPlugin/lib/OpenPayU/v2/Refund.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* OpenPayU Standard Library
|
||||
*
|
||||
* @copyright Copyright (c) 2011-2016 PayU
|
||||
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
|
||||
* http://www.payu.com
|
||||
* http://developers.payu.com
|
||||
*/
|
||||
|
||||
class OpenPayU_Refund extends OpenPayU
|
||||
{
|
||||
/**
|
||||
* Function make refund for order
|
||||
* @param $orderId
|
||||
* @param $description
|
||||
* @param int $amount Amount of refund in pennies
|
||||
* @return null|OpenPayU_Result
|
||||
* @throws OpenPayU_Exception
|
||||
*/
|
||||
public static function create($orderId, $description, $amount = null)
|
||||
{
|
||||
if (empty($orderId)) {
|
||||
throw new OpenPayU_Exception('Invalid orderId value for refund');
|
||||
}
|
||||
|
||||
if (empty($description)) {
|
||||
throw new OpenPayU_Exception('Invalid description of refund');
|
||||
}
|
||||
$refund = array(
|
||||
'orderId' => $orderId,
|
||||
'refund' => array('description' => $description)
|
||||
);
|
||||
|
||||
if (!empty($amount)) {
|
||||
$refund['refund']['amount'] = (int)$amount;
|
||||
}
|
||||
|
||||
try {
|
||||
$authType = self::getAuth();
|
||||
} catch (OpenPayU_Exception $e) {
|
||||
throw new OpenPayU_Exception($e->getMessage(), $e->getCode());
|
||||
}
|
||||
|
||||
$pathUrl = OpenPayU_Configuration::getServiceUrl().'orders/'. $refund['orderId'] . '/refund';
|
||||
|
||||
$data = OpenPayU_Util::buildJsonFromArray($refund);
|
||||
|
||||
$result = self::verifyResponse(OpenPayU_Http::doPost($pathUrl, $data, $authType), 'RefundCreateResponse');
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $response
|
||||
* @param string $messageName
|
||||
* @return OpenPayU_Result
|
||||
*/
|
||||
public static function verifyResponse($response, $messageName='')
|
||||
{
|
||||
$data = array();
|
||||
$httpStatus = $response['code'];
|
||||
|
||||
$message = OpenPayU_Util::convertJsonToArray($response['response'], true);
|
||||
|
||||
$data['status'] = isset($message['status']['statusCode']) ? $message['status']['statusCode'] : null;
|
||||
|
||||
if (json_last_error() == JSON_ERROR_SYNTAX) {
|
||||
$data['response'] = $response['response'];
|
||||
} elseif (isset($message[$messageName])) {
|
||||
unset($message[$messageName]['Status']);
|
||||
$data['response'] = $message[$messageName];
|
||||
} elseif (isset($message)) {
|
||||
$data['response'] = $message;
|
||||
unset($message['status']);
|
||||
}
|
||||
|
||||
$result = self::build($data);
|
||||
|
||||
if ($httpStatus == 200 || $httpStatus == 201 || $httpStatus == 422 || $httpStatus == 302) {
|
||||
return $result;
|
||||
} else {
|
||||
OpenPayU_Http::throwHttpStatusException($httpStatus, $result);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user