/** * Denormalizes data back into an object of the given class. * * @param mixed $data data to restore * @param string $class the expected class to instantiate * @param string $format format the given data was extracted from * @param array $context options available to the denormalizer * * @return object */ public function denormalize($data, $class, $format = null, array $context = array()) { $response = new PaymentResponse(); $array = new SafeArrayAccess($data); $response->setTimeStamp($array['@timestamp']); $response->setMerchantId($array['merchantid']); $response->setAccount($array['account']); $response->setOrderId($array['orderid']); $response->setResult($array['result']); $response->setAuthCode($array['authcode']); $response->setMessage($array['message']); $response->setPaymentsReference($array['pasref']); $response->setCvnResult($array['cvnresult']); $response->setTimeTaken($array['timetaken']); $response->setAuthTimeTaken($array['authtimetaken']); $response->setAcquirerResponse($array['acquirerresponse']); $response->setBatchId($array['batchid']); $response->setHash($array['sha1hash']); $response->setAvsPostcodeResponse($array['avspostcoderesponse']); $response->setAvsAddressResponse($array['avsaddressresponse']); $response->setTssResult($this->denormaliseTss($array)); $response->setCardIssuer($this->denormaliseCardIssuer($array)); $response->setDccInfoResult($this->serializer->denormalize($array['dccinfo'], DccInfoResult::GetClassName(), $format, $context)); $response->setFraudFilter($this->denormaliseFraudFilter($array)); return $response; }
/** * Tests conversion of {@link PaymentResponse} to and from XML. */ public function testPaymentResponseXmlAndDeserializeOverallResults() { $response = new PaymentResponse(); $response->setAccount(SampleXmlValidationUtils::ACCOUNT); $response->setAcquirerResponse(SampleXmlValidationUtils::ACQUIRER_RESPONSE); $response->setAuthCode(SampleXmlValidationUtils::AUTH_CODE); $response->setAuthTimeTaken(SampleXmlValidationUtils::AUTH_TIME_TAKEN); $response->setBatchId(SampleXmlValidationUtils::BATCH_ID); $cardIssuer = new CardIssuer(); $cardIssuer->setBank(SampleXmlValidationUtils::BANK); $cardIssuer->setCountry(SampleXmlValidationUtils::COUNTRY); $cardIssuer->setCountryCode(SampleXmlValidationUtils::COUNTRY_CODE); $cardIssuer->setRegion(SampleXmlValidationUtils::REGION); $response->setCardIssuer($cardIssuer); $response->setCvnResult(SampleXmlValidationUtils::CVN_RESULT); $response->setMerchantId(SampleXmlValidationUtils::MERCHANT_ID); $response->setMessage(SampleXmlValidationUtils::MESSAGE); $response->setOrderId(SampleXmlValidationUtils::ORDER_ID); $response->setPaymentsReference(SampleXmlValidationUtils::PASREF); $response->setResult(SampleXmlValidationUtils::RESULT_SUCCESS); $response->setHash(SampleXmlValidationUtils::RESPONSE_HASH); $response->setTimeStamp(SampleXmlValidationUtils::TIMESTAMP_RESPONSE); $response->setTimeTaken(SampleXmlValidationUtils::TIME_TAKEN); $tssResult = new TssResult(); $tssResult->setResult(SampleXmlValidationUtils::TSS_RESULT); $response->setTssResult($tssResult); $response->setAvsAddressResponse(SampleXmlValidationUtils::AVS_ADDRESS); $response->setAvsPostcodeResponse(SampleXmlValidationUtils::AVS_POSTCODE); //marshal to XML $xml = $response->toXml(); //unmarshal back to response /* @var PaymentResponse $fromXmlResponse */ $fromXmlResponse = new PaymentResponse(); $fromXmlResponse = $fromXmlResponse->fromXml($xml); SampleXmlValidationUtils::checkUnmarshalledPaymentResponse($fromXmlResponse, $this, true); }