/** * Тест обработки символьных данных. * @covers \Epay\Xml::cdata() */ public function testCdata() { $reflection = new \ReflectionProperty($this->xml, 'parser'); $reflection->setAccessible(true); $parser = $reflection->getValue($this->xml); $this->xml->cdata($parser, 'something'); $reflection = new \ReflectionProperty($this->xml, 'result'); $reflection->setAccessible(true); $result = $reflection->getValue($this->xml); $this->assertInternalType('array', $result); $this->assertArrayHasKey('_CHARDATA', $result); $this->assertEquals('something', $result['_CHARDATA']); }
/** * Проверят ответ от банка. * * @param $response * @return array|string */ public function processResponse($response) { $parser = new Xml(); $result = $parser->parse($response); if (in_array("ERROR", $result)) { return $result; } if (in_array("DOCUMENT", $result)) { $sign = new Sign($this->config); $sign->setInvert(true); $data = $this->splitSign($response, 'BANK'); $check = $sign->checkSign64($response, 'BANK'); switch ($check) { case 1: $data['CHECKRESULT'] = '[SIGN_GOOD]'; break; case 0: $data['CHECKRESULT'] = '[SIGN_BAD]'; break; default: $data['CHECKRESULT'] = '[SIGN_CHECK_ERROR]: '; // Как сюда засунуть результат? . $kkb->estatus; break; } return array_merge($result, $data); } return "[XML_DOCUMENT_UNKNOWN_TYPE]"; }