/** * send this message and get response * save all warnings - errors are only saved if no payment-url is send from pnag * * @return SofortLibTransactionData $this */ public function sendRequest() { $requestData[$this->_xmlRootTag] = $this->_parameters; $requestData = $this->_prepareRootTag($requestData); $xmlRequest = ArrayToXml::render($requestData); $this->_log($xmlRequest, ' XmlRequest -> '); $xmlResponse = $this->_sendMessage($xmlRequest); try { $this->_response = XmlToArray::render($xmlResponse); } catch (Exception $e) { $this->_response = array('errors' => array('error' => array('code' => array('@data' => '0999'), 'message' => array('@data' => $e->getMessage())))); } $this->_log($xmlResponse, ' XmlResponse <- '); $this->_handleErrors(); $this->_parseXml(); return $this; }
/** * static entry point. Options are: * - version: (default 1.0) version string to put in xml prolog * - encoding: (default UTF-8) use the specified encoding * - trim: (default true) Trim values * - depth: (default 10) Maximum depth to parse the given array, throws exception when exceeded * * @param array $input the input array * @param array $options set additional options to pass to XmlToArray * @throws ArrayToXmlException */ public static function render(array $input, array $options = array()) { $options = array_merge(array('version' => '1.0', 'encoding' => 'UTF-8', 'trim' => true, 'depth' => 10), $options); $Instance = new ArrayToXml($input, $options['depth'], $options['trim']); return $Instance->toXml($options['version'], $options['encoding']); }