コード例 #1
0
 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;
 }