/** * Checks outgoing data whether it contains all needed information. * * @param array $request */ private function _processOutgoingData(&$request) { // Always send token $request[self::KEY_TOKEN] = $this->_token; // Always send Data array having at least something inside isset($request['Data']) || ($request['Data'] = array('dummy' => 1)); if (isset($this->_actionMapping[$request['_action']])) { $actionMapping = $this->_actionMapping[$request['_action']]; } else { $actionMapping = array('method' => ucfirst($request['_action'])); } $request['Method'] = $actionMapping['method']; $paramsOut = isset($actionMapping['paramsOut']) ? $actionMapping['paramsOut'] : array(); foreach ($paramsOut as $paramName) { if (empty($request['Data'][$paramName])) { switch ($paramName) { case self::KEY_AGENT: $value = $this->_integrator->getAgent(); break; case self::KEY_VISITOR_ID: $value = $this->_integrator->getVisitorId(); break; case self::KEY_BUYER_ID: $value = $this->_integrator->getBuyerId(); break; case self::KEY_CART_ID: $value = $this->_integrator->getCartId(); break; case self::KEY_REDIRECT_ID: $value = $this->_integrator->getRedirectId(); break; case self::KEY_CART_URL: $value = $this->_integrator->getCartUrl(); break; case self::KEY_CONVERSION_ID: $value = $this->_integrator->getСonversionId(); break; default: $value = null; } if ($value) { $request['Data'][$paramName] = $value; } } } }