/** * Test supplementary data second field */ public function testCardSupplementaryData2() { $hppRequest = SampleJsonData::generateValidHppRequest(false); $hppRequest->generateDefaults(SampleJsonData::SECRET); $supplementaryData1 = ""; $supplementaryData2 = ""; $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $supplementaryData2; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); } catch (RealexValidationException $e) { $this->fail("This HppRequest should have no validation errors."); } $supplementaryData1 = ""; $supplementaryData2 = " azAZ09'\",+“”._- & "; $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $supplementaryData2; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); } catch (RealexValidationException $e) { $this->fail("This HppRequest should not have validation errors."); } $supplementaryData1 = ""; $supplementaryData2 = "\\/@!?%()*:£\$&€#[]|"; $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $supplementaryData2; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); } catch (RealexValidationException $e) { $this->fail("This HppRequest should not have validation errors."); } $supplementaryData1 = ""; $supplementaryData2 = "=ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒ"; $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $supplementaryData2; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); } catch (RealexValidationException $e) { $this->fail("This HppRequest should not have validation errors."); } $supplementaryData1 = ""; $supplementaryData2 = "ÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæ"; $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $supplementaryData2; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); } catch (RealexValidationException $e) { $this->fail("This HppRequest should not have validation errors."); } $supplementaryData1 = ""; $supplementaryData2 = "çèéêëìíîïðñòóôõö÷ø¤ù"; $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $supplementaryData2; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); } catch (RealexValidationException $e) { $this->fail("This HppRequest should not have validation errors."); } $supplementaryData1 = ""; $supplementaryData2 = "úûüýþÿŒŽšœžŸ¥"; $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $supplementaryData2; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); } catch (RealexValidationException $e) { $this->fail("This HppRequest should not have validation errors."); } $supplementaryData1 = ""; $charsAtMax = str_repeat("1", 255); $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $charsAtMax; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); } catch (RealexValidationException $e) { $this->fail("This HppRequest should not have validation errors."); } $supplementaryData1 = ""; $charsOverMax = str_repeat("a", 256); $supplementaryData = array(); $supplementaryData[] = $supplementaryData1; $supplementaryData[] = $charsOverMax; $hppRequest->setSupplementaryData($supplementaryData); try { ValidationUtils::validate($hppRequest); $this->fail("This HppRequest should have validation errors."); } catch (RealexValidationException $e) { $validationMessages = $e->getValidationMessages(); $this->assertEquals(ValidationMessages::hppRequest_supplementary_data_size, $validationMessages[0]); } }
/** * Test validation post dimensions fails */ public function testValidationPassedSuccess() { $path = SampleJsonData::VALID_HPP_REQUEST_HPP_POST_BOTH_JSON_PATH; $prefix = __DIR__ . '/../../../resources'; $json = file_get_contents($prefix . $path); $hppRequestConverted = JsonUtils::fromJsonHppRequest($json); $hppRequestConverted->generateDefaults(SampleJsonData::SECRET); try { ValidationUtils::validate($hppRequestConverted); } catch (RealexValidationException $e) { $this->fail("This HppRequest shouldn't have validation errors."); } }
/** * <p> * Method produces <code>HppResponse</code> object from JSON. * Carries out the following actions: * <ul> * <li>Deserialises JSON to response object</li> * <li>Decodes Base64 inputs</li> * <li>Validates hash</li> * </ul> * </p> * * @param string $json * @param bool $encoded * @return HppResponse */ public function responseFromJson($json, $encoded = true) { $this->logger->info("Converting JSON to HppResponse."); //convert to HppResponse from JSON $hppResponse = JsonUtils::fromJsonHppResponse($json); //decode if necessary if ($encoded) { $this->logger->debug("Decoding object."); try { $hppResponse = $hppResponse->decode(self::ENCODING_CHARSET); } catch (Exception $e) { $this->logger->error("Exception decoding HPP response.", $e); throw new RealexException("Exception decoding HPP response.", $e); } } //validate HPP response hash $this->logger->debug("Validating response hash."); ValidationUtils::validateResponse($hppResponse, $this->secret); return $hppResponse; }