/** * @param PaymentResponse $response * @throws Exception * @throws PaymentResponseException */ public function verifyPaymentResponse(PaymentResponse $response) { // verify digest & digest1 try { $responseParams = $response->getParams(); $this->signer->verify($responseParams, $response->getDigest()); $responseParams['MERCHANTNUMBER'] = $this->merchantNumber; $this->signer->verify($responseParams, $response->getDigest1()); } catch (SignerException $e) { throw new Exception($e->getMessage(), $e->getCode(), $e); } // verify PRCODE and SRCODE if (false !== $response->hasError()) { throw new PaymentResponseException($response->getParams()['prcode'], $response->getParams()['srcode'], "Response has an error."); } }