private function denormaliseTss(\ArrayAccess $array) { $tssData = $array['tss']; if (!isset($tssData) || !is_array($tssData)) { return null; } $data = new SafeArrayAccess($tssData); $tss = new TssResult(); $tss->setResult($data['result']); $checks = $data['check']; $tssChecks = array(); if (!empty($checks)) { // Ensure that $checks is an array of results if (isset($checks['@id'])) { $checks = array(0 => $checks); } foreach ($checks as $check) { $check = new SafeArrayAccess($check); $tssCheck = new TssResultCheck(); $tssCheck->setId($check['@id']); $tssCheck->setValue($check['#']); $tssChecks[] = $tssCheck; } } $tss->setChecks($tssChecks); return $tss; }
/** * Tests conversion of {@link PaymentResponse} to and from XML. */ public function testPaymentResponseXmlAndDeserialize() { $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); $checks = array(); $check = new TssResultCheck(); $check->setId(SampleXmlValidationUtils::TSS_RESULT_CHECK1_ID); $check->setValue(SampleXmlValidationUtils::TSS_RESULT_CHECK1_VALUE); $checks[] = $check; $check = new TssResultCheck(); $check->setId(SampleXmlValidationUtils::TSS_RESULT_CHECK2_ID); $check->setValue(SampleXmlValidationUtils::TSS_RESULT_CHECK2_VALUE); $checks[] = $check; $tssResult->setChecks($checks); $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); $xmlResponse = $fromXmlResponse->toXML(); /* @var PaymentResponse $fromXmlResponse2 */ $fromXmlResponse2 = new PaymentResponse(); $fromXmlResponse2 = $fromXmlResponse2->fromXml($xmlResponse); SampleXmlValidationUtils::checkUnmarshalledPaymentResponse($fromXmlResponse2, $this); }