/** * Validate the post configuration parameters * and remove if any invalid found * * * @param array $params * @param boolean $remove * @return array */ private function _validateConfiguration($params, $remove = false) { if ((int) $params['EVERYPAY_LIVE_MODE'] >= 1) { $pk = $params['EVERYPAY_PUBLIC_KEY']; $sk = $params['EVERYPAY_SECRET_KEY']; $this->live_mode = $params['EVERYPAY_LIVE_MODE'] = 1; $this->mode = 'live'; } else { $pk = $params['EVERYPAY_TEST_PUBLIC_KEY']; $sk = $params['EVERYPAY_TEST_SECRET_KEY']; $this->live_mode = $params['EVERYPAY_LIVE_MODE'] = 0; $this->mode = 'test'; } //now set the keys according to mode $this->pk = $params['pk'] = $pk; $this->sk = $params['sk'] = $sk; if (empty($pk)) { $tmpError = str_replace('%MODE', $this->mode, $this->l('Missing PUBLIC KEY (%MODE mode)')); $this->adminMessages['errors'][] = $tmpError; $this->warning = $tmpError; $this->online = false; } else { try { Everypay\Everypay::setApiKey($sk); } catch (Exception $e) { $this->online = false; $this->adminMessages['errors'][] = $e->getMessage(); } } if (empty($sk)) { $tmpError = str_replace('%MODE', $this->mode, $this->l('Missing SECRET KEY (%MODE mode)')); $this->adminMessages['errors'][] = $tmpError; $this->warning = $tmpError; $this->online = false; } /** * Check to determine if PHP enviroment * does have the needed extensions available, such as json and curl. */ try { Everypay\Everypay::checkRequirements(); } catch (RuntimeException $e) { $tmpError = $this->l('Please ensure you have json and curl extensions enabled in php'); $this->adminMessages['errors'][] = $tmpError; $this->warning = $tmpError; $this->online = false; } //strict values if (!empty($params['EVERYPAY_CUSTOMER_MODE']) && (int) $params['EVERYPAY_CUSTOMER_MODE'] == 1) { $params['EVERYPAY_CUSTOMER_MODE'] = 1; } else { $params['EVERYPAY_CUSTOMER_MODE'] = 0; } if (!empty($params['EVERYPAY_BUTTON_MODE']) && (int) $params['EVERYPAY_BUTTON_MODE'] == 1) { $params['EVERYPAY_BUTTON_MODE'] = 1; } else { $params['EVERYPAY_BUTTON_MODE'] = 0; } //overwrite $params['EVERYPAY_BUTTON_MODE'] = 1; if (_PS_VERSION_ < '1.5') { $this->adminMessages['errors'][] = $this->l('This plugin supports prestashop versions > 1.5!'); $this->warning = $this->l('The EveryPay plugin supports prestashop versions from 1.5 an later! Install the 1.4 version instead.'); $this->online = false; } return $params; }