public function do_finalize($params = false) { if (empty($this->_api)) { $this->set_error(self::ERR_API_OBJECT, self::s2p_t('Couldn\'t finalize, API object is empty.')); return false; } if (empty($params) or !is_array($params)) { $params = array(); } // If redirect is required, send redirect headers now... if (!isset($params['redirect_now'])) { $params['redirect_now'] = true; } if (!($finalize_result = $this->_api->do_finalize($params)) or !($finalize_result = S2P_SDK_Method::validate_finalize_result($finalize_result))) { if ($this->_api->has_error()) { $this->copy_error($this->_api); } else { $this->set_error(self::ERR_API_CALL, self::s2p_t('Couldn\'t finialize API action.')); } return false; } if (!empty($params['redirect_now']) and !empty($finalize_result['should_redirect']) and !empty($finalize_result['redirect_to']) and empty($finalize_result['redirect_headers_set'])) { if (!@headers_sent()) { @header('Location: ' . $finalize_result['redirect_to']); $finalize_result['redirect_headers_set'] = true; } } $this->_finalize_result = $finalize_result; return $this->_finalize_result; }
public function do_finalize($params = false) { if (empty($this->_method)) { $this->set_error(self::ERR_METHOD, self::s2p_t('Method not set')); return false; } if (!($call_result = $this->get_call_result())) { $this->set_error(self::ERR_CALL_RESULT, self::s2p_t('Invalid call result or previous call failed.')); return false; } if (!($finalize_result = $this->_method->finalize($call_result, $params))) { if ($this->_method->has_error()) { $this->copy_error($this->_method); } else { $this->set_error(self::ERR_VALIDATE_RESPONSE, self::s2p_t('Couldn\'t finalize request after call.')); } return false; } return S2P_SDK_Method::validate_finalize_result($finalize_result); }