/** * @param SdkHelper * @param IValidationReply * @param AddressInterfaceFactory * @param AddressInterface */ public function __construct(SdkHelper $sdkHelper, IValidationReply $replyPayload, AddressInterfaceFactory $addressFactory, AddressInterface $originalAddress) { $this->id = uniqid('AVR-'); $this->originalAddress = $originalAddress; // Extract data from the payload so the payload instance doesn't need // to be stored (may not be session safe and this object may need // to go into the session). $this->isValid = $replyPayload->isValid(); $this->isAcceptable = $replyPayload->isAcceptable(); $this->resultCode = $replyPayload->getResultCode(); $this->errorLocations = []; foreach ($replyPayload->getErrorLocations() as $errorLocation) { $this->errorLocations[] = $errorLocation->getFieldName(); } $this->hasSuggestions = $replyPayload->hasSuggestions(); $this->suggestions = []; foreach ($replyPayload->getSuggestedAddresses() as $suggestedAddress) { $this->suggestions[uniqid('AVS-')] = $sdkHelper->transferPhysicalAddressPayloadToAddress($suggestedAddress, $addressFactory->create()); } $this->suggestionCount = $replyPayload->getResultSuggestionCount(); $this->correctedAddress = $sdkHelper->transferPhysicalAddressPayloadToAddress($replyPayload, $addressFactory->create()); }
/** * Copy result data from the response payload to data on this object. Needed * to allow object to be stored in the session for use in later requests. * * @return self */ protected function extractResult(IValidationReply $response) { return $this->addData(['result_code' => $response->getResultCode(), 'is_acceptable' => $response->isAcceptable(), 'is_valid' => $response->isValid(), 'result_suggestion_count' => $response->getResultSuggestionCount(), 'has_suggestions' => $response->hasSuggestions()]); }