yf_payment_api__provider class| File | plugins/payment/classes/yf_payment_api__provider.class.php |
|---|---|
| Use | _class('payment_api__provider') |
A site sets them in its config with $PROJECT_CONF['payment_api__provider']['NAME'] = ...;
| Property | Default | Description |
|---|---|---|
$ENABLE |
null |
|
$TEST_MODE |
null |
|
$description |
null |
|
$payment_api |
null |
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;
}
public function deposition($options)
public function deposition($options)
{
if ( ! $this->ENABLE) {
return null;
}
$result = $this->_transaction($options);
return $result;
}
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;
}
public function payment($options)
public function payment($options)
{
if ( ! $this->ENABLE) {
return null;
}
$result = $this->_transaction($options);
return $result;
}
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];
}
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;
}
public function validate($options = null)
public function validate($options = null)
{
return $this->result_success();
}
_ hooks and helpers; not routable as page actionspublic 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);
}