示例#1
0
 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;
 }