Esempio n. 1
0
 /**
  * @inheritDoc
  */
 public function mock(RequestInterface $request)
 {
     list($action, $data) = QPayXMLParser::parseRequest($request->getBody()->getContents());
     try {
         $responseData = $this->mockService($data);
     } catch (\RuntimeException $e) {
         return new Response(500, [], \GuzzleHttp\Psr7\stream_for($e->getMessage()));
     } catch (\Exception $e) {
         $responseData = ['Header' => ['a:Error' => ['a:ErrorCode' => $e->getCode() ?: 99, 'a:ErrorMessage' => $e->getTraceAsString()]]];
     }
     if (!$responseData) {
         throw new \Exception(sprintf('Invalid mock response for %s', $action));
     }
     if (is_array($responseData)) {
         $response = QPayXMLParser::createResponse($action, $responseData);
     } else {
         $response = $responseData;
     }
     return new Response(200, [], \GuzzleHttp\Psr7\stream_for($response));
 }