public static function getTransactionOutputMessage(SimpleXMLElement $sxXmlDocument, GatewayEntryPointList $lgepGatewayEntryPoints = null) { $szCrossReference = null; $crAddressNumericCheckResult = null; $crPostCodeCheckResult = null; $crThreeDSecureAuthenticationCheckResult = null; $crCV2CheckResult = null; $szAddressNumericCheckResult = null; $szPostCodeCheckResult = null; $szThreeDSecureAuthenticationCheckResult = null; $szCV2CheckResult = null; $nAmountReceived = null; $szPaREQ = null; $szACSURL = null; $nTempValue; $ctdCardTypeData = null; $tdsodThreeDSecureOutputData = null; $lgvCustomVariables = null; $nCount = 0; $sbString; $szXMLFormatString; $szName; $szValue; $gvGenericVariable; $nCount = 0; $szCardTypeData; $tomTransactionOutputMessage = null; if (!$sxXmlDocument->TransactionOutputData) { return null; } if ($sxXmlDocument->TransactionOutputData->attributes()) { foreach ($sxXmlDocument->TransactionOutputData->attributes() as $key => $value) { $szCrossReference = current($value); } } else { $szCrossReference = null; } if ($sxXmlDocument->TransactionOutputData->AuthCode) { $szAuthCode = current($sxXmlDocument->TransactionOutputData->AuthCode[0]); } else { $szAuthCode = null; } if ($sxXmlDocument->TransactionOutputData->AddressNumericCheckResult) { $crAddressNumericCheckResult = new NullableCHECK_RESULT(current($sxXmlDocument->TransactionOutputData->AddressNumericCheckResult[0])); } else { $crAddressNumericCheckResult = new NullableCHECK_RESULT(null); } if ($sxXmlDocument->TransactionOutputData->PostCodeCheckResult) { $crPostCodeCheckResult = new NullableCHECK_RESULT(current($sxXmlDocument->TransactionOutputData->PostCodeCheckResult[0])); } else { $crPostCodeCheckResult = new NullableCHECK_RESULT(null); } if ($sxXmlDocument->TransactionOutputData->ThreeDSecureAuthenticationCheckResult) { $crThreeDSecureAuthenticationCheckResult = new NullableCHECK_RESULT(current($sxXmlDocument->TransactionOutputData->ThreeDSecureAuthenticationCheckResult[0])); } else { $crThreeDSecureAuthenticationCheckResult = new NullableCHECK_RESULT(null); } if ($sxXmlDocument->TransactionOutputData->CV2CheckResult) { $crCV2CheckResult = new NullableCHECK_RESULT(current($sxXmlDocument->TransactionOutputData->CV2CheckResult[0])); } else { $crCV2CheckResult = new NullableCHECK_RESULT(null); } if ($sxXmlDocument->TransactionOutputData->CardTypeData) { $ctdCardTypeData = self::getCardTypeData($sxXmlDocument->TransactionOutputData->CardTypeData); } else { $ctdCardTypeData = null; } if ($sxXmlDocument->TransactionOutputData->AmountReceived) { $nAmountReceived = new NullableInt(current($sxXmlDocument->TransactionOutputData->AmountReceived[0])); } else { $nAmountReceived = new NullableInt(null); } if ($sxXmlDocument->TransactionOutputData->ThreeDSecureOutputData) { $szPaREQ = current($sxXmlDocument->TransactionOutputData->ThreeDSecureOutputData->PaREQ[0]); $szACSURL = current($sxXmlDocument->TransactionOutputData->ThreeDSecureOutputData->ACSURL[0]); } else { $szPaREQ = null; $szACSURL = null; } if (!SharedFunctions::isStringNullOrEmpty($szACSURL) && !SharedFunctions::isStringNullOrEmpty($szPaREQ)) { $tdsodThreeDSecureOutputData = new ThreeDSecureOutputData($szPaREQ, $szACSURL); } if ($sxXmlDocument->TransactionOutputData->CustomVariables->GenericVariable) { if ($lgvCustomVariables == null) { $lgvCustomVariables = new GenericVariableList(); } for ($nCount = 0; $nCount < count($sxXmlDocument->TransactionOutputData->CustomVariables->GenericVariable); $nCount++) { $szName = current($sxXmlDocument->TransactionOutputData->CustomVariables->GenericVariable[$nCount]->Name[0]); $szValue = current($sxXmlDocument->TransactionOutputData->CustomVariables->GenericVariable[$nCount]->Value[0]); $gvGenericVariable = new GenericVariable($szName, $szValue); $lgvCustomVariables->add($gvGenericVariable); } } else { $lgvCustomVariables = null; } $tomTransactionOutputMessage = new TransactionOutputMessage($szCrossReference, $szAuthCode, $crAddressNumericCheckResult, $crPostCodeCheckResult, $crThreeDSecureAuthenticationCheckResult, $crCV2CheckResult, $ctdCardTypeData, $nAmountReceived, $tdsodThreeDSecureOutputData, $lgvCustomVariables, $lgepGatewayEntryPoints); return $tomTransactionOutputMessage; }
public static function getPaymentMessageGatewayOutput($GatewayOutput, GatewayOutput $goGatewayOutput = null) { $nPreviousStatusCode = null; $szPreviousMessage = null; $ptdPreviousTransactionResult = null; $pmgoPaymentMessageGatewayOutput = null; $boAuthorisationAttempted = null; if ($GatewayOutput->attributes()) { try { $szAuthorisationAttempted = current($GatewayOutput->attributes()->AuthorisationAttempted); if (strtolower($boAuthorisationAttempted) == 'false') { $boAuthorisationAttempted = new NullableBool(false); } elseif (strtolower($boAuthorisationAttempted) == 'true') { $boAuthorisationAttempted = new NullableBool(true); } else { throw new Exception('Return value must be true or false'); } } catch (Exception $e) { $boAuthorisationAttempted = null; } } //check to see if there is any previous transaction data if ($GatewayOutput->PreviousTransactionResult->StatusCode) { $nPreviousStatusCode = new NullableInt(current($GatewayOutput->PreviousTransactionResult->StatusCode[0])); } if ($GatewayOutput->PreviousTransactionResult->Message) { $szPreviousMessage = current($GatewayOutput->PreviousTransactionResult->Message[0]); } if ($nPreviousStatusCode != null && !SharedFunctions::isStringNullOrEmpty($szPreviousMessage)) { $ptdPreviousTransactionResult = new PreviousTransactionResult($nPreviousStatusCode, $szPreviousMessage); } $pmgoPaymentMessageGatewayOutput = new PaymentMessageGatewayOutput($goGatewayOutput->getStatusCode(), $goGatewayOutput->getMessage(), $boAuthorisationAttempted, $ptdPreviousTransactionResult, $goGatewayOutput->getErrorMessages()); return $pmgoPaymentMessageGatewayOutput; }