yf_payment_api__provider class

Fileplugins/payment/classes/yf_payment_api__provider.class.php
Use_class('payment_api__provider')

Public properties

A site sets them in its config with $PROJECT_CONF['payment_api__provider']['NAME'] = ...;

PropertyDefaultDescription
$ENABLE null
$TEST_MODE null
$description null
$payment_api null

Public methods 9

allow

public function allow($value = null)
    public function allow($value = null)
    {
        $result = &$this->ENABLE;
        if (isset($value)) {
            $value = (bool) $value;
            // init if enable
            if ( ! $result && $value) {
                $this->_init();
            }
            $result = $value;
        }
        return  $result;
    }

deposition

public function deposition($options)
    public function deposition($options)
    {
        if ( ! $this->ENABLE) {
            return  null;
        }
        $result = $this->_transaction($options);
        return  $result;
    }

is_test

public function is_test($options = null)
    public function is_test($options = null)
    {
        $result = false;
        // import options
        is_array($options) && extract($options, EXTR_PREFIX_ALL | EXTR_REFS, '');
        if ( ! empty($this->TEST_MODE) || ! empty($_test_mode)) {
            $result = true;
        }
        return  $result;
    }

payment

public function payment($options)
    public function payment($options)
    {
        if ( ! $this->ENABLE) {
            return  null;
        }
        $result = $this->_transaction($options);
        return  $result;
    }

result_fail

public function result_fail($message)
    public function result_fail($message)
    {
        return  ['status' => false, 'status_message' => $message];
    }
public function result_success()
    public function result_success()
    {
        return  ['status' => true];
    }

transfer

public function transfer($options)
    public function transfer($options)
    {
        if ( ! $this->ENABLE) {
            return  null;
        }
        $_options = [
            'options' => &$options['options'],
            'provider' => &$options['provider'],
            'operation_options' => [
                'from' => $options['options']['from'],
                'to' => $options['options']['to'],
                'amount' => $options['options']['amount'],
            ],
        ];
        $_options['operation_options']['from']['operation_id'] = &$options['data']['from']['operation_id'];
        $_options['operation_options']['to']['operation_id'] = &$options['data']['to']['operation_id'];
        // from
        $options_from = $_options + [
            'data' => &$options['data']['from'],
            'operation_data' => &$options['operation_data']['from'],
        ];
        $options_from['operation_options']['direction'] = 'out';
        $result_from = $this->_transaction($options_from);
        // to
        $options_to = $_options + [
            'data' => &$options['data']['to'],
            'operation_data' => &$options['operation_data']['to'],
        ];
        $options_from['operation_options']['direction'] = 'in';
        $result_to = $this->_transaction($options_to);
        $result = [
            'status' => $result_from['status'] & $result_to['status'],
            'status_message' => $result_from['status_message'],
            'from' => $result_from,
            'to' => $result_to,
        ];
        return  $result;
    }

validate

public function validate($options = null)
    public function validate($options = null)
    {
        return  $this->result_success();
    }

Methods starting with _ hooks and helpers; not routable as page actions

_init

public function _init()
    public function _init()
    {
        if ( ! $this->ENABLE) {
            return  null;
        }
        $this->payment_api = _class('payment_api');
        ! empty($this->service_allow) && $this->description = implode(', ', $this->service_allow);
    }