HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/alq-cali.bikenow.co/vendor/transbank/transbank-sdk/src/Onepay/Refund.php
<?php

namespace Transbank\Onepay;

/**
 * class Refund
 * Model object for Refunds.
 */

use Transbank\Onepay\Exceptions\RefundCreateException as RefundCreateException;
use Transbank\Onepay\Utils\OnepayRequestBuilder;
use Transbank\Utils\HttpClient;

class Refund
{
    const REFUND_TRANSACTION = 'nullifytransaction';
    const TRANSACTION_BASE_PATH = '/ewallet-plugin-api-services/services/transactionservice/';

    public static function create(
        $amount,
        $occ,
        $externalUniqueNumber,
        $authorizationCode,
        $options = null
    ) {
        $request = OnepayRequestBuilder::getInstance()
            ->buildRefundRequest(
                $amount,
                $occ,
                $externalUniqueNumber,
                $authorizationCode,
                $options
            );
        $jsonRequest = json_encode($request, JSON_UNESCAPED_SLASHES);
        $http = new HttpClient();
        $path = self::TRANSACTION_BASE_PATH.self::REFUND_TRANSACTION;

        $httpResponse = $http->request(
            'POST',
            OnepayBase::getCurrentIntegrationTypeUrl().$path,
            $jsonRequest
        );

        $httpCode = $httpResponse->getStatusCode();
        $responseJson = json_decode($httpResponse->getBody(), true);

        if ($httpCode != 200 && $httpCode != 204) {
            throw new RefundCreateException('Could not obtain the service response');
        }
        $refundCreateResponse = new RefundCreateResponse($responseJson);
        if (strtolower($responseJson['responseCode']) != 'ok') {
            $msg = $responseJson['responseCode'].' : '.$responseJson['description'];

            throw new RefundCreateException($msg, -1);
        }

        return $refundCreateResponse;
    }
}