Example #1
0
 /**
  * @param Response $response
  * @return bool
  * @throws GPWebPayException
  * @throws GPWebPayResultException
  */
 public function verifyPaymentResponse(Response $response)
 {
     // verify digest & digest1
     try {
         $this->signer = new Signer($this->settings->getPrivateKey($response->getGatewayKey()), $this->settings->getPrivateKeyPassword($response->getGatewayKey()), $this->settings->getPublicKey());
         $responseParams = $response->getParams();
         $this->signer->verify($responseParams, $response->getDigest());
         $responseParams['MERCHANTNUMBER'] = $this->settings->getMerchantNumber($response->getGatewayKey());
         $this->signer->verify($responseParams, $response->getDigest1());
     } catch (SignerException $e) {
         throw new GPWebPayException($e->getMessage(), $e->getCode(), $e);
     }
     // verify PRCODE and SRCODE
     if (FALSE !== $response->hasError()) {
         throw new GPWebPayResultException("Response has an error.", $response->getPrcode(), $response->getSrcode(), $response->getResultText());
     }
     return TRUE;
 }