/** * @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; }