public function processTransaction(CSV_CrossReferenceTransactionResult &$crtrCrossReferenceTransactionResult = null, CSV_TransactionOutputData &$todTransactionOutputData = null) { $boTransactionSubmitted = false; $sSOAPClient; $lgepGatewayEntryPoints = null; $sxXmlDocument = null; $todTransactionOutputData = null; $goGatewayOutput = null; $sSOAPClient = new CSV_SOAP('CrossReferenceTransaction', CSV_GatewayTransaction::getSOAPNamespace()); // transaction details if ($this->m_tdTransactionDetails != null) { if ($this->m_tdTransactionDetails->getAmount() != null) { if ($this->m_tdTransactionDetails->getAmount()->getHasValue()) { $sSOAPClient->addParamAttribute('PaymentMessage.TransactionDetails', 'Amount', (string) $this->m_tdTransactionDetails->getAmount()->getValue()); } } if ($this->m_tdTransactionDetails->getCurrencyCode() != null) { if ($this->m_tdTransactionDetails->getCurrencyCode()->getHasValue()) { $sSOAPClient->addParamAttribute('PaymentMessage.TransactionDetails', 'CurrencyCode', (string) $this->m_tdTransactionDetails->getCurrencyCode()->getValue()); } } if ($this->m_tdTransactionDetails->getMessageDetails() != null) { if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_tdTransactionDetails->getMessageDetails()->getTransactionType())) { $sSOAPClient->addParamAttribute('PaymentMessage.TransactionDetails.MessageDetails', 'TransactionType', $this->m_tdTransactionDetails->getMessageDetails()->getTransactionType()); } if ($this->m_tdTransactionDetails->getMessageDetails()->getNewTransaction() != null) { if ($this->m_tdTransactionDetails->getMessageDetails()->getNewTransaction()->getHasValue()) { $sSOAPClient->addParamAttribute('PaymentMessage.TransactionDetails.MessageDetails', 'NewTransaction', CSV_SharedFunctions::boolToString($this->m_tdTransactionDetails->getMessageDetails()->getNewTransaction()->getValue())); } } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_tdTransactionDetails->getMessageDetails()->getCrossReference())) { $sSOAPClient->addParamAttribute('PaymentMessage.TransactionDetails.MessageDetails', 'CrossReference', $this->m_tdTransactionDetails->getMessageDetails()->getCrossReference()); } } if ($this->m_tdTransactionDetails->getTransactionControl() != null) { if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_tdTransactionDetails->getTransactionControl()->getAuthCode())) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.AuthCode', $this->m_tdTransactionDetails->getTransactionControl()->getAuthCode()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_tdTransactionDetails->getTransactionControl()->getAVSOverridePolicy())) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.AVSOverridePolicy', $this->m_tdTransactionDetails->getTransactionControl()->getAVSOverridePolicy()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_tdTransactionDetails->getTransactionControl()->getCV2OverridePolicy())) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.CV2OverridePolicy', $this->m_tdTransactionDetails->getTransactionControl()->getCV2OverridePolicy()); } if ($this->m_tdTransactionDetails->getTransactionControl()->getDuplicateDelay() != null) { if ($this->m_tdTransactionDetails->getTransactionControl()->getDuplicateDelay()->getHasValue()) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.DuplicateDelay', (string) $this->m_tdTransactionDetails->getTransactionControl()->getDuplicateDelay()->getValue()); } } if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoCardType() != null) { if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoCardType()->getHasValue()) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.EchoCardType', CSV_SharedFunctions::boolToString($this->m_tdTransactionDetails->getTransactionControl()->getEchoCardType()->getValue())); } } if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoAVSCheckResult() != null) { if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoAVSCheckResult()->getHasValue()) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.EchoAVSCheckResult', CSV_SharedFunctions::boolToString($this->m_tdTransactionDetails->getTransactionControl()->getEchoAVSCheckResult()->getValue())); } } if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoAVSCheckResult() != null) { if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoAVSCheckResult()->getHasValue()) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.EchoAVSCheckResult', CSV_SharedFunctions::boolToString($this->m_tdTransactionDetails->getTransactionControl()->getEchoAVSCheckResult()->getValue())); } } if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoCV2CheckResult() != null) { if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoCV2CheckResult()->getHasValue()) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.EchoCV2CheckResult', CSV_SharedFunctions::boolToString($this->m_tdTransactionDetails->getTransactionControl()->getEchoCV2CheckResult()->getValue())); } } if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoAmountReceived() != null) { if ($this->m_tdTransactionDetails->getTransactionControl()->getEchoAmountReceived()->getHasValue()) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.TransactionControl.EchoAmountReceived', CSV_SharedFunctions::boolToString($this->m_tdTransactionDetails->getTransactionControl()->getEchoAmountReceived()->getValue())); } } } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_tdTransactionDetails->getOrderID())) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.OrderID', $this->m_tdTransactionDetails->getOrderID()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_tdTransactionDetails->getOrderDescription())) { $sSOAPClient->addParam('PaymentMessage.TransactionDetails.OrderDescription', $this->m_tdTransactionDetails->getOrderDescription()); } } // card details if ($this->m_ocdOverrideCardDetails != null) { if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_ocdOverrideCardDetails->getCardName())) { $sSOAPClient->addParam('PaymentMessage.OverrideCardDetails.CardName', $this->m_ocdOverrideCardDetails->getCardName()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_ocdOverrideCardDetails->getCV2())) { $sSOAPClient->addParam('PaymentMessage.CardDetails.CV2', $this->m_ocdOverrideCardDetails->getCV2()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_ocdOverrideCardDetails->getCardNumber())) { $sSOAPClient->addParam('PaymentMessage.OverrideCardDetails.CardNumber', $this->m_ocdOverrideCardDetails->getCardNumber()); } if ($this->m_ocdOverrideCardDetails->getExpiryDate() != null) { if ($this->m_ocdOverrideCardDetails->getExpiryDate()->getMonth() != null) { if ($this->m_ocdOverrideCardDetails->getExpiryDate()->getMonth()->getHasValue()) { $sSOAPClient->addParamAttribute('PaymentMessage.OverrideCardDetails.ExpiryDate', 'Month', (string) $this->m_ocdOverrideCardDetails->getExpiryDate()->getMonth()->getValue()); } } if ($this->m_ocdOverrideCardDetails->getExpiryDate()->getYear() != null) { if ($this->m_ocdOverrideCardDetails->getExpiryDate()->getYear()->getHasValue()) { $sSOAPClient->addParamAttribute('PaymentMessage.OverrideCardDetails.ExpiryDate', 'Year', (string) $this->m_ocdOverrideCardDetails->getExpiryDate()->getYear()->getValue()); } } } if ($this->m_ocdOverrideCardDetails->getStartDate() != null) { if ($this->m_ocdOverrideCardDetails->getStartDate()->getMonth() != null) { if ($this->m_ocdOverrideCardDetails->getStartDate()->getMonth()->getHasValue()) { $sSOAPClient->addParamAttribute('PaymentMessage.OverrideCardDetails.StartDate', 'Month', (string) $this->m_ocdOverrideCardDetails->getStartDate()->getMonth()->getValue()); } } if ($this->m_ocdOverrideCardDetails->getStartDate()->getYear() != null) { if ($this->m_ocdOverrideCardDetails->getStartDate()->getYear()->getHasValue()) { $sSOAPClient->addParamAttribute('PaymentMessage.OverrideCardDetails.StartDate', 'Year', (string) $this->m_ocdOverrideCardDetails->getStartDate()->getYear()->getValue()); } } } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_ocdOverrideCardDetails->getIssueNumber())) { $sSOAPClient->addParam('PaymentMessage.CardDetails.IssueNumber', $this->m_ocdOverrideCardDetails->getIssueNumber()); } } // customer details if ($this->m_cdCustomerDetails != null) { if ($this->m_cdCustomerDetails->getBillingAddress() != null) { if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getBillingAddress()->getAddress1())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.BillingAddress.Address1', $this->m_cdCustomerDetails->getBillingAddress()->getAddress1()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getBillingAddress()->getAddress2())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.BillingAddress.Address2', $this->m_cdCustomerDetails->getBillingAddress()->getAddress2()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getBillingAddress()->getAddress3())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.BillingAddress.Address3', $this->m_cdCustomerDetails->getBillingAddress()->getAddress3()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getBillingAddress()->getAddress4())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.BillingAddress.Address4', $this->m_cdCustomerDetails->getBillingAddress()->getAddress4()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getBillingAddress()->getCity())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.BillingAddress.City', $this->m_cdCustomerDetails->getBillingAddress()->getCity()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getBillingAddress()->getState())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.BillingAddress.State', $this->m_cdCustomerDetails->getBillingAddress()->getState()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getBillingAddress()->getPostCode())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.BillingAddress.PostCode', (string) $this->m_cdCustomerDetails->getBillingAddress()->getPostCode()); } if ($this->m_cdCustomerDetails->getBillingAddress()->getCountryCode() != null) { if ($this->m_cdCustomerDetails->getBillingAddress()->getCountryCode()->getHasValue()) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.BillingAddress.CountryCode', (string) $this->m_cdCustomerDetails->getBillingAddress()->getCountryCode()->getValue()); } } } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getEmailAddress())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.EmailAddress', $this->m_cdCustomerDetails->getEmailAddress()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getPhoneNumber())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.PhoneNumber', $this->m_cdCustomerDetails->getPhoneNumber()); } if (!CSV_SharedFunctions::isStringNullOrEmpty($this->m_cdCustomerDetails->getCustomerIPAddress())) { $sSOAPClient->addParam('PaymentMessage.CustomerDetails.CustomerIPAddress', $this->m_cdCustomerDetails->getCustomerIPAddress()); } } $boTransactionSubmitted = CSV_GatewayTransaction::processTransactionBase($sSOAPClient, 'PaymentMessage', 'CrossReferenceTransactionResult', 'TransactionOutputData', $sxXmlDocument, $goGatewayOutput, $lgepGatewayEntryPoints); if ($boTransactionSubmitted) { $crtrCrossReferenceTransactionResult = CSV_SharedFunctionsPaymentSystemShared::getPaymentMessageGatewayOutput($sxXmlDocument->CrossReferenceTransactionResult, $goGatewayOutput); $todTransactionOutputData = CSV_SharedFunctionsPaymentSystemShared::getTransactionOutputData($sxXmlDocument, $lgepGatewayEntryPoints); } return $boTransactionSubmitted; }