/**
  * {@inheritdoc}
  */
 public function __construct(RequestInterface $request, $data)
 {
     parent::__construct($request, $data);
     $signKey = $this->request->getTestMode() ? $this->request->getTestKey() : $this->request->getSignKey();
     $signExpected = $this->request->calculateSign($this->data, $signKey);
     if ($this->getSign() !== $signExpected) {
         throw new InvalidResponseException('Failed to validate signature: ' . $signExpected);
     }
     if ($this->getState() !== 'success') {
         throw new InvalidResponseException('The payment was not success');
     }
 }